logo资料库

A20 dragonboard测试用例编写说明书.pdf

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
前言
简介
目的
名词解释
参考文档
快速入门
目录结构
C测试用例
Shell测试用例
编译
打包烧录
配置脚本
测试用例
与core交互
C测试用例
Shell测试用例
Declaration
Technology Allwinner Technology CO.,CO.,CO.,CO., LtdLtdLtdLtd.... Allwinner Technology Allwinner Technology Allwinner A20 Dragonboard 测试用例编 写说明书 V1.V1.V1.V1.1111 2012012012014444----06060606----03030303 A20 Dragonboard 测试用例编写说明书 V1.1 Copyright © 2014 Allwinner Technology. All Rights Reserved. 2014-06-03 CONFIDENTIAL
Technology Allwinner Technology CO.,CO.,CO.,CO., LtdLtdLtdLtd.... Allwinner Technology Allwinner Technology Allwinner Revision History Revision History Revision History History Revision DateDateDateDate Version Version Version Version 2014-06-03 V1.1 Author Author Author Author previous compared totototo previous compared Changes issue Changes compared previous issue previous issue Changes compared Changes issue Create A20 DragonBoard 测试用例编写说明书 V1.1 Copyright © 2014 Allwinner Technology. All Rights Reserved. i 2014-06-03 CONFIDENTIAL
Technology Allwinner Technology CO.,CO.,CO.,CO., LtdLtdLtdLtd.... Allwinner Technology Allwinner Technology Allwinner 目录 1. 前言............................................................................................................................................................ 3 1.1. 简介................................................................................................................................................. 3 1.2. 目的................................................................................................................................................. 3 1.3. 名词解释......................................................................................................................................... 3 1.4. 参考文档......................................................................................................................................... 3 2. 快速入门.................................................................................................................................................... 4 2.1. 目录结构......................................................................................................................................... 4 2.2. C 测试用例....................................................................................................................................... 4 2.3. Shell 测试用例................................................................................................................................. 5 2.4. 编译................................................................................................................................................. 5 2.5. 打包烧录......................................................................................................................................... 5 3. 配置脚本.................................................................................................................................................... 7 4. 测试用例.................................................................................................................................................... 8 4.1. 与 core 交互.....................................................................................................................................8 4.2. C 测试用例....................................................................................................................................... 8 4.3. Shell 测试用例............................................................................................................................... 10 5. Declaration................................................................................................................................................. 11 A20 DragonBoard 测试用例编写说明书 V1.1 Copyright © 2014 Allwinner Technology. All Rights Reserved. ii 2014-06-03 CONFIDENTIAL
Technology Allwinner Technology CO.,CO.,CO.,CO., LtdLtdLtdLtd.... Allwinner Technology Allwinner Technology Allwinner 1.1.1.1. 前言 1.1.1.1.1.1.1.1. 简介 DragonBoard 是一个基于 Linux BSP,集成了 DirectFB 的图形化板卡测试系统。该系统旨在检测 板卡能否在特定的环境中正常工作。 DragonBoard 系统默认启动两个进程,分别是 core 进程和 launcher 进程,后者是前者的子进程。 测试任务由模块测试程序完成,由 launcher 进程负责加载,该进程会根据 test_config.fex 文件的配置 创建(fork)新的进程运行测试用例。目前测试用例支持 C、shell 脚本编写。 1.2.1.2.1.2.1.2. 目的 本文档主要介绍如何编写一个 DragonBoard 系统的模块测试用例。撰写的比较匆忙,欢迎大家 指正文中的错误。 1.3.1.3.1.3.1.3. 名词解释 1.4.1.4.1.4.1.4. 参考文档 A20 DragonBoard 测试用例编写说明书 V1.1 Copyright © 2014 Allwinner Technology. All Rights Reserved. 3 2014-06-03 CONFIDENTIAL
# 输出目录 # 测试用例(程序)输出目录 # 根目录 # 测试用例(程序)rootfs 的输出目录 # 源码目录 # 系统核心模块 # 系统公共头文件 # 系统公共库 # 测试用例源码目录 # UI # 顶层 Makefile # 编译变量,include by Makefile # 交叉编译环境依赖目录 # 生成 rootfs.ext4 |-- output/ |-- bin/ |-- rootfs/ |-- dragonboard/ |-- bin/ |-- src/ |-- core/ |-- include/ |-- lib/ |-- testcases/ |-- example/ # 示例 |-- example.c |-- Makefile |-- Makefile |-- view/ |-- Makefile |-- rule.mk |-- sysroot/ |-- build.sh |-- README.txt 2.2.2.2.2.2.2.2. CCCC 测试用例 1. 创建模块测试用例的目录 Technology Allwinner Technology CO.,CO.,CO.,CO., LtdLtdLtdLtd.... Allwinner Technology Allwinner Technology Allwinner 2.2.2.2. 快速入门 目前 DragonBoard 系统只需要在 lichee 的根目录运行./build.sh –p sun7i_dragonboard && ./build.sh pack 就可以编出一个可以调试的固件。下面的章节会介绍如何编写一个测试用例。 2.1.2.1.2.1.2.1. 目录结构 DragonBoard 放在 buildroot/target 目录下,其目录结构大致如下: $ cd buildroot/target/dragonboard $ mkdir src/testcases/example $ cd src/testcases/example 2. 编写测试用例源码 example.c 参照 4.2 节。 3. 编写 Makefile 参照 4.2 节。 4. 让系统编译你的模块测试用例 A20 DragonBoard 测试用例编写说明书 V1.1 Copyright © 2014 Allwinner Technology. All Rights Reserved. 4 2014-06-03 CONFIDENTIAL
Technology Allwinner Technology CO.,CO.,CO.,CO., LtdLtdLtdLtd.... Allwinner Technology Allwinner Technology Allwinner 在 testcases/Makefile 中添加 all: make -C example 2.3.2.3.2.3.2.3. SSSShellhellhellhell 测试用例 Shell 测试用例就是用 shell 脚本完成模块的测试任务。launcher 进程会向脚本传递 4 个参数,分 别是:$0 是脚本的名称,$1 是 DragonBoard 系统版本号,目前没有使用,$2 是配置脚本的共享内 存 id,$3 是当前测试用例的 id,返回结果的时候会使用。下面是一个简单的示例(memtester): #!/bin/sh memtester 128K 1 > /dev/null echo "$3 $?" >> /tmp/cmd_pipe 为了编译的时候能够将脚本拷贝到 output/bin 目录下,我们还需要一个 Makefile,如: # define sources root directory before everything SRC_ROOT := ../.. # include rule.mk include $(SRC_ROOT)/rule.mk .PHONY: all all: cp memtester.sh $(BINDIR)/ 然后在 testcases/Makefile 添加: all: make -C memtester 更加详细的说明参照 4.3 节。 2.4.2.4.2.4.2.4. 编译 1. 在 lichee 根目录下编译 DragonBoard 的内核时,即执行: $ ./build.sh –p sun7i_dragonboard 会调用 dragonboard 目录下的 build.sh 脚本译 DragonBoard 系统,并生成 rootfs.ext4。 2.5.2.5.2.5.2.5. 打包烧录 DragonBoard 系统的打包烧录流程和 Linux 相似,下面简要描述一下 A20 sugar-ref001 的打包流 程: $ cd $lichee $ ./build.sh pack A20 DragonBoard 测试用例编写说明书 V1.1 Copyright © 2014 Allwinner Technology. All Rights Reserved. 5 2014-06-03 CONFIDENTIAL
Technology Allwinner Technology CO.,CO.,CO.,CO., LtdLtdLtdLtd.... Allwinner Technology Allwinner Technology Allwinner Start packing for Lichee system All valid chips: 0. Sun7i Please select a chip:0 All valid platforms: 0. android 1. dragonboard 2. linux Please select a platform:1 All valid boards: 0. Sugar-ref001 Please select a board:0 打包生成的固件放在 tools/pack 目录下,用 phoenixCard 制作启动卡。 A20 DragonBoard 测试用例编写说明书 V1.1 Copyright © 2014 Allwinner Technology. All Rights Reserved. 6 2014-06-03 CONFIDENTIAL
Technology Allwinner Technology CO.,CO.,CO.,CO., LtdLtdLtdLtd.... Allwinner Technology Allwinner Technology Allwinner 3.3.3.3. 配置脚本 DragonBoard 系统使用一个配置脚本(test_config.fex)来完成系统和各个模块的配置,core 进程 起来的时候会去解释这个配置脚本,并将其内容按照固定的格式放在一块共享内存里,方便各个测 试用例的进程访问。在 C 语言中,这块共享内存的访问 id 通过 main 函数的参数 argv[2]传递到各个 测试用例中。目前没有找到 shell 脚本访问这块共享内存的方法,后期将提供其他的解决方案。 test_config.fex 的格式类似 INI 文件格式,可以说是一种扩展。下面是一个测试模块配置示例: [example] display_name= "Example" activated program category run_type = 1 = "example.sh" = 0 = 1 display_name display_name ���� display_name display_name 显示到界面的名称,字符串类型,如果需要显示双引号,可以使用以下语法: display_name= string:"Example" 区别在于后者会显示"string:"后面所有的字符,包括空格和制表符。该项能够容纳 63 个英文字符, 31 个中文字符。如果 display_name 为空,其它项无效。 activated activated ���� activated activated 0: 不测试该模块;1: 测试该模块。 program program ���� program program 模块的测试程序,该项能够容纳 15 个英文字符。用于指定模块测试的入口。 category category ���� category category 0: 自动化测试模块;1: 手动测试模块。 run_type run_type ���� run_type run_type 0: 等待当前模块的测试程序执行完毕再运行下一个模块的测试程序;1: 不等待当前模块的测试 程序执行完毕。一般为了提高整体的测试速度,对于耗时较长的测试程序建议填 0,反之填 1;注意, 当,category = 1,即手动测试模块时,该项无效。 以上是一些基础的配置项,用户亦可根据需要添加自己的配置项。 A20 DragonBoard 测试用例编写说明书 V1.1 Copyright © 2014 Allwinner Technology. All Rights Reserved. 7 2014-06-03 CONFIDENTIAL
分享到:
收藏