pkgs-test是一个可以在github actions上面检查软件包编译情况的工具。除了检查软件包的编译情况pkgs-test目前还添加了qemu运行测试。
原理
在rt-thread里面有几个bsp使用了qemu模拟开发板,比如qemu-vexpress-a9。
使用scons编译后,运行bsp里面的qemu-nographic.sh可以启动一个没有图形模式的qemu模拟器。
在这个模拟器里面可以通过读取输出字符来识别软件包运行是否正常。
配置软件包
rt-thread可以使用init_app_export宏来进行自动化的初始化,在系统启动时可以自动的运行初始化程序。
通过自动化初始化这个功能,我们可以在初始化的过程中输出软件包的初始化结果。
这个在hello软件包里面有体现。(https://github.com/rt-thread-packages/hello/blob/master/src/hello.c)
hello软件包在初始化的时候会执行rt_kprintf(hello package initialized.n);,输出hello package initialized. 。
我们可以就在qemu的输出里面寻找是否有输出hello package initialized. 来判断软件包是否运行正常。
预期输入输出的配置
目前对于qemu的预期输入输出的配置,在github actions存放workflow的文件夹里面创建了一个qemu.json文件。
其中input是一个列表,存放多个字符串用于多行输入,output就是预期的输出。
{
hello: {
latest: {
input: [],
output: hello package initialized.
}
}
}
对于没有配置的版本,默认情况下识别的目标字符串是msh />。
开启qemu测试
在pkgs-test的配置参数里面加入qemu-check: true
具体也可以看hello软件包的配置,目前也开启了qemu测试。
name: rt-thread_packages_test
on:
[push, pull_request]
jobs:
pkgs-test:
uses: rt-thread/pkgs-test/.github/workflows/pkgs-action.yml@main
with:
qemu-check: true
开放银行业能为区块链的发展做些什么?
江苏最亲近南京的城市,曾做过江苏的省会,你知道是哪吗
西部电子第一大展规模增长,消费电子比重加大
数字压力表的操作步骤及注意事项
SIT1043Q通过第三方AEC-Q100车规认证
使用pkgs-test工具对软件包进行qemu测试
电气施工图的组成和特点_电气施工图阅读方法
玻璃转子流量计内部浮子生锈怎么办
贸泽推出Qorvo的Active-Semi全系列产品
5G基站结构件都有哪些呢?
压力继电器是什么,它的运行原理是怎样的
华为公司GaussDB OLAP数据库一体机验证完成,满足运营商的运行要求
比亚迪E5电动车充电故障案例分析
2019世界人工智能大会时,到底在看什么?
魅族 21 真机亮相,是梦中情机没错了
谁在引领智能门“3.0时代”?王力机器人安全门交出答卷
全球芯片短缺的原因
艾法斯成为TD产业联盟首批海外测试测量仪器厂商会员
阿里巴巴张勇:通过数字化的方式寻找新的发展机遇
比特币和平宪法将终结暴政时代