Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
CI/CD_持续集成部署
使用pkgs-test工具对软件包进行qemu测试
发布于 2023-09-25 00:19:41 浏览:258
订阅该版
[tocm] # 使用pkgs-test工具对软件包进行qemu测试 pkgs-test是一个可以在github actions上面检查软件包编译情况的工具。除了检查软件包的编译情况pkgs-test目前还添加了qemu运行测试。 # 原理 在RT-thread里面有几个bsp使用了qemu模拟开发板,比如qemu-vexpress-a9。 使用scons编译后,运行bsp里面的[qemu-nographic.sh](http://qemu-nographic.sh/)可以启动一个没有图形模式的qemu模拟器。 在这个模拟器里面可以通过读取输出字符来识别软件包运行是否正常。 # 配置软件包 RT-thread可以使用INIT_APP_EXPORT宏来进行自动化的初始化,在系统启动时可以自动的运行初始化程序。 通过自动化初始化这个功能,我们可以在初始化的过程中输出软件包的初始化结果。 这个在hello软件包里面有体现。([https://github.com/RT-Thread-packages/hello/blob/master/src/hello.c](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文件。([https://github.com/RT-Thread-packages/hello/blob/master/.github/workflows/qemu.json](https://github.com/RT-Thread-packages/hello/blob/master/.github/workflows/qemu.json))存放了对应软件包版本的预期输入输出配置。其中input是一个列表,存放多个字符串用于多行输入,output就是预期的输出。 ```json { "hello": { "latest": { "input": [], "output": "hello package initialized." } } } ``` 对于没有配置的版本,默认情况下识别的目标字符串是`msh />`。 # 开启qemu测试 在pkgs-test的配置参数里面加入`qemu-check: true` 具体也可以看hello软件包的配置,目前也开启了qemu测试。 [https://github.com/RT-Thread-packages/hello/blob/master/.github/workflows/action.yml](https://github.com/RT-Thread-packages/hello/blob/master/.github/workflows/action.yml) ```yml 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 ``` 关于软件包的自动qemu测试,如果有更好的关于输入输出配置的方法,以及其他建议,请尽情在评论区讨论!!
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
vacabun
这家伙很懒,什么也没写!
文章
6
回答
0
被采纳
0
关注TA
发私信
相关文章
1
生成目标文件的时候,有什么好方法能读取两个不同的链接文件,来生成两个链接地址不同的目标文件(.bin .hex)
2
想在CI/CD中加入 RTT studio项目构建, 如果启用命令行方式的构建
3
RT1052的gcc后的bin执行异常
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
7
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
6
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部