以 aarch64/virt
作为演示的开发板:
为测试做准备,在 src/system/
目录下安装必要的文件/脚本:
$ make rootdir
$ make root-install
$ make root-rebuild
复制代码
直接引导启动:
测试完毕后不要关机:
$ make test TEST_FINISH=echo
复制代码
运行一下客户机的测试用例:
$ make test TEST_CASE=/tools/ftrace/trace.sh
复制代码
运行客户机的测试用例(COMMAND_LINE_SIZE
必须足够大,譬如,4096,查看下文的 cmdline_size
特性 )
$ make test TEST_BEGIN=date TEST_END=date TEST_CASE='ls /root,echo hello world'
复制代码
进行重启压力测试:
$ make test TEST_REBOOT=2
复制代码
注意: reboot 可以有以下几种结果 1) 挂起, 2) 继续; 3) 超时后被杀死, TEST_TIMEOUT=30
; 4) 超时终止后不报错继续其他测试, TIMEOUT_CONTINUE=1
在一个特定的开发板上测试一个特定 Linux 版本的某个功能(cmdline_size
特性用于增加 COMMAND_LINE_SIZE
为 4096):
$ make test f=kft LINUX=v2.6.36 b=malta TEST_PREPARE=board-init,kernel-cleanup
复制代码
注意:board-init
和 kernel-cleanup
用于确保测试自动运行,但是 kernel-cleanup
不安全,请在使用前保存代码!
测试一个内核模块:
测试多个内核模块:
$ make test m=exception,hello
复制代码
基于指定的 ROOTDEV 测试模块,缺省使用 nfs 引导方式,但注意有些开发板可能不支持网络:
$ make test m=hello,exception TEST_RD=/dev/ram0
复制代码
在测试内核模块时运行测试用例(在 insmod 和 rmmod 命令之间运行测试用例):
$ make test m=exception TEST_BEGIN=date TEST_END=date TEST_CASE='ls /root,echo hello world' TEST_PREPARE=board-init,kernel-cleanup f=cmdline_size
复制代码
在测试内部内核模块时运行测试用例:
$ make test m=lkdtm TEST_BEGIN='mount -t debugfs debugfs /mnt' TEST_CASE='echo EXCEPTION ">" /mnt/provoke-crash/DIRECT'
复制代码
在测试内部内核模块时运行测试用例,传入内核参数:
$ make test m=lkdtm lkdtm_args='cpoint_name=DIRECT cpoint_type=EXCEPTION'
复制代码
测试时不使用 feature-init (若非必须可以节省时间)
$ make test m=lkdtm lkdtm_args='cpoint_name=DIRECT cpoint_type=EXCEPTION' TEST_INIT=0
或
$ make raw-test m=lkdtm lkdtm_args='cpoint_name=DIRECT cpoint_type=EXCEPTION'
复制代码
测试模块以及模块的依赖(使用 make kernel-menuconfig
进行检查):
$ make test m=lkdtm y=runtime_testing_menu,debug_fs lkdtm_args='cpoint_name=DIRECT cpoint_type=EXCEPTION'
复制代码
测试时不使用 feature-init,boot-init,boot-finish 以及不带 TEST_PREPARE
:
$ make boot-test m=lkdtm lkdtm_args='cpoint_name=DIRECT cpoint_type=EXCEPTION'
复制代码
测试一个内核模块并且在测试前执行某些 make 目标:
$ make test m=exception TEST=kernel-checkout,kernel-patch,kernel-defconfig
复制代码
使用一条命令测试所有功能(从下载到关机,如果关机后挂起,请参考 6.2.2):
$ make test TEST=kernel,root TEST_PREPARE=board-init,kernel-cleanup,root-cleanup
复制代码
使用一条命令测试所有功能(带 uboot,如果支持的话,譬如:vexpress-a9):
$ make test TEST=kernel,root,uboot TEST_PREPARE=board-init,kernel-cleanup,root-cleanup,uboot-cleanup
复制代码
测试引导过程中内核挂起,允许指定超时时间,系统挂起时将发生超时:
$ make test TEST_TIMEOUT=30s
复制代码
测试过程中如果超时,继续执行后续测试,而不是直接终止:
$ make test TEST_TIMEOUT=30s TIMEOUT_CONTINUE=1
复制代码
测试内核调试:
评论