59f407f1创建于 2023年5月16日历史提交
README.md

Hi3516烧录OH2代码

1. 连接串口线, USB和网线。
2. 使用HiTool工具加载并烧写OH2代码编译镜像。
    镜像路径: OH2_TOOL\out\ohos-arm-release\packages\phone\images\Hi3516DV300-emmc.xml
3. 在新烧录好的开发板配置网络信息。
    配置IP:         ifconfig eth0 xxx.xxx.xxx.xxx
    配置子网掩码:   ifconfig eth0 xxx.xxx.xxx.xxx netmask 255.255.255.0
    分配hdcd端口:   hdcd -t &
    查看端口:       netstat -nat

编译FUZZ测试二进制文件

1. 修改OH2_TOOL/developtools/profiler/ohos.build
    在testlist中添加:"//developtools/profiler/trace_analyzer/test:fuzztest"
2. 启动测试shell。
    cd OH2_TOOL
    ./test/developertest/start.sh  根据输出提示选择 hi3516DV300对应的数字。
3. 编译可执行程序。
    run -t FUZZ -ss developtools -ts hiprofiler_ts_bytrace_fuzz_test
    run -t FUZZ -ss developtools -ts hiprofiler_ts_htrace_fuzz_test
    run -t FUZZ -ss developtools -ts hiprofiler_ts_selector_fuzz_test
   生成可执行文件路径: OH2_TOOL/out/ohos-arm-release/packages/phone/tests/fuzztest/hiprofiler/ts_fuzz/

准备FUZZ测试环境

1. 使用hdc工具将上一步生成的可执行程序上传到开发板指定目录。
    例如: hdc_std file send hiprofiler_ts_htrace_fuzz_test /data/local/tmp/FuzzTest
    添加执行权限 chmod +x hiprofiler_ts_htrace_fuzz_test
2. 上传动态库。
    代码目录下查询以下动态库, 并上传到开发板/system/lib目录。
        libsqlite.z.so
        libcrypto.so
        libssl.z.so
        libcrypto.z.so
        libgrpc.z.so

执行FUZZ测试用例

cd /data/local/tmp/FuzzTest
./hiprofiler_ts_bytrace_fuzz_test -max_total_time=20
./hiprofiler_ts_htrace_fuzz_test -max_total_time=20
./hiprofiler_ts_selector_fuzz_test -max_total_time=20

可能遇到的问题

1. 开发板启动失败,重启开发板,进入uboot中配置启动参数。
    setenv bootargs 'mem=640M console=ttyAMA0,115200 mmz=anonymous,0,0xA8000000,384M clk_ignore_unused androidboot.selinux=permissive skip_initramfs rootdelay=10 init=/init root=/dev/mmcblk0p5 rootfstype=ext4 rw blkdevparts=mmcblk0:1M(boot),15M(kernel),20M(updater),1M(misc),3307M(system),256M(vendor),-(userdata)'
    setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; bootm 0x80000000";
    save
    reset
2. 执行测试用例过程中报“cannot merge previous GCDA ”。
    在开发板上进入OH2_TOOL目录,执行以下命令:
    find . -name "*.gcda" -print0 | xargs -0 rm