[HUKS]DtFuzz用例编写测试流程
[HUKS]DtFuzz用例编写测试流程
参考:https://gitee.com/openharmony/test_developertest/blob/master/libs/fuzzlib/README_zh.md
环境:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-testguide-envbuild.md
1,用例编写
1)启动框架
打开项目路径下的test/developertest/start.bat (linux系统下打开start.sh),选择ipcamera_hispark_aries,回车。
2)单个用例初始化
Fuzz测试用例生成,执行gen命令,命令格式参考如下
注意格式,在huks模块生成HksGenerateKey测试用例的命令如:
gen -t FUZZ -fn hksgeneratekey_fuzzer -dp base/security/huks/test/fuzz_test/
命令执行成功后会在相应位置生成目录,目录格式如下
3)用例编写
先将生成的fuzztest链接入当前模块
-
打开huks模块目录下的bundle.json文件,加入
-
在相应目录下新建一个BUILD.gn文件,写入。group名必须和bundle.json中的名字相对应。
-
在初始化目录中添加代码,其中group是必要的,deps名称必须是 xxxFuzzTest格式,xxx为驼峰命名法。ohos_fuzztest()填写对应的FuzzTest,其它地方填写本模块相应的链入即可。
可参考:
Fuzz配置编写参考如下,一般设置为默认
源文件编写
参考
具体操作在DoSomethingInterestingWithMyAPI函数中,例如
2,编译
使用相应模块的编译命令即可,如
# 64位huks测试用例编写./build.sh --product-name rk3568 --build-target out/rk3568/build_configs/security/huks:huks_test --target-cpu arm64
编译产物,需要用到的目录是fuzztest和res
3,运行
1,打开test/developertest/config/user_config.xml,添加编译产物目录,如下图所示,对应目录应该存放编译产物,”fuzztest",“res”。
运行developertest/start,选择ipcamera_hispark_aries并且回车
在控制台输入
run -t FUZZ -ts HksImportKeyFuzzTest
命令格式参考
运行成功后,结果日志如下
注意环境必须是python3.7以上,建议python版本3.8.10。用例和系统位数要相对应。
指令
#生成gen -t FUZZ -fn hksimportkey_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksexportpublickey_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksdeletekey_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksgetkeyparamset_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hkskeyexist_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hkshash_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksattestkey_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksgetcertificatechain_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksbnexpmod_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksinit_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksupdate_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksfinish_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksabort_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksgeneratekey_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksgetsdkversion_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksimportwrappedkey_fuzzer -dp base/security/huks/test/fuzz_test/#运行run -t FUZZ -ts HksImportKeyFuzzTestrun -t FUZZ -ts HksExportPublicKeyFuzzTestrun -t FUZZ -ts HksDeleteKeyFuzzTest run -t FUZZ -ts HksGetKeyParamSetFuzzTestrun -t FUZZ -ts HksKeyExistFuzzTest run -t FUZZ -ts HksHashFuzzTestrun -t FUZZ -ts HksAttestKeyFuzzTestrun -t FUZZ -ts HksGetCertificateChainFuzzTestrun -t FUZZ -ts HksBnExpModFuzzTestrun -t FUZZ -ts HksInitFuzzTestrun -t FUZZ -ts HksUpdateFuzzTestrun -t FUZZ -ts HksFinishFuzzTestrun -t FUZZ -ts HksAbortFuzzTestrun -t FUZZ -ts HksGenerateKeyFuzzTestrun -t FUZZ -ts HksGetSdkVersionFuzzTestrun -t FUZZ -ts HksImportWrappedKeyFuzzTest