1010 - synchronize
1111 paths :
1212 - " .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/**"
1420 schedule :
1521 - cron : ' 0 0 * * *'
1622
2026 LLVM_CACHE_SUFFIX : " build-llvm_libraries_ex"
2127 WASI_SDK_PATH : " /opt/wasi-sdk"
2228 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"
2430
2531jobs :
2632 build_llvm_libraries :
2733 uses : ./.github/workflows/build_llvm_libraries.yml
2834 with :
2935 os : " ubuntu-22.04"
3036 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
3238
3339 spec_test_on_qemu :
3440 runs-on : ubuntu-latest
3541 needs : [build_llvm_libraries]
3642 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
3844 strategy :
3945 matrix :
4046 target_config : [
@@ -75,20 +81,25 @@ jobs:
7581 mode : " -t aot" ,
7682 option : " CONFIG_INTERPRETERS_WAMR_AOT=y\\ n"
7783 },
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+ # },
9096 ]
9197
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+
92103 exclude :
93104 # XIP is not fully supported yet on RISCV64, some relocations can not be resolved
94105 - target_config : { config: "boards/risc-v/qemu-rv/rv-virt/configs/nsh64" }
@@ -136,6 +147,23 @@ jobs:
136147 if : contains(matrix.wamr_test_option.mode, 'aot')
137148 run : cp -r core/deps/llvm apps/interpreters/wamr/wamr/core/deps/llvm
138149
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+
139167 - name : Enable WAMR for NuttX
140168 run : |
141169 find nuttx/boards -name defconfig | xargs sed -i '$a\${{ env.WAMR_COMMON_OPTION }}'
@@ -144,6 +172,11 @@ jobs:
144172 run : |
145173 find nuttx/boards -name defconfig | xargs sed -i '$a\${{ matrix.wamr_test_option.option }}'
146174
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+
147180 - name : Disable FPU for NuttX
148181 if : matrix.target_config.fpu_type == 'none'
149182 run : |
@@ -172,4 +205,4 @@ jobs:
172205 - name : Test
173206 run : |
174207 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