本次实验采用OpenHarmony中的riscv-mini系统,该系统自带了一个测试组件,我们目前没有启用该测试组件,本次实验需要通过修改启用该测试组件,输出相应的测试结果。
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.5fork and clone本仓库的代码,进入代码目录后执行命令,在docker环境中运行代码
docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.5
apt update
apt install qemu-system-misc
通过hb set选择mini系统,如下图所示
root@ebdea9b44bd3:/home/openharmony# hb set
[OHOS INFO] Input code path:
OHOS Which product do you need? qemu_riscv_mini_system_demo
然后使用hb build命令进行构建,构建成功如下图所示
[OHOS INFO] /home/openharmony/vendor/ohemu/qemu_riscv32_mini_system_demo/fs.yml not found, stop packing fs. If the product does not need to be packaged, ignore it.
[OHOS INFO] qemu_riscv_mini_system_demo build success使用命令qemu-system-riscv32 -machine virt -m 128M -kernel out/riscv32_virt/qemu_riscv_mini_system_demo/bin/OHOS_Image -nographic -append "root=dev/vda or console=ttyS0" 运行riscv-mini系统
OHOS start
entering kernel init...
Entering scheduler
在每次重新构建时,请使用rm -rf out 移除生成的本仓库根目录下out目录。
测试组件通过调用文件kernel/liteos_m/testsuits/src/osTest.c中的LosAppInit()执行,目前在./vendor/ohemu/qemu_riscv32_mini_system_demo/config.json的配置中配置了enable_ohos_kernel_liteos_m_test = true,但是在实际的构建的系统运行时并没有执行测试组件。
请修改系统代码,实现如下目标:
- 基础目标:配置了
enable_ohos_kernel_liteos_m_test = true时正常构建系统,正常运行测试组件,不要求此时配置enable_ohos_kernel_liteos_m_test = false系统能正常构建。 - 拓展目标:配置了
enable_ohos_kernel_liteos_m_test = true时正常构建系统,正常运行测试组件,配置enable_ohos_kernel_liteos_m_test = false时正常构建系统,运行时不执行测试。
在配置enable_ohos_kernel_liteos_m_test = true时正常构建系统,运行时执行测试组件。输出如下:
[Passed]-ItLosPm002-LOS-TASK-LEVEL0-FUNCTION
pm timeout : 2351819392 ns -> 4154498447 ticks
PmTestTask loop: 1
pm timeout : 1343604092 ns -> 4154497439 ticks
PmTestTask loop: 2
pm timeout : 334944892 ns -> 4154496430 ticks
PmTestTask loop: 3
pm timeout : 3622035788 ns -> 4154495422 ticks
PmTestTask loop: 4
pm timeout : 2614201188 ns -> 4154494414 ticks
PmTestTask loop: 5
pm timeout : 1606372188 ns -> 4154493407 ticks
[Passed]-ItLosPm003-LOS-TASK-LEVEL0-FUNCTION
--- Test End ---
failed count : 0, success count:328
在配置enable_ohos_kernel_liteos_m_test = false时正常构建系统,运行时不执行测试。输出如下:
OHOS start
entering kernel init...
Entering scheduler
北京时间2024年12月10日00:00
- 实验完成后,提交git diff后的patch文件,命名为ohos_lab.patch,基线为仓库的最新commit,提交到fork的仓库的patch目录下。
- 在提交前使用
rm -rf out移除生成的out目录,patch中仅包含对源码进行的修改,不需要构建的生成物。