OH 编译问题

 

OH 编译问题

需要版本 python3.9(待验证,看更高版本是不是可以)、gcc-11、clang 使用 gcc-11

我安装了 gcc-11 和 gcc-13,则默认通过 sudo apt install clang 会使用 gcc-13,因此需要先卸载 gcc-13 后再重新安装。

sudo apt remove gcc-13
sudo apt remove clang
sudo apt install clang

然后检查:

clang -v
# 出现
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11
  • 如果有多个版本的话,会显示多个 Found candidate GCC installation

sudo chown -R muxi /root 不小心将 OpenHarmony 安装到了 /root 下,需要 执行上面的命令后才能使用 code . 打开

如何直接跑 tdd 和 xdc 在 Windows 上

首先要保证存在 hdc 工具,下载 OH开发者工具,解压后,压缩包中有linux,windows两个文件夹,找到 windows 下的 toolchains-windows-x64-5.0.2.57-Canary1.zip 文件,解压到对应目录,然后添加路径到环境变量中,比如 D:\OH\toolchains-windows-x64-5.0.2.57-Canary1\toolchains

  • 打开终端,执行 hdc version 查看版本信息

注意使用 pip list 查看安装的版本,其中 setuptools 的版本号不能大于 50,如果大于,可以使用:

python -m pip uninstall setuptools
python -m pip install setuptools==46.1.3

环境上需要下载:

git clone https://gitee.com/openharmony/testfwk_developer_test
git clone https://gitee.com/openharmony/testfwk_xdevice

testfwk_xdevice 上需要直接 python setup.py install 和 在 plugins\ohos 目录下执行 python setup.py install(不执行也没啥)

  • 需要将两个文件放到同一个目录下,比如 /TDD

对于协议栈,TDD 就是本地的 UT,没有 XTS;由于 request 模块依赖协议栈,因此协议栈的修改需要跑 request 模块的 UT 和 XTS,可以使用一个已完成的 PR 来验证本地 windows 环境是否正确:

  • 比如对已合并的 PR: https://gitee.com/openharmony/request_request/pulls/1171 来进行测试
    1. 镜像烧写
  • 首先需要进行镜像烧写,在 PR 下面找到最新的 build 成功的记录,然后查看门禁报告 https://ci.openharmony.cn/workbench/cicd/detail/67807ce064650f998b35725f/runlist
  • 下载 dayu200 里面的文件 alt text
  1. TDD 如上所示,下载 dayu200_tdd 里的文件 将下载文件解压,将解压文件里面的 /tests 目录,拷贝到上面的 /TDD 目录下的 testfwk_developer_test中。

修改 testfwk_developer_test/config/user_config.xml 配置文件:

  • 修改 sn 信息为 hdc list targets 的输出值 ```xml
xxx ../tests

最后在目录 `D:\rk3568\TDD\testfwk_developer_test` 启动终端,然后运行 `./start.bat`,然后执行
```bash
run -t UT -tp request
  1. XTS 如上所示,下载 dayu200_xts 里的文件,直接解压后进入下面的文件夹
    \Artifacts-dayu200_xts-20250110-1-00135-version-dayu200_xts\suites\acts\acts
    

    然后运行:run.bat 文件,执行 run acts

注意,在跑 xts 的时候需要保证 rk 屏幕常亮连接网络,测试需要通过网络来下载数据

  • 屏幕常亮:hdc shell power-shell setmode 602
    600  :  normal mode
    601  :  power save mode
    602  :  performance mode
    603  :  extreme power save mode
    

对于协议栈的测试来说,TDD 就是项目下的 UT 测试,也就是通过执行 cargo test 来完成

  • 需要执行的 XTS 和 TDD 都是上传下载的,因此上传下载依赖协议栈,因此:
  • 刷上对应 PR 的镜像到 rk 中
    • 使用上传下载的其他最近 PR 上的 XTS 和 TDD 测试

      协议栈 images + 上传下载的 XTS 和 TDD

如果安装了 xdevice,那么就直接使用 python -m xdevice 然后运行 run acts 即可。

run.bat 中包含了卸载和安装命令,如果版本没有变化就可以直接运行上述命令来执行哟管理

python -m pip uninstall -y hypium
python -m pip uninstall -y xdevice-aw
python -m pip uninstall -y xdevice-aosp
python -m pip uninstall -y xdevice-oh-apptest
python -m pip uninstall -y xdevice-ohos
python -m pip uninstall -y xdevice-extension
python -m pip uninstall -y xdevice-devicetest
python -m pip uninstall -y xdevice-devicetest-extension
python -m pip uninstall -y xdevice-devicetest-common-aw
python -m pip uninstall -y xdevice-app-dfx-test
python -m pip uninstall -y xdevice-common-aw
python -m pip uninstall -y xdevice

测试报告的问题

  • 测试报告现在用的两套逻辑,要么下载到新报告,要么使用旧报告
  • 新报告下载不了的时候,直接使用了旧报告,但旧报告也要下载资源,如果下载不了,就会出现 这种错误,因此需要下载下面网站的资源,然后解压后替换到报告目录下
  • https://gitee.com/openharmony-sig/compatibility/blob/master/test_suite/resource/xdevice/template.zip