sim:tests: add support for running sel4test or sel4test+wrapper
- parameterize shodan_sel4test.robot to use either sel4test or
sel4test+wrapper build artifacts (default sel43est)
- add a --wrapper option to test.sh to enable sel4test+wrapper use
Note the default is sel4test because sel4test+wrapper is (temporarily)
broken.
Change-Id: I512ea1d7ef9f49aacd43e0b83c9937cbb3153876
diff --git a/shodan_sel4test.robot b/shodan_sel4test.robot
index 2bc8023..e65396e 100644
--- a/shodan_sel4test.robot
+++ b/shodan_sel4test.robot
@@ -10,6 +10,11 @@
Resource ${RENODEKEYWORDS}
*** Variables ***
+# Run sel4test+wrapper (sel4test + Rust syscall wrappers) instead of sel4test
+# This variable is 0 by default, use ./test.sh --wrapper to override
+${RUN_WRAPPER} 0
+
+*** Variables ***
${LOG_TIMEOUT} 2
${ROOTDIR} ${CURDIR}/../..
${SCRIPT} sim/config/shodan.resc
@@ -20,17 +25,25 @@
${UART5} sysbus.uart5
${MATCHA_BUNDLE_RELEASE} ${ROOTDIR}/out/matcha-bundle-release.elf
-${SEL4TEST_KERNEL} ${ROOTDIR}/out/sel4test-wrapper/riscv32-unknown-elf/debug/kernel/kernel.elf
-${SEL4TEST_ROOTSERVER} ${ROOTDIR}/out/sel4test-wrapper/riscv32-unknown-elf/debug/apps/sel4test-driver/sel4test-driver
+${SEL4TEST_WRAPPER_KERNEL} ${ROOTDIR}/out/sel4test-wrapper/riscv32-unknown-elf/debug/kernel/kernel.elf
+${SEL4TEST_WRAPPER_ROOTSERVER} ${ROOTDIR}/out/sel4test-wrapper/riscv32-unknown-elf/debug/apps/sel4test-driver/sel4test-driver
+${SEL4TEST_KERNEL} ${ROOTDIR}/out/sel4test/riscv32-unknown-elf/debug/kernel/kernel.elf
+${SEL4TEST_ROOTSERVER} ${ROOTDIR}/out/sel4test/riscv32-unknown-elf/debug/apps/sel4test-driver/sel4test-driver
${OUT_TMP} ${ROOTDIR}/out/tmp
-${FLASH_TAR} out/sel4test-wrapper/riscv32-unknown-elf/debug/ext_flash.tar
+${FLASH_WRAPPER_TAR} out/sel4test-wrapper/riscv32-unknown-elf/debug/ext_flash.tar
+${FLASH_TAR} out/sel4test/riscv32-unknown-elf/debug/ext_flash.tar
*** Keywords ***
Prepare Machine
Execute Command path set @${ROOTDIR}
- Execute Command $tar=@${FLASH_TAR}
- Execute Command $kernel=@${SEL4TEST_KERNEL}
+ IF ${RUN_WRAPPER} == 1
+ Execute Command $kernel=@${SEL4TEST_WRAPPER_KERNEL}
+ Execute Command $tar=@${FLASH_WRAPPER_TAR}
+ ELSE
+ Execute Command $kernel=@${SEL4TEST_KERNEL}
+ Execute Command $tar=@${FLASH_TAR}
+ END
Execute Command $cpio=@/dev/null
Execute Script ${SCRIPT}
# Add UART5 virtual time so we can check the machine execution time
@@ -45,9 +58,15 @@
Run Process cp -f ${MATCHA_BUNDLE_RELEASE} ${OUT_TMP}/matcha-tock-bundle
Run Process riscv32-unknown-elf-strip ${OUT_TMP}/matcha-tock-bundle
Run Process riscv32-unknown-elf-objcopy -O binary -g ${OUT_TMP}/matcha-tock-bundle ${OUT_TMP}/matcha-tock-bundle.bin
- Run Process ln -sfr ${SEL4TEST_KERNEL} ${OUT_TMP}/kernel
- Run Process ln -sfr ${SEL4TEST_ROOTSERVER} ${OUT_TMP}/capdl-loader
- Run Process tar -C ${OUT_TMP} -cvhf ${ROOTDIR}/${FLASH_TAR} matcha-tock-bundle.bin kernel capdl-loader
+ IF ${RUN_WRAPPER} == 1
+ Run Process ln -sfr ${SEL4TEST_WRAPPER_KERNEL} ${OUT_TMP}/kernel
+ Run Process ln -sfr ${SEL4TEST_WRAPPER_ROOTSERVER} ${OUT_TMP}/capdl-loader
+ Run Process tar -C ${OUT_TMP} -cvhf ${ROOTDIR}/${FLASH_WRAPPER_TAR} matcha-tock-bundle.bin kernel capdl-loader
+ ELSE
+ Run Process ln -sfr ${SEL4TEST_KERNEL} ${OUT_TMP}/kernel
+ Run Process ln -sfr ${SEL4TEST_ROOTSERVER} ${OUT_TMP}/capdl-loader
+ Run Process tar -C ${OUT_TMP} -cvhf ${ROOTDIR}/${FLASH_TAR} matcha-tock-bundle.bin kernel capdl-loader
+ END
Provides initialization
Shodan seL4test with Rust syscall wrappers
diff --git a/test.sh b/test.sh
index 2ef1527..ce396ac 100755
--- a/test.sh
+++ b/test.sh
@@ -26,6 +26,14 @@
)
fi
+if [[ $1 == "--wrapper" ]]; then
+ echo "Running sel4test+wrapper artifacts"
+ shift
+ ARGS+=(
+ --variable "RUN_WRAPPER:1"
+ )
+fi
+
ARGS+=(
--exclude "skip_${DETECTED_OS}"
-r "$(get_path "${TESTS_RESULTS}")"