2024-09-17 11:38:12 +08:00
|
|
|
#!/bin/bash
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
# 定义超时时间(秒)
|
|
|
|
|
TIMEOUT=30
|
|
|
|
|
|
|
|
|
|
# 定义成功标志
|
|
|
|
|
SUCCESS_MSG="MKRTOS test ok."
|
|
|
|
|
|
|
|
|
|
# 运行命令并检查输出的函数
|
|
|
|
|
run_and_check() {
|
|
|
|
|
local cmd="$1"
|
|
|
|
|
local timeout="$2"
|
|
|
|
|
|
|
|
|
|
echo "Running: $cmd"
|
|
|
|
|
|
|
|
|
|
# 使用管道和 grep 来监听输出
|
|
|
|
|
timeout --preserve-status --foreground $timeout $cmd | while IFS= read -r line
|
|
|
|
|
do
|
|
|
|
|
echo "$line"
|
|
|
|
|
if [[ "$line" == *"$SUCCESS_MSG"* ]]; then
|
|
|
|
|
echo "Success message detected. Exiting..."
|
|
|
|
|
kill -INT $$
|
|
|
|
|
return 0;
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
# 检查 timeout 命令的退出状态
|
|
|
|
|
if [ $? -eq 124 ]; then
|
|
|
|
|
echo "Test timed out: $cmd"
|
|
|
|
|
exit -1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# 清理
|
|
|
|
|
./mkrtos_script/clean.sh
|
|
|
|
|
./mkrtos_script/build_qemu_aarch64.sh test
|
2024-09-22 16:06:39 +08:00
|
|
|
run_and_check "./mkrtos_script/run_aarch64_qemu.sh" "$TIMEOUT"# 运行测试
|
2024-09-17 11:38:12 +08:00
|
|
|
|
2024-09-22 16:06:39 +08:00
|
|
|
./mkrtos_script/clean.sh
|
2024-09-17 11:38:12 +08:00
|
|
|
./mkrtos_script/build_f2.sh test
|
|
|
|
|
run_and_check "./mkrtos_script/run_m3.sh" "$TIMEOUT"
|
|
|
|
|
|
2024-09-22 16:06:39 +08:00
|
|
|
./mkrtos_script/clean.sh
|
|
|
|
|
./mkrtos_script/build_f4.sh test
|
|
|
|
|
run_and_check "./mkrtos_script/run_m4.sh" "$TIMEOUT"
|
|
|
|
|
|
|
|
|
|
./mkrtos_script/clean.sh
|
2024-10-17 23:31:20 +08:00
|
|
|
./mkrtos_script/build_at32f437.sh test "$TIMEOUT"
|
|
|
|
|
|
|
|
|
|
./mkrtos_script/clean.sh
|
|
|
|
|
./mkrtos_script/build_swm34s.sh test "$TIMEOUT"
|
2024-09-17 11:38:12 +08:00
|
|
|
# run_and_check "./mkrtos_script/build_swm34s.sh test" "$TIMEOUT"
|
|
|
|
|
|
|
|
|
|
echo "All tests completed."
|