Commit 10948f86a3c5 ("watchdog: fix watchdog_set_timeout breakage for drivers like imxwd") fixes an issue caught by a labgrid test suite exercising functionality of a barebox release. This could've been caught sooner if these tests were to run as part of an automated _continuous_ testing process while sitting in next. This series lays the ground work for that: - It commits to tree, machine readable YAML specification on how to build, emulate and test a number of defconfigs - It adds the glue required to configure tuxmake to build according to these configuration files - It extends the build system to allow calling labgrid-pytest on these files from within the tree - It adds a very basic self-test framework to allow for unit-testing barebox functionality - It adds a command line interface to tie this all together. Examples: ./test/emulate.pl virtio@efi_defconfig --emulate -- -device ? ./test/emulate.pl virtio@efi_defconfig --test -- --lg-log The use of labgrid-pytest QEMUDriver's allows us in future the flexibility to share tests between virtualized and physical targets. For now only QEMUDriver-enabled targets are considered. To demonstrate usage, this series imports the Linux printf selftest, which is compiled into barebox and verified to run without errors by pytest. Unless there are major issues, I'd appreciate if this series could get merged first with changes happening gradually. This would allow writing unit tests for new functionality in parallel. Ahmad Fatoum (17): kbuild: add install target kbuild: add ARCH={i386, x86_64} as aliases for x86 kbuild: add ARCH=um alias for sandbox MIPS: qemu-malta: generate swapped image as part of multi-image build MIPS: qemu-malta: replace board code with syscon-reboot MIPS: configs: qemu-malta: enable Virt I/O openrisc: set default KBUILD_IMAGE Documentation: boards: RISC-V: update TinyEMU support test: add basic barebox self-test infrastructure test: self: port Linux printf kselftest test: add labgrid configs for some emulated targets test: add first sample tests test: support running labgrid-pytest from out-of-tree build directory test: add emulate.pl, a runner for barebox on emulated targets test: self: run selftests as part of the pytest suite test: add bthread test [RFC] test: run ./test/emulate.pl in Github action .github/workflows/build-configs.yaml | 41 ++ .github/workflows/vm-tests.yaml | 71 +++ .gitignore | 2 + Documentation/boards/emulated.rst | 70 +++ Documentation/boards/mips/qemu-malta.rst | 16 +- Documentation/boards/riscv.rst | 20 +- Documentation/boards/riscv/barebox-virt32.cfg | 7 + Documentation/boards/riscv/barebox-virt64.cfg | 7 + Kconfig | 1 + Makefile | 52 +- arch/mips/configs/qemu-malta_defconfig | 12 +- arch/mips/dts/qemu-malta.dts | 13 + arch/mips/mach-malta/Kconfig | 1 + arch/mips/mach-malta/Makefile | 1 - arch/mips/mach-malta/include/mach/hardware.h | 6 - arch/mips/mach-malta/reset.c | 31 -- arch/openrisc/Makefile | 2 + commands/Makefile | 1 + commands/selftest.c | 88 ++++ images/.gitignore | 1 + images/Makefile | 7 +- images/Makefile.malta | 8 +- include/bselftest.h | 70 +++ include/stdlib.h | 5 + scripts/Makefile | 1 + scripts/bswap.c | 83 +++ test/.gitignore | 1 + test/Kconfig | 8 + test/Makefile | 1 + test/__init__.py | 0 test/arm/a15@vexpress_defconfig.yaml | 25 + test/arm/a9@vexpress_defconfig.yaml | 25 + test/arm/qemu_virt64_defconfig.yaml | 28 + test/arm/vexpress_defconfig.yaml | 1 + test/arm/virt@vexpress_defconfig.yaml | 26 + test/conftest.py | 21 + test/emulate.pl | 483 ++++++++++++++++++ test/kconfig/base.cfg | 4 + test/kconfig/full.cfg | 2 + test/kconfig/no-deps.cfg | 3 + test/kconfig/virtio-pci.cfg | 6 + test/mips/be@qemu-malta_defconfig.yaml | 26 + test/mips/le@qemu-malta_defconfig.yaml | 29 ++ test/mips/qemu-malta_defconfig.yaml | 1 + test/openrisc/generic_defconfig.yaml | 25 + test/py/__init__.py | 0 test/py/helper.py | 33 ++ test/py/test_bselftests.py | 8 + test/py/test_bthread.py | 23 + test/py/test_shell.py | 16 + test/riscv/qemu@virt32_defconfig.yaml | 29 ++ test/riscv/qemu@virt64_defconfig.yaml | 29 ++ test/riscv/tinyemu@virt32_defconfig.yaml | 26 + test/riscv/tinyemu@virt64_defconfig.yaml | 26 + test/riscv/virt32_defconfig.yaml | 1 + test/riscv/virt64_defconfig.yaml | 1 + test/sandbox/sandbox_defconfig.yaml | 14 + test/self/Kconfig | 39 ++ test/self/Makefile | 4 + test/self/core.c | 39 ++ test/self/printf.c | 302 +++++++++++ test/x86/efi_defconfig.yaml | 1 + test/x86/pc@efi_defconfig.yaml | 33 ++ test/x86/q35@efi_defconfig.yaml | 34 ++ test/x86/virtio@efi_defconfig.yaml | 34 ++ 65 files changed, 1960 insertions(+), 64 deletions(-) create mode 100644 .github/workflows/build-configs.yaml create mode 100644 .github/workflows/vm-tests.yaml create mode 100644 Documentation/boards/emulated.rst create mode 100644 Documentation/boards/riscv/barebox-virt32.cfg create mode 100644 Documentation/boards/riscv/barebox-virt64.cfg delete mode 100644 arch/mips/mach-malta/reset.c create mode 100644 commands/selftest.c create mode 100644 include/bselftest.h create mode 100644 scripts/bswap.c create mode 100644 test/.gitignore create mode 100644 test/Kconfig create mode 100644 test/Makefile create mode 100644 test/__init__.py create mode 100644 test/arm/a15@vexpress_defconfig.yaml create mode 100644 test/arm/a9@vexpress_defconfig.yaml create mode 100644 test/arm/qemu_virt64_defconfig.yaml create mode 120000 test/arm/vexpress_defconfig.yaml create mode 100644 test/arm/virt@vexpress_defconfig.yaml create mode 100644 test/conftest.py create mode 100755 test/emulate.pl create mode 100644 test/kconfig/base.cfg create mode 100644 test/kconfig/full.cfg create mode 100644 test/kconfig/no-deps.cfg create mode 100644 test/kconfig/virtio-pci.cfg create mode 100644 test/mips/be@qemu-malta_defconfig.yaml create mode 100644 test/mips/le@qemu-malta_defconfig.yaml create mode 120000 test/mips/qemu-malta_defconfig.yaml create mode 100644 test/openrisc/generic_defconfig.yaml create mode 100644 test/py/__init__.py create mode 100644 test/py/helper.py create mode 100644 test/py/test_bselftests.py create mode 100644 test/py/test_bthread.py create mode 100644 test/py/test_shell.py create mode 100644 test/riscv/qemu@virt32_defconfig.yaml create mode 100644 test/riscv/qemu@virt64_defconfig.yaml create mode 100644 test/riscv/tinyemu@virt32_defconfig.yaml create mode 100644 test/riscv/tinyemu@virt64_defconfig.yaml create mode 120000 test/riscv/virt32_defconfig.yaml create mode 120000 test/riscv/virt64_defconfig.yaml create mode 100644 test/sandbox/sandbox_defconfig.yaml create mode 100644 test/self/Kconfig create mode 100644 test/self/Makefile create mode 100644 test/self/core.c create mode 100644 test/self/printf.c create mode 120000 test/x86/efi_defconfig.yaml create mode 100644 test/x86/pc@efi_defconfig.yaml create mode 100644 test/x86/q35@efi_defconfig.yaml create mode 100644 test/x86/virtio@efi_defconfig.yaml -- 2.29.2 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox