pkgs-test是一個(gè)可以在github actions上面檢查軟件包編譯情況的工具。除了檢查軟件包的編譯情況pkgs-test目前還添加了qemu運(yùn)行測(cè)試。
原理
在RT-thread里面有幾個(gè)bsp使用了qemu模擬開(kāi)發(fā)板,比如qemu-vexpress-a9。
使用scons編譯后,運(yùn)行bsp里面的qemu-nographic.sh可以啟動(dòng)一個(gè)沒(méi)有圖形模式的qemu模擬器。
在這個(gè)模擬器里面可以通過(guò)讀取輸出字符來(lái)識(shí)別軟件包運(yùn)行是否正常。
配置軟件包
RT-thread可以使用INIT_APP_EXPORT宏來(lái)進(jìn)行自動(dòng)化的初始化,在系統(tǒng)啟動(dòng)時(shí)可以自動(dòng)的運(yùn)行初始化程序。
通過(guò)自動(dòng)化初始化這個(gè)功能,我們可以在初始化的過(guò)程中輸出軟件包的初始化結(jié)果。
這個(gè)在hello軟件包里面有體現(xiàn)。(https://github.com/RT-Thread-packages/hello/blob/master/src/hello.c)
hello軟件包在初始化的時(shí)候會(huì)執(zhí)行rt_kprintf("hello package initialized.n");,輸出hello package initialized. 。
我們可以就在qemu的輸出里面尋找是否有輸出hello package initialized. 來(lái)判斷軟件包是否運(yùn)行正常。
預(yù)期輸入輸出的配置
目前對(duì)于qemu的預(yù)期輸入輸出的配置,在github actions存放workflow的文件夾里面創(chuàng)建了一個(gè)qemu.json文件。
其中input是一個(gè)列表,存放多個(gè)字符串用于多行輸入,output就是預(yù)期的輸出。
{
"hello": {
"latest": {
"input": [],
"output": "hello package initialized."
}
}
}
對(duì)于沒(méi)有配置的版本,默認(rèn)情況下識(shí)別的目標(biāo)字符串是msh />。
開(kāi)啟qemu測(cè)試
在pkgs-test的配置參數(shù)里面加入qemu-check: true
具體也可以看hello軟件包的配置,目前也開(kāi)啟了qemu測(cè)試。
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
-
模擬器
+關(guān)注
關(guān)注
2文章
881瀏覽量
43421 -
BSP
+關(guān)注
關(guān)注
1文章
88瀏覽量
26253 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1305瀏覽量
40386 -
qemu
+關(guān)注
關(guān)注
0文章
57瀏覽量
5394
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論