From 44e35044ea77a4d89e552ea5ff251418210bcad3 Mon Sep 17 00:00:00 2001 From: raiden00pl Date: Wed, 26 Aug 2026 16:23:31 +0200 Subject: [PATCH] boards/qemu-intel64: add citest configuration CI/NTFC testing config for intel64 Signed-off-by: raiden00pl --- Documentation/testing/ntfc.rst | 1 + .../configs/citest_smp/config.yaml | 14 ++ .../qemu-intel64/configs/citest_smp/defconfig | 161 ++++++++++++++++++ .../qemu-intel64/configs/citest_smp/run.sh | 54 ++++++ .../configs/citest_smp/session.json | 13 ++ 5 files changed, 243 insertions(+) create mode 100644 boards/x86_64/qemu/qemu-intel64/configs/citest_smp/config.yaml create mode 100644 boards/x86_64/qemu/qemu-intel64/configs/citest_smp/defconfig create mode 100755 boards/x86_64/qemu/qemu-intel64/configs/citest_smp/run.sh create mode 100644 boards/x86_64/qemu/qemu-intel64/configs/citest_smp/session.json diff --git a/Documentation/testing/ntfc.rst b/Documentation/testing/ntfc.rst index 76b780cbb21..47cb6e169bf 100644 --- a/Documentation/testing/ntfc.rst +++ b/Documentation/testing/ntfc.rst @@ -22,6 +22,7 @@ CI runtime test cases use NTFC. Configurations with an NTFC runner include: - :doc:`arm/imx6 `: ``sabre-6quad/citest`` - :doc:`arm64/qemu `: ``qemu-armv8a/citest`` - :doc:`arm64/qemu `: ``qemu-armv8a/citest_smp`` +- :doc:`x86_64/qemu `: ``qemu-intel64/citest_smp`` Running a CI Test Target Locally ================================ diff --git a/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/config.yaml b/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/config.yaml new file mode 100644 index 00000000000..cfce28d9388 --- /dev/null +++ b/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/config.yaml @@ -0,0 +1,14 @@ +config: + cwd: './' + +product: + name: "qemu-intel64" + cores: + core0: + name: 'main' + device: 'qemu' + exec_path: 'qemu-system-x86_64' + exec_args: '-m 2G -smp 4 -cpu max -nographic -serial mon:stdio' + uptime: 60 + conf_path: './.config' + elf_path: './nuttx' diff --git a/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/defconfig b/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/defconfig new file mode 100644 index 00000000000..32b437b4297 --- /dev/null +++ b/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/defconfig @@ -0,0 +1,161 @@ +# +# 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_ARCH_INTEL64_HAVE_PCID is not set +# CONFIG_ARCH_X86_64_X2APIC is not set +CONFIG_16550_ADDRWIDTH=16 +CONFIG_16550_PCI_UART1=y +CONFIG_16550_PCI_UART1_CLOCK=1843200 +CONFIG_16550_PCI_UART1_DEVICE=0x0002 +CONFIG_16550_PCI_UART1_VENDOR=0x1b36 +CONFIG_16550_PCI_UART=y +CONFIG_16550_UART0=y +CONFIG_16550_UART0_BASE=0x3f8 +CONFIG_16550_UART0_CLOCK=1843200 +CONFIG_16550_UART0_IRQ=36 +CONFIG_16550_UART0_RXBUFSIZE=16 +CONFIG_16550_UART0_SERIAL_CONSOLE=y +CONFIG_16550_UART0_TXBUFSIZE=16 +CONFIG_ALLOW_MIT_COMPONENTS=y +CONFIG_ARCH="x86_64" +CONFIG_ARCH_BOARD="qemu-intel64" +CONFIG_ARCH_BOARD_INTEL64_QEMU=y +CONFIG_ARCH_CHIP="qemu" +CONFIG_ARCH_CHIP_INTEL64_QEMU=y +CONFIG_ARCH_INTEL64_HPET_ALARM=y +CONFIG_ARCH_INTERRUPTSTACK=8192 +CONFIG_ARCH_SETJMP_H=y +CONFIG_ARCH_SIZET_LONG=y +CONFIG_ARCH_X86_64=y +CONFIG_ARCH_X86_64_SSE3=y +CONFIG_ARCH_X86_64_SSE41=y +CONFIG_ARCH_X86_64_SSE42=y +CONFIG_ARCH_X86_64_SSE4A=y +CONFIG_ARCH_X86_64_SSSE3=y +CONFIG_BOARD_LOOPSPERMSEC=999 +CONFIG_BOOT_RUNFROMEXTSRAM=y +CONFIG_BUILTIN=y +CONFIG_CM_MM_TEST=y +CONFIG_CM_MUTEX_TEST=y +CONFIG_CM_PTHREAD_TEST=y +CONFIG_CM_SCHED_TEST=y +CONFIG_CM_SOCKET_TEST=y +CONFIG_CM_TIME_TEST=y +CONFIG_CONSOLE_SYSLOG=y +CONFIG_DEBUG_FEATURES=y +CONFIG_DEBUG_PCI=y +CONFIG_DEBUG_PCI_ERROR=y +CONFIG_DEBUG_PCI_INFO=y +CONFIG_DEBUG_PCI_WARN=y +CONFIG_DEBUG_SYMBOLS=y +CONFIG_DEFAULT_TASK_STACKSIZE=4194304 +CONFIG_DEV_SIMPLE_ADDRENV=y +CONFIG_EVENT_FD=y +CONFIG_EXAMPLES_HELLO=y +CONFIG_EXAMPLES_HIDKBD=y +CONFIG_EXAMPLES_PIPE=y +CONFIG_EXAMPLES_POPEN=y +CONFIG_FS_AIO=y +CONFIG_FS_FAT=y +CONFIG_FS_NAMED_SEMAPHORES=y +CONFIG_FS_NOTIFY=y +CONFIG_FS_PROCFS=y +CONFIG_FS_SHMFS=y +CONFIG_FS_TMPFS=y +CONFIG_HIDKBD_STACKSIZE=10240 +CONFIG_HIDMOUSE_STACKSIZE=10240 +CONFIG_IDLETHREAD_STACKSIZE=4194304 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_IOB_ALIGNMENT=64 +CONFIG_IOB_BUFSIZE=2048 +CONFIG_IOB_NBUFFERS=1024 +CONFIG_IOB_NCHAINS=255 +CONFIG_LIBC_LOCALE=y +CONFIG_LIBC_MEMFD_ERROR=y +CONFIG_LIBM=y +CONFIG_NET=y +CONFIG_NETDB_DNSCLIENT=y +CONFIG_NETDEV_LATEINIT=y +CONFIG_NETINIT_DRIPADDR=0xc0a80801 +CONFIG_NETINIT_IPADDR=0x0a000102 +CONFIG_NETUTILS_CODECS=y +CONFIG_NETUTILS_IPERF=y +CONFIG_NETUTILS_TELNETD=y +CONFIG_NETUTILS_TFTPC=y +CONFIG_NETUTILS_WEBCLIENT=y +CONFIG_NET_BROADCAST=y +CONFIG_NET_E1000=y +CONFIG_NET_ETH_PKTSIZE=1514 +CONFIG_NET_ICMP_SOCKET=y +CONFIG_NET_IGC=y +CONFIG_NET_LL_GUARDSIZE=32 +CONFIG_NET_MAX_LISTENPORTS=8 +CONFIG_NET_PKT=y +CONFIG_NET_STATISTICS=y +CONFIG_NET_TCP=y +CONFIG_NET_UDP=y +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_READLINE=y +CONFIG_PCI=y +CONFIG_PCI_MSIX=y +CONFIG_PCI_QEMU_EDU=y +CONFIG_PCI_QEMU_TEST=y +CONFIG_PIPES=y +CONFIG_PREALLOC_CHILDSTATUS=16 +CONFIG_PRIORITY_INHERITANCE=y +CONFIG_PSEUDOFS_ATTRIBUTES=y +CONFIG_PSEUDOFS_FILE=y +CONFIG_PTHREAD_MUTEX_TYPES=y +CONFIG_PTHREAD_STACK_MIN=4194304 +CONFIG_RAM_SIZE=268435456 +CONFIG_SCHED_CHILD_STATUS=y +CONFIG_SCHED_HAVE_PARENT=y +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_IRQMONITOR=y +CONFIG_SCHED_LPNTHREADS=1 +CONFIG_SCHED_LPWORK=y +CONFIG_SCHED_THREAD_LOCAL=y +CONFIG_SCHED_TICKLESS=y +CONFIG_SIGNAL_FD=y +CONFIG_SIG_DEFAULT=y +CONFIG_SIG_EVTHREAD=y +CONFIG_SMP=y +CONFIG_START_DAY=3 +CONFIG_START_MONTH=3 +CONFIG_START_YEAR=2011 +CONFIG_SYSTEM_CLE=y +CONFIG_SYSTEM_NSH=y +CONFIG_SYSTEM_POPEN=y +CONFIG_SYSTEM_SETLOGMASK=y +CONFIG_TESTING_ATOMIC=y +CONFIG_TESTING_CMOCKA=y +CONFIG_TESTING_CRYPTO=y +CONFIG_TESTING_DRIVER_TEST=y +CONFIG_TESTING_FFF=y +CONFIG_TESTING_FSTEST=y +CONFIG_TESTING_GETPRIME=y +CONFIG_TESTING_HEAP=y +CONFIG_TESTING_LTP=y +CONFIG_TESTING_LTP_STACKSIZE=65536 +CONFIG_TESTING_MEMORY_STRESS=y +CONFIG_TESTING_OSTEST=y +CONFIG_TESTING_OSTEST_STACKSIZE=4194304 +CONFIG_TESTING_RAMTEST=y +CONFIG_TESTING_SMP=y +CONFIG_TESTING_TIMERJITTER=y +CONFIG_TESTS_TESTSUITES=y +CONFIG_TESTS_TESTSUITES_MOUNT_DIR="/tmp" +CONFIG_TIMER_FD=y +CONFIG_USBHOST=y +CONFIG_USBHOST_COMPOSITE=y +CONFIG_USBHOST_FT232R=y +CONFIG_USBHOST_HIDKBD=y +CONFIG_USBHOST_HIDMOUSE=y +CONFIG_USBHOST_MSC=y +CONFIG_USBHOST_WAITER=y +CONFIG_USBHOST_XHCI_PCI=y +CONFIG_USEC_PER_TICK=1 diff --git a/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/run.sh b/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/run.sh new file mode 100755 index 00000000000..b337e5891df --- /dev/null +++ b/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/run.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +############################################################################ +# boards/x86_64/qemu/qemu-intel64/configs/citest_smp/run.sh +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance with the +# License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +############################################################################ + +set -o xtrace + +# start from nuttx dir +olddir=$(pwd) +nuttdir=${CURRENTCONFDIR}/../../../../../../ +cd ${nuttdir} + +# run NTFC +confpath=${CURRENTCONFDIR}/config.yaml +jsonconf=${CURRENTCONFDIR}/session.json +testpath=${NTFCDIR}/external/nuttx-testing +ntfc test --testpath=${testpath} --confpath=${confpath} --jsonconf=${jsonconf} + +ret="$?" +echo $ret + +# export test results +artifacts=${ARTIFACTCONFDIR}/ntfc +mkdir -p ${artifacts} + +# A retried build already exported the previous attempt; replace it, or +# "mv result" fails and the leftover directory makes the tree unclean. + +rm -rf ${artifacts}/result ${artifacts}/pytest.debug.log +mv pytest.debug.log ${artifacts} +mv result ${artifacts} + +# restore old dir +cd ${olddir} + +exit $ret diff --git a/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/session.json b/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/session.json new file mode 100644 index 00000000000..2a8c05d05da --- /dev/null +++ b/boards/x86_64/qemu/qemu-intel64/configs/citest_smp/session.json @@ -0,0 +1,13 @@ +{ + "module": { + "include_module": [], + "exclude_module": + [ + "Nuttx_System_Fs_Fs" + ], + "order": [] + }, + "args": { + "kv": [] + } +}