📄️ 测试原理
AxVisor 是一个针对嵌入式的系统,其测试需要直接在各种开发板上进行。当执行测试时,我们将 AxVisor 镜像动态加载到开发板的内存中去运行,然后截取并分析调试端口其输出的 LOG,依此来判断是否正常工作。
📄️ 整体环境
由于 AxVisor 本身是一个运行于各种硬件平台的 Hypervisor,直接使用 Gihub 提供的 Action 脚本命令执行服务器(官方称为 Runner)无法满足我们的测试需求,因此,需要将测试本地化,在本地服务器上执行所有测试过程。
📄️ 供电控制
在测试过程中,我们需要给测试设备执行重新上电等操作,因此,我们需要实现在本地测试服务器中通过命令手动控制测试设备上电的功能。我们需要一个电源控制模块,通过 USB 接口与本地测试服务器相连,通过串口与测试设备相连,实现上电和断电功能。
📄️ 开发板配置
测试设备是要运行 AxVisor 的设备,目前包括一块 x86 开发板,一块飞腾派开发板,一块瑞芯微开发板。后续随着 AxVisor 的平台扩展逐步添加新的测试设备。不同的测试设备需要不同的 AxVisor 固件,此外,他们的 Debug 接口和固件加载方式也不相同。
📄️ 注册 Runner 服务器
Github Actions 本身支持使用自定义服务器(Runners)来运行所有的 Action 命令。因此,我们可以将本地服务器注册为 Github Actions 的 Runner 服务器,从而直接在源码仓库中执行 CI 测试,最终实现自动化测试。