From 8438396f3382c954dc91e8140e2f3ea5e905617a Mon Sep 17 00:00:00 2001 From: nietingting <nietingting@xiaomi.com> Date: Mon, 10 Oct 2022 11:07:31 +0800 Subject: [PATCH] ci: add qemu run support Signed-off-by: nietingting <nietingting@xiaomi.com> --- .../imx6/sabre-6quad/configs/citest/defconfig | 70 ++++++++++++++++++ .../arm/imx6/sabre-6quad/configs/citest/run | 1 + .../qemu-rv/rv-virt/configs/citest/defconfig | 72 ++++++++++++++++++ .../risc-v/qemu-rv/rv-virt/configs/citest/run | 1 + .../rv-virt/configs/citest64/defconfig | 73 +++++++++++++++++++ .../qemu-rv/rv-virt/configs/citest64/run | 1 + boards/sim/sim/sim/configs/citest/run | 30 +------- tools/ci/cirun.sh | 40 ++++++++++ 8 files changed, 259 insertions(+), 29 deletions(-) create mode 100644 boards/arm/imx6/sabre-6quad/configs/citest/defconfig create mode 120000 boards/arm/imx6/sabre-6quad/configs/citest/run create mode 100644 boards/risc-v/qemu-rv/rv-virt/configs/citest/defconfig create mode 120000 boards/risc-v/qemu-rv/rv-virt/configs/citest/run create mode 100644 boards/risc-v/qemu-rv/rv-virt/configs/citest64/defconfig create mode 120000 boards/risc-v/qemu-rv/rv-virt/configs/citest64/run mode change 100644 => 120000 boards/sim/sim/sim/configs/citest/run create mode 100755 tools/ci/cirun.sh diff --git a/boards/arm/imx6/sabre-6quad/configs/citest/defconfig b/boards/arm/imx6/sabre-6quad/configs/citest/defconfig new file mode 100644 index 0000000000..0936048893 --- /dev/null +++ b/boards/arm/imx6/sabre-6quad/configs/citest/defconfig @@ -0,0 +1,70 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +# CONFIG_NSH_CMDOPT_HEXDUMP is not set +CONFIG_ARCH="arm" +CONFIG_ARCH_BOARD="sabre-6quad" +CONFIG_ARCH_BOARD_SABRE_6QUAD=y +CONFIG_ARCH_BUTTONS=y +CONFIG_ARCH_CHIP="imx6" +CONFIG_ARCH_CHIP_IMX6=y +CONFIG_ARCH_CHIP_IMX6_6QUAD=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_IRQBUTTONS=y +CONFIG_ARCH_LOWVECTORS=y +CONFIG_ARCH_STACKDUMP=y +CONFIG_ARMV7A_ASSOCIATIVITY_16WAY=y +CONFIG_ARMV7A_L2CC_PL310=y +CONFIG_ARMV7A_WAYSIZE_64KB=y +CONFIG_BOARD_LOOPSPERMSEC=99369 +CONFIG_BOOT_RUNFROMSDRAM=y +CONFIG_BUILTIN=y +CONFIG_DEBUG_FULLOPT=y +CONFIG_DEBUG_SYMBOLS=y +CONFIG_DEV_ZERO=y +CONFIG_EXAMPLES_HELLO=y +CONFIG_EXAMPLES_PIPE=y +CONFIG_EXAMPLES_POPEN=y +CONFIG_EXPERIMENTAL=y +CONFIG_FS_PROCFS=y +CONFIG_HAVE_CXX=y +CONFIG_HAVE_CXXINITIALIZE=y +CONFIG_IMX6_UART1=y +CONFIG_IMX_DDR_SIZE=1073741824 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INTELHEX_BINARY=y +CONFIG_NSH_ARCHINIT=y +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_FILEIOSIZE=512 +CONFIG_NSH_READLINE=y +CONFIG_PIPES=y +CONFIG_PL310_LOCKDOWN_BY_LINE=y +CONFIG_PL310_LOCKDOWN_BY_MASTER=y +CONFIG_PREALLOC_TIMERS=4 +CONFIG_PSEUDOFS_SOFTLINKS=y +CONFIG_RAMLOG=y +CONFIG_RAMLOG_BUFSIZE=16384 +CONFIG_RAMLOG_SYSLOG=y +CONFIG_RAM_SIZE=1073741824 +CONFIG_RAM_START=0x10000000 +CONFIG_RAM_VSTART=0x10000000 +CONFIG_RAW_BINARY=y +CONFIG_READLINE_CMD_HISTORY=y +CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_HPWORKPRIORITY=192 +CONFIG_STACK_COLORATION=y +CONFIG_START_MONTH=3 +CONFIG_START_YEAR=2016 +CONFIG_SYMTAB_ORDEREDBYNAME=y +CONFIG_SYSTEM_NSH=y +CONFIG_SYSTEM_POPEN=y +CONFIG_TESTING_GETPRIME=y +CONFIG_TESTING_MM=y +CONFIG_TESTING_OSTEST=y +CONFIG_TESTING_OSTEST_FPUTESTDISABLE=y +CONFIG_UART1_SERIAL_CONSOLE=y diff --git a/boards/arm/imx6/sabre-6quad/configs/citest/run b/boards/arm/imx6/sabre-6quad/configs/citest/run new file mode 120000 index 0000000000..c9e283cbeb --- /dev/null +++ b/boards/arm/imx6/sabre-6quad/configs/citest/run @@ -0,0 +1 @@ +../../../../../../tools/ci/cirun.sh \ No newline at end of file diff --git a/boards/risc-v/qemu-rv/rv-virt/configs/citest/defconfig b/boards/risc-v/qemu-rv/rv-virt/configs/citest/defconfig new file mode 100644 index 0000000000..34c97f227c --- /dev/null +++ b/boards/risc-v/qemu-rv/rv-virt/configs/citest/defconfig @@ -0,0 +1,72 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +# CONFIG_DISABLE_OS_API is not set +# CONFIG_NSH_DISABLE_LOSMART is not set +CONFIG_16550_ADDRWIDTH=0 +CONFIG_16550_UART0=y +CONFIG_16550_UART0_BASE=0x10000000 +CONFIG_16550_UART0_CLOCK=3686400 +CONFIG_16550_UART0_IRQ=37 +CONFIG_16550_UART0_SERIAL_CONSOLE=y +CONFIG_16550_UART=y +CONFIG_ARCH="risc-v" +CONFIG_ARCH_BOARD="rv-virt" +CONFIG_ARCH_BOARD_QEMU_RV_VIRT=y +CONFIG_ARCH_CHIP="qemu-rv" +CONFIG_ARCH_CHIP_QEMU_RV32=y +CONFIG_ARCH_CHIP_QEMU_RV=y +CONFIG_ARCH_CHIP_QEMU_RV_ISA_A=y +CONFIG_ARCH_CHIP_QEMU_RV_ISA_C=y +CONFIG_ARCH_CHIP_QEMU_RV_ISA_M=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_RISCV=y +CONFIG_ARCH_STACKDUMP=y +CONFIG_BOARD_LOOPSPERMSEC=6366 +CONFIG_BUILTIN=y +CONFIG_DEBUG_FULLOPT=y +CONFIG_DEBUG_SYMBOLS=y +CONFIG_DEV_ZERO=y +CONFIG_ELF=y +CONFIG_EXAMPLES_HELLO=y +CONFIG_EXAMPLES_PIPE=y +CONFIG_EXAMPLES_POPEN=y +CONFIG_FS_HOSTFS=y +CONFIG_FS_PROCFS=y +CONFIG_IDLETHREAD_STACKSIZE=2048 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INTELHEX_BINARY=y +CONFIG_LIBC_ENVPATH=y +CONFIG_LIBC_EXECFUNCS=y +CONFIG_LIBC_FLOATINGPOINT=y +CONFIG_LIBC_PERROR_STDOUT=y +CONFIG_LIBC_STRERROR=y +CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 +CONFIG_NSH_ARCHINIT=y +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_FILEIOSIZE=512 +CONFIG_NSH_READLINE=y +CONFIG_PATH_INITIAL="/system/bin" +CONFIG_PIPES=y +CONFIG_PREALLOC_TIMERS=0 +CONFIG_PSEUDOFS_SOFTLINKS=y +CONFIG_RAM_SIZE=33554432 +CONFIG_RAM_START=0x80000000 +CONFIG_READLINE_CMD_HISTORY=y +CONFIG_RISCV_SEMIHOSTING_HOSTFS=y +CONFIG_RR_INTERVAL=200 +CONFIG_SERIAL_UART_ARCH_MMIO=y +CONFIG_STACK_COLORATION=y +CONFIG_START_MONTH=12 +CONFIG_START_YEAR=2021 +CONFIG_SYMTAB_ORDEREDBYNAME=y +CONFIG_SYSTEM_NSH=y +CONFIG_SYSTEM_POPEN=y +CONFIG_TESTING_GETPRIME=y +CONFIG_TESTING_MM=y +CONFIG_TESTING_OSTEST=y +CONFIG_USEC_PER_TICK=1000 diff --git a/boards/risc-v/qemu-rv/rv-virt/configs/citest/run b/boards/risc-v/qemu-rv/rv-virt/configs/citest/run new file mode 120000 index 0000000000..c9e283cbeb --- /dev/null +++ b/boards/risc-v/qemu-rv/rv-virt/configs/citest/run @@ -0,0 +1 @@ +../../../../../../tools/ci/cirun.sh \ No newline at end of file diff --git a/boards/risc-v/qemu-rv/rv-virt/configs/citest64/defconfig b/boards/risc-v/qemu-rv/rv-virt/configs/citest64/defconfig new file mode 100644 index 0000000000..3fd02c6e87 --- /dev/null +++ b/boards/risc-v/qemu-rv/rv-virt/configs/citest64/defconfig @@ -0,0 +1,73 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +# CONFIG_DISABLE_OS_API is not set +# CONFIG_NSH_DISABLE_LOSMART is not set +CONFIG_16550_ADDRWIDTH=0 +CONFIG_16550_UART0=y +CONFIG_16550_UART0_BASE=0x10000000 +CONFIG_16550_UART0_CLOCK=3686400 +CONFIG_16550_UART0_IRQ=37 +CONFIG_16550_UART0_SERIAL_CONSOLE=y +CONFIG_16550_UART=y +CONFIG_ARCH="risc-v" +CONFIG_ARCH_BOARD="rv-virt" +CONFIG_ARCH_BOARD_QEMU_RV_VIRT=y +CONFIG_ARCH_CHIP="qemu-rv" +CONFIG_ARCH_CHIP_QEMU_RV64=y +CONFIG_ARCH_CHIP_QEMU_RV=y +CONFIG_ARCH_CHIP_QEMU_RV_ISA_A=y +CONFIG_ARCH_CHIP_QEMU_RV_ISA_C=y +CONFIG_ARCH_CHIP_QEMU_RV_ISA_M=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_RISCV=y +CONFIG_ARCH_STACKDUMP=y +CONFIG_BOARD_LOOPSPERMSEC=6366 +CONFIG_BUILTIN=y +CONFIG_DEBUG_FULLOPT=y +CONFIG_DEBUG_SYMBOLS=y +CONFIG_DEV_ZERO=y +CONFIG_ELF=y +CONFIG_EXAMPLES_HELLO=y +CONFIG_EXAMPLES_PIPE=y +CONFIG_EXAMPLES_POPEN=y +CONFIG_FS_HOSTFS=y +CONFIG_FS_PROCFS=y +CONFIG_IDLETHREAD_STACKSIZE=2048 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=3072 +CONFIG_INTELHEX_BINARY=y +CONFIG_LIBC_ENVPATH=y +CONFIG_LIBC_EXECFUNCS=y +CONFIG_LIBC_FLOATINGPOINT=y +CONFIG_LIBC_PERROR_STDOUT=y +CONFIG_LIBC_STRERROR=y +CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 +CONFIG_NSH_ARCHINIT=y +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_FILEIOSIZE=512 +CONFIG_NSH_READLINE=y +CONFIG_PATH_INITIAL="/system/bin" +CONFIG_PIPES=y +CONFIG_PREALLOC_TIMERS=0 +CONFIG_PSEUDOFS_SOFTLINKS=y +CONFIG_RAM_SIZE=33554432 +CONFIG_RAM_START=0x80000000 +CONFIG_READLINE_CMD_HISTORY=y +CONFIG_RISCV_SEMIHOSTING_HOSTFS=y +CONFIG_RR_INTERVAL=200 +CONFIG_SERIAL_UART_ARCH_MMIO=y +CONFIG_STACK_COLORATION=y +CONFIG_START_MONTH=12 +CONFIG_START_YEAR=2021 +CONFIG_SYMTAB_ORDEREDBYNAME=y +CONFIG_SYSTEM_NSH=y +CONFIG_SYSTEM_POPEN=y +CONFIG_TESTING_GETPRIME=y +CONFIG_TESTING_MM=y +CONFIG_TESTING_OSTEST=y +CONFIG_USEC_PER_TICK=1000 diff --git a/boards/risc-v/qemu-rv/rv-virt/configs/citest64/run b/boards/risc-v/qemu-rv/rv-virt/configs/citest64/run new file mode 120000 index 0000000000..c9e283cbeb --- /dev/null +++ b/boards/risc-v/qemu-rv/rv-virt/configs/citest64/run @@ -0,0 +1 @@ +../../../../../../tools/ci/cirun.sh \ No newline at end of file diff --git a/boards/sim/sim/sim/configs/citest/run b/boards/sim/sim/sim/configs/citest/run deleted file mode 100644 index 19957dcac1..0000000000 --- a/boards/sim/sim/sim/configs/citest/run +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -set -e -set -o xtrace - -WD=$(cd $(dirname $0) && pwd) -WORKSPACE=$(cd $WD/../../../../../../.. && pwd -P) -nuttx=$WORKSPACE/nuttx -logs=${WD}/logs -target="sim" -BOARD="sim" -core="sim" - -echo $WD -echo $WORKSPACE - -image=`find ${nuttx} -type f -name 'nuttx'` -path=${image%/*} -cd ${nuttx}/tools/ci/testrun/script -python3 -m pytest -m "common" ./ -B ${BOARD} -P ${path} -L ${logs}/${BOARD}/${core} -R ${target} -C --json=${logs}/${BOARD}/${core}/pytest.json -ret="$?" - -#clean -find ${nuttx}/tools/ci/testrun -name '__pycache__' |xargs rm -rf -find ${nuttx}/tools/ci/testrun -name '.pytest_cache' |xargs rm -rf -rm -rf ${logs} - -echo $ret -exit $ret diff --git a/boards/sim/sim/sim/configs/citest/run b/boards/sim/sim/sim/configs/citest/run new file mode 120000 index 0000000000..c9e283cbeb --- /dev/null +++ b/boards/sim/sim/sim/configs/citest/run @@ -0,0 +1 @@ +../../../../../../tools/ci/cirun.sh \ No newline at end of file diff --git a/tools/ci/cirun.sh b/tools/ci/cirun.sh new file mode 100755 index 0000000000..7073de5a12 --- /dev/null +++ b/tools/ci/cirun.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +set -e +set -o xtrace + +WD=$(cd $(dirname $0) && pwd) +WORKSPACE=$(cd $WD/../../../../../../../ && pwd -P) +nuttx=$WORKSPACE/nuttx +logs=${WD}/logs +BOARD=`echo $WD |awk -F '/' '{print $(NF-2)}'` + +echo $WD +echo $WORKSPACE + +config=$(basename $WD) +if [ "$BOARD" == "sim" ]; then + target="sim" + mark="common or ${BOARD}" +else + if [ "${config:$((-2))}" == "64" ]; then + BOARD="${BOARD}64" + fi + target="qemu" + mark=$target +fi + +core=$target +image=`find ${nuttx} -type f -name 'nuttx'` +path=${image%/*} +cd ${nuttx}/tools/ci/testrun/script +python3 -m pytest -m "${mark}" ./ -B ${BOARD} -P ${path} -L ${logs}/${BOARD}/${core} -R ${target} -C --json=${logs}/${BOARD}/${core}/pytest.json +ret="$?" + +#clean +find ${nuttx}/tools/ci/testrun -name '__pycache__' |xargs rm -rf +find ${nuttx}/tools/ci/testrun -name '.pytest_cache' |xargs rm -rf +rm -rf ${logs} + +echo $ret +exit $ret