[PATCH 00/17] add barebox in-tree testing infrastructure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux