@@ -10,6 +10,7 @@ function run_test {
10
10
local result=0
11
11
local error=0
12
12
local sdkconfig_path
13
+ local extra_args
13
14
14
15
sketchdir=$( dirname " $sketch " )
15
16
sketchname=$( basename " $sketchdir " )
@@ -32,7 +33,7 @@ function run_test {
32
33
if [ -f " $sketchdir " /ci.json ]; then
33
34
# If the target or platform is listed as false, skip the sketch. Otherwise, include it.
34
35
is_target=$( jq -r --arg target " $target " ' .targets[$target]' " $sketchdir " /ci.json)
35
- selected_platform=$( jq -r --arg platform $platform ' .platforms[$platform]' " $sketchdir " /ci.json)
36
+ selected_platform=$( jq -r --arg platform " $platform " ' .platforms[$platform]' " $sketchdir " /ci.json)
36
37
37
38
if [[ $is_target == " false" ]] || [[ $selected_platform == " false" ]]; then
38
39
printf " \033[93mSkipping %s test for %s, platform: %s\033[0m\n" " $sketchname " " $target " " $platform "
@@ -85,41 +86,41 @@ function run_test {
85
86
fi
86
87
87
88
if [ $platform == " wokwi" ]; then
88
- extra_args=" --target $target --embedded-services arduino,wokwi --wokwi-timeout=$wokwi_timeout "
89
+ extra_args=( " --target" " $target " " --embedded-services" " arduino,wokwi" " --wokwi-timeout=$wokwi_timeout " )
89
90
if [[ -f " $sketchdir /scenario.yaml" ]]; then
90
- extra_args+=" --wokwi-scenario $sketchdir /scenario.yaml"
91
+ extra_args+=( " --wokwi-scenario" " $sketchdir /scenario.yaml" )
91
92
fi
92
93
if [[ -f " $sketchdir /diagram.$target .json" ]]; then
93
- extra_args+=" --wokwi-diagram $sketchdir /diagram.$target .json"
94
+ extra_args+=( " --wokwi-diagram" " $sketchdir /diagram.$target .json" )
94
95
fi
95
96
96
97
elif [ $platform == " qemu" ]; then
97
98
PATH=$HOME /qemu/bin:$PATH
98
- extra_args=" --embedded-services qemu --qemu-image-path $build_dir /$sketchname .ino.merged.bin"
99
+ extra_args=( " --embedded-services" " qemu" " --qemu-image-path" " $build_dir /$sketchname .ino.merged.bin" )
99
100
100
101
if [ " $target " == " esp32" ] || [ " $target " == " esp32s3" ]; then
101
- extra_args+=" --qemu-prog-path qemu-system-xtensa --qemu-cli-args=\" -machine $target -m 4M -nographic\" "
102
+ extra_args+=( " --qemu-prog-path" " qemu-system-xtensa" " --qemu-cli-args=\" -machine $target -m 4M -nographic\" " )
102
103
elif [ " $target " == " esp32c3" ]; then
103
- extra_args+=" --qemu-prog-path qemu-system-riscv32 --qemu-cli-args=\" -machine $target -icount 3 -nographic\" "
104
+ extra_args+=( " --qemu-prog-path" " qemu-system-riscv32" " --qemu-cli-args=\" -machine $target -icount 3 -nographic\" " )
104
105
else
105
106
printf " \033[91mUnsupported QEMU target: %s\033[0m\n" " $target "
106
107
exit 1
107
108
fi
108
109
else
109
- extra_args=" --embedded-services esp,arduino"
110
+ extra_args=( " --embedded-services" " esp,arduino" )
110
111
fi
111
112
112
113
rm " $sketchdir " /diagram.json 2> /dev/null || true
113
114
114
115
result=0
115
- printf " \033[95mpytest %s/test_%s.py --build-dir %s --junit-xml=%s %s\033[0m\n" " $sketchdir " " $sketchname " " $build_dir " " $report_file " " $extra_args "
116
- bash -c " set +e; pytest $sketchdir /test_$sketchname .py --build-dir $build_dir --junit-xml=$report_file $ extra_args ; exit \$ ?" || result=$?
116
+ printf " \033[95mpytest \" %s/test_%s.py\" --build-dir \" %s \" --junit-xml=\" %s \" %s\033[0m\n" " $sketchdir " " $sketchname " " $build_dir " " $report_file " " ${ extra_args[*] @ Q} "
117
+ bash -c " set +e; pytest \" $sketchdir /test_$sketchname .py\" --build-dir \" $build_dir \" --junit-xml=\" $report_file \" ${ extra_args[*] @ Q} ; exit \$ ?" || result=$?
117
118
printf " \n"
118
119
if [ $result -ne 0 ]; then
119
120
result=0
120
121
printf " \033[95mRetrying test: %s -- Config: %s\033[0m\n" " $sketchname " " $i "
121
- printf " \033[95mpytest %s/test_%s.py --build-dir %s --junit-xml=%s %s\033[0m\n" " $sketchdir " " $sketchname " " $build_dir " " $report_file " " $extra_args "
122
- bash -c " set +e; pytest $sketchdir /test_$sketchname .py --build-dir $build_dir --junit-xml=$report_file $ extra_args ; exit \$ ?" || result=$?
122
+ printf " \033[95mpytest \" %s/test_%s.py\" --build-dir \" %s \" --junit-xml=\" %s \" %s\033[0m\n" " $sketchdir " " $sketchname " " $build_dir " " $report_file " " ${ extra_args[*] @ Q} "
123
+ bash -c " set +e; pytest \" $sketchdir /test_$sketchname .py\" --build-dir \" $build_dir \" --junit-xml=\" $report_file \" ${ extra_args[*] @ Q} ; exit \$ ?" || result=$?
123
124
printf " \n"
124
125
if [ $result -ne 0 ]; then
125
126
printf " \033[91mFailed test: %s -- Config: %s\033[0m\n\n" " $sketchname " " $i "
0 commit comments