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
-
模拟器
+关注
关注
2文章
995浏览量
45393 -
BSP
+关注
关注
1文章
97浏览量
27767 -
RT-Thread
+关注
关注
32文章
1544浏览量
44306 -
qemu
+关注
关注
0文章
57浏览量
5878
发布评论请先 登录
ENV不能添加rt_vsnprintf_full软件包怎么解决?
为什么ENV工具无法拉取online软件包?怎么解决?
使用menuconfig配置基于RT-Thread的NimBLE软件包
为什么使用env工具的pkgs --update命令进行软件包下载时会报错呢
pkgs无任何错误提示但不能下载与更新软件包索引是什么原因
在Ubuntu平台开发RT-Thread文档中步骤搭建QEMU环境
如何在自己软件包上添加CI集成工具
请问一下pkgs只能下载一个软件包吗?
为什么pkgs--update没有任何反应,软件包也没有下载下来?
Ubuntu下使用配置qemu环境为什么不能更新软件包呢?
RT-Thread在线软件包改为本地软件包的方法
如何使用pkgs-test工具进行本地调试?
RT-Thread中mymqtt软件包的使用方法

使用pkgs-test工具对软件包进行qemu测试
评论