0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至子 来源:vacabun 作者:vacabun 2023-09-25 16:19 次阅读

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

    文章

    875

    浏览量

    43211
  • BSP
    BSP
    +关注

    关注

    1

    文章

    87

    浏览量

    26147
  • RT-Thread
    +关注

    关注

    31

    文章

    1285

    浏览量

    40096
  • qemu
    +关注

    关注

    0

    文章

    57

    浏览量

    5354
收藏 人收藏

    评论

    相关推荐

    为什么ENV工具无法拉取online软件包?怎么解决?

    env工具配置在线软件包后,执行pkgs --update提示下载成功,实际并未下载win11 env工具无法tab键补全指令
    发表于 04-25 09:44

    使用menuconfig配置基于RT-Thread的NimBLE软件包

    打开 Env 环境进行配置构建。每次使用一个 bsp 工程时,menuconfig 完成之后,还需要根据选项配置将特定的代码(如添加软件包等)通过 pkgs --update 命令进行
    发表于 06-27 11:18

    开源实习经验分享:openEuler软件包加固测试

    进行加固测试。openEuler 社区按照不同的 SIG(Special Interest Group) 来组织,以便于更好管理和改善工作流程。软件包加固测试相关工作则由SIG-QA团
    发表于 07-01 14:29

    为什么使用env工具pkgs --update命令进行软件包下载时会报错呢

    使用env工具pkgs --update命令进行软件包下载时报如下错误请问这个是什么原因呀,按照网上的方法,安装了git和Python27,都没有解决,求帮助
    发表于 07-25 11:14

    pkgs无任何错误提示但不能下载与更新软件包索引是什么原因

    最近换了一台新电脑,thinkbook win10家庭版本系统。 安装了Keil环境,git环境,安装了env 1.2.0环境,发现使用pkgs时,无任何错误提示,并且不能下载与更新软件包软件包索引,不知道这是什么原因?经过各
    发表于 07-25 13:06

    在Ubuntu平台开发RT-Thread文档中步骤搭建QEMU环境

    中步骤搭建 qemu 环境。注意:若 scons 版本低于 v4.0.1,需要手动安装 scons,步骤如下:配置 NimBLE 软件包1、在 qemu-vexpress-a9 BSP 根目录输入
    发表于 07-27 11:19

    如何在自己软件包上添加CI集成工具

    简介github有自己的CI集成工具 action, 很少有小伙伴关注到,如果你有自己的软件包,想要对其进行维护的话,添加CI集成能够方便你快速验证你的代码是否在RTT上可以顺利编译。本文会大概指导
    发表于 09-21 15:55

    请问一下pkgs只能下载一个软件包吗?

    menuconfig之后,增加了几个软件包,比如webnet、qboot、cjson。。。用pkgs —update,安装了一个webnet之后,就停住不动,长时间后,只能ctrl+C取消,在
    发表于 12-15 17:49

    为什么pkgs--update没有任何反应,软件包也没有下载下来?

    通过menuconfig 选中软件包保存配置退出后,输入命令pkgs —update等待一段时间后,未下载软件包,且无任何打印信息
    发表于 02-09 10:50

    Ubuntu下使用配置qemu环境为什么不能更新软件包呢?

    Ubuntu下使用配置qemu环境不能更新软件包,显示Permission denied: 'packages'是怎么回事
    发表于 02-15 10:48

    Keil MDK开发工具软件包和组件介绍

    这段教学视频介绍了ARM Keil MDK Version 5开发工具中的软件包和组件
    的头像 发表于 07-02 13:10 5280次阅读

    pkgs-test工具介绍及其使用方法

    针对上述的问题,诞生了 pkgs-test 工具,主要用于暴露出社区软件包的相关编译问题。
    的头像 发表于 07-28 15:56 1017次阅读

    RT-Thread在线软件包改为本地软件包的方法

    RT-Thread 的软件包,使用时需要手动通过 ENV 工具 更新到 本地的 packages 目录,并且 packages 目录默认不参与 Git 工程管理,软件包多了,偶尔需要更改软件包
    的头像 发表于 08-11 15:02 1211次阅读
    RT-Thread在线<b class='flag-5'>软件包</b>改为本地<b class='flag-5'>软件包</b>的方法

    如何使用pkgs-test工具进行本地调试?

    pkgs-test作为一个可以在github actions上面运行检查软件包编译情况的工具,同时也可以在本地使用。
    的头像 发表于 09-21 15:00 738次阅读

    RT-Thread中mymqtt软件包的使用方法

    在上一篇文章 RT-Thread中Lan8720和lwip协议栈的使用的工程基础上添加mymqtt软件包。 使能mqtt example和mqtt test,保存,等待下载更新软件包
    的头像 发表于 10-13 10:44 978次阅读
    RT-Thread中mymqtt<b class='flag-5'>软件包</b>的使用方法