• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 准备测试的硬件环境
2    1. 测试依赖hi3516DV300设备。
3    2. 烧录OHOS_STD代码。
4    3. 通过直连方式,使用USB线将设备连接到存储测试代码的主机。
5
6# 准备测试的软件环境
7    1. 设置UT环境变量
8        在代码根目录执行:export BUILD_UT=true
9    2. 连接设备
10        在代码根目录执行: root
11                        remount
12    3. 准备UT依赖的动态库
13        通过push 把测试依赖的libsqlite.z.so等动态库推到hi3516DV300设备的system/lib文件夹下。
14    4. 准备UT依赖的资源文件
15OHOS_STD/test/resource目录push到hi3516DV300设备的/data目录
16        在代码根目录执行: push ./test/resource/ /data/
17    5. 环境清理
18        (a) 执行之前先清理OHOS_STD/out/xxx-arm-release/obj/developtools 临时文件。
19                rm -rf ~/OHOS_STD/out/xxx-arm-release/obj/developtools
20        (b) 清理hi3516DV300设备上生成的中间文件/home/XXX/OHOS_STD/out21                rm -rf /home/ohos/OHOS_STD/out*
22        (c) 清理UT环境残留的覆盖率报告。
23                rm -rf ~/OHOS_STD/developtools/profiler/build/html
24
25# 测试步骤
26    1. 启动UT执行环境, 启动后根据提示信息输入hi3516DV300对应的设备编号。
27        在代码根目录执行:./test/developertest/start.sh
28    2. 编译并执行hiprofiler_ts_ut。
29start.sh启动的交互式窗口执行:run -t ut -ss developtools -ts hiprofiler_ts_ut
30
31# 生成测试报告
32    1. pull设备上生成的gcda
33        进入设备环境后: 执行cd /home/XXX/OHOS_STD
34                        tar -cvf out.tar out
35                        exit
36        退出shell后:pull /home/XXX/OHOS_STD/out.tar ~/OHOS_STD/
37                    tar -xvf out.tar
38                    pull /home/ohos/OHOS_STD/out/* /home/ohos/OHOS_STD/out/
39                    cd /home/ohos/OHOS_STD/developtools/profiler/build
40    2. 生成UT覆盖率报告
41        在代码根目录执行:./developtools/profiler/build/lcov.sh
42                        pull /data/test/hiprofiler_ts_ut.xml ~/OHOS_STD/developtools/profiler/build/html/
43        报告位置:~/OHOS_STD/developtools/profiler/build/html/index.html
44
45# 可能遇到的问题
46    1. gcno文件不存在问题
47        gcno文件是在编译阶段生成,编译时如果out目录存在.o临时文件,则不会编译源码,需要删除out/ obj/developtools/目录的编译中间文件后重新编译
48    2. 运行时报缺少依赖库libsqlite.z.so
49        需要把libsqlite.z.so push到设备的system/lib目录,在developtools/profiler/device/ohos_test.xml文件增加push命令
50    3. UT所有步骤执行完之后,html中没有生成覆盖率信息
51        权限问题,从设备中pull出来gcov文件后,需要关注文件权限
52    4. UT输出覆盖率世间点不是当前最新时间
53        清理掉原来的html文件,重新执行lcov.sh,生成新的html覆盖率报告