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文章
894瀏覽量
44437 -
BSP
+關注
關注
1文章
94瀏覽量
26969 -
RT-Thread
+關注
關注
32文章
1412瀏覽量
41980 -
qemu
+關注
關注
0文章
57瀏覽量
5678
發布評論請先 登錄
為什么ENV工具無法拉取online軟件包?怎么解決?
使用menuconfig配置基于RT-Thread的NimBLE軟件包
開源實習經驗分享:openEuler軟件包加固測試
為什么使用env工具的pkgs --update命令進行軟件包下載時會報錯呢
pkgs無任何錯誤提示但不能下載與更新軟件包索引是什么原因
在Ubuntu平臺開發RT-Thread文檔中步驟搭建QEMU環境
如何在自己軟件包上添加CI集成工具
請問一下pkgs只能下載一個軟件包嗎?
為什么pkgs--update沒有任何反應,軟件包也沒有下載下來?
Ubuntu下使用配置qemu環境為什么不能更新軟件包呢?
RT-Thread在線軟件包改為本地軟件包的方法

如何使用pkgs-test工具進行本地調試?
RT-Thread中mymqtt軟件包的使用方法

評論