10
10
- synchronize
11
11
paths :
12
12
- " .github/workflows/spec_test_on_nuttx.yml"
13
-
13
+ - " core/**"
14
+ - " !core/deps/**"
15
+ - " product-mini/**"
16
+ - " !samples/workload/**"
17
+ - " tests/wamr-test-suites/**"
18
+ - " wamr-compiler/**"
19
+ - " wamr-sdk/**"
14
20
schedule :
15
21
- cron : ' 0 0 * * *'
16
22
20
26
LLVM_CACHE_SUFFIX : " build-llvm_libraries_ex"
21
27
WASI_SDK_PATH : " /opt/wasi-sdk"
22
28
WAMR_COMMON_OPTION :
23
- " CONFIG_INTERPRETERS_WAMR=y\\ nCONFIG_INTERPRETERS_WAMR_STACKSIZE=32768 \\ nCONFIG_INTERPRETERS_WAMR_LOG=y\\ nCONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN=y\\ nCONFIG_INTERPRETERS_WAMR_REF_TYPES=y\\ nCONFIG_INTERPRETERS_WAMR_ENABLE_SPEC_TEST=y\\ nCONFIG_INTERPRETERS_WAMR_SHARED_MEMORY=y\\ nCONFIG_INTERPRETERS_WAMR_BULK_MEMORY=y\\ nCONFIG_EOL_IS_LF=y\\ nCONFIG_ARM_SEMIHOSTING_HOSTFS=y\\ nCONFIG_ARM_SEMIHOSTING_HOSTFS_CACHE_COHERENCE=y\\ nCONFIG_RISCV_SEMIHOSTING_HOSTFS=y\\ nCONFIG_FS_HOSTFS=y\\ nCONFIG_LIBC_FLOATINGPOINT=y\\ n"
29
+ " CONFIG_INTERPRETERS_WAMR=y\\ nCONFIG_INTERPRETERS_WAMR_STACKSIZE=327680 \\ nCONFIG_INTERPRETERS_WAMR_LOG=y\\ nCONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN=y\\ nCONFIG_INTERPRETERS_WAMR_REF_TYPES=y\\ nCONFIG_INTERPRETERS_WAMR_ENABLE_SPEC_TEST=y\\ nCONFIG_INTERPRETERS_WAMR_SHARED_MEMORY=y\\ nCONFIG_INTERPRETERS_WAMR_BULK_MEMORY=y\\ nCONFIG_EOL_IS_LF=y\\ nCONFIG_ARM_SEMIHOSTING_HOSTFS=y\\ nCONFIG_ARM_SEMIHOSTING_HOSTFS_CACHE_COHERENCE=y\\ nCONFIG_RISCV_SEMIHOSTING_HOSTFS=y\\ nCONFIG_FS_HOSTFS=y\\ nCONFIG_LIBC_FLOATINGPOINT=y\\ n"
24
30
25
31
jobs :
26
32
build_llvm_libraries :
27
33
uses : ./.github/workflows/build_llvm_libraries.yml
28
34
with :
29
35
os : " ubuntu-22.04"
30
36
arch : " ARM RISCV AArch64"
31
- container_image : ghcr.io/apache /nuttx/apache-nuttx-ci-linux@sha256:d9261eacf6c6ebe656c571757751c803e8f04c3ae9b820320a5ea5dd57b7205a
37
+ container_image : ghcr.io/no1wudi /nuttx/apache-nuttx-ci-linux@sha256:8c4e00b607d4d6d66ba8f51c4544819a616eac69d3a2ac669e2af2150e2eb0f9
32
38
33
39
spec_test_on_qemu :
34
40
runs-on : ubuntu-latest
35
41
needs : [build_llvm_libraries]
36
42
container :
37
- image : ghcr.io/apache /nuttx/apache-nuttx-ci-linux@sha256:d9261eacf6c6ebe656c571757751c803e8f04c3ae9b820320a5ea5dd57b7205a
43
+ image : ghcr.io/no1wudi /nuttx/apache-nuttx-ci-linux@sha256:8c4e00b607d4d6d66ba8f51c4544819a616eac69d3a2ac669e2af2150e2eb0f9
38
44
strategy :
39
45
matrix :
40
46
target_config : [
@@ -75,20 +81,25 @@ jobs:
75
81
mode : " -t aot" ,
76
82
option : " CONFIG_INTERPRETERS_WAMR_AOT=y\\ n"
77
83
},
78
- {
79
- mode : " -t aot -X" ,
80
- option : " CONFIG_INTERPRETERS_WAMR_AOT=y\\ n"
81
- },
82
- {
83
- mode : " -t classic-interp" ,
84
- option : " CONFIG_INTERPRETERS_WAMR_CLASSIC=y\\ n"
85
- },
86
- {
87
- mode : " -t fast-interp" ,
88
- option : " CONFIG_INTERPRETERS_WAMR_FAST=y\\ n"
89
- },
84
+ # {
85
+ # mode: "-t aot -X",
86
+ # option: "CONFIG_INTERPRETERS_WAMR_AOT=y\\n"
87
+ # },
88
+ # {
89
+ # mode: "-t classic-interp",
90
+ # option: "CONFIG_INTERPRETERS_WAMR_CLASSIC=y\\n"
91
+ # },
92
+ # {
93
+ # mode: "-t fast-interp",
94
+ # option: "CONFIG_INTERPRETERS_WAMR_FAST=y\\n"
95
+ # },
90
96
]
91
97
98
+ wamr_feature_option :
99
+ # Empty option for default
100
+ - { option: "", mode: "" }
101
+ - { option: "CONFIG_INTERPRETERS_WAMR_GC=y\\nCONFIG_INTERPRETERS_WAMR_AOT_STACK_FRAME=y\\n", mode: "-G" }
102
+
92
103
exclude :
93
104
# XIP is not fully supported yet on RISCV64, some relocations can not be resolved
94
105
- target_config : { config: "boards/risc-v/qemu-rv/rv-virt/configs/nsh64" }
@@ -136,6 +147,23 @@ jobs:
136
147
if : contains(matrix.wamr_test_option.mode, 'aot')
137
148
run : cp -r core/deps/llvm apps/interpreters/wamr/wamr/core/deps/llvm
138
149
150
+ # Inject the config option to NuttX
151
+ # TODO: Merge this into NuttX once GC is generally available
152
+ - name : Modify Kconfig
153
+ run : |
154
+ echo "\n" >> apps/interpreters/wamr/Kconfig
155
+ echo "config INTERPRETERS_WAMR_GC" >> apps/interpreters/wamr/Kconfig
156
+ echo "\tbool \"Enable GC\"" >> apps/interpreters/wamr/Kconfig
157
+ echo "\tdefault n" >> apps/interpreters/wamr/Kconfig
158
+ echo "\n" >> apps/interpreters/wamr/Kconfig
159
+ echo "config INTERPRETERS_WAMR_AOT_STACK_FRAME" >> apps/interpreters/wamr/Kconfig
160
+ echo "\tbool \"Enable AOT stack frame\"" >> apps/interpreters/wamr/Kconfig
161
+ echo "\tdefault n" >> apps/interpreters/wamr/Kconfig
162
+ echo "\n" >> apps/interpreters/wamr/Kconfig
163
+ echo "config INTERPRETERS_WAMR_TAIL_CALL" >> apps/interpreters/wamr/Kconfig
164
+ echo "\tbool \"Enable Tail Call\"" >> apps/interpreters/wamr/Kconfig
165
+ echo "\tdefault y" >> apps/interpreters/wamr/Kconfig
166
+
139
167
- name : Enable WAMR for NuttX
140
168
run : |
141
169
find nuttx/boards -name defconfig | xargs sed -i '$a\${{ env.WAMR_COMMON_OPTION }}'
@@ -144,6 +172,11 @@ jobs:
144
172
run : |
145
173
find nuttx/boards -name defconfig | xargs sed -i '$a\${{ matrix.wamr_test_option.option }}'
146
174
175
+ - name : Enable WAMR Feature for NuttX
176
+ if : matrix.wamr_feature_option.option != ''
177
+ run : |
178
+ find nuttx/boards -name defconfig | xargs sed -i '$a\${{ matrix.wamr_feature_option.option }}'
179
+
147
180
- name : Disable FPU for NuttX
148
181
if : matrix.target_config.fpu_type == 'none'
149
182
run : |
@@ -172,4 +205,4 @@ jobs:
172
205
- name : Test
173
206
run : |
174
207
cd apps/interpreters/wamr/wamr/tests/wamr-test-suites
175
- ./test_wamr.sh -s spec ${{ matrix.wamr_test_option.mode }} -m ${{ matrix.target_config.target }} -b -Q -P -F ${{ steps.build_firmware.outputs.firmware }}
208
+ ./test_wamr.sh -s spec ${{ matrix.wamr_test_option.mode }} -m ${{ matrix.target_config.target }} -b -Q -P -F ${{ steps.build_firmware.outputs.firmware }} ${{ matrix.wamr_feature_option.mode}}
0 commit comments