This patch adds the possibility to automate simple tests with user-space programs, using qemu. I used this method to work on the x86_64 port so far, and it was quite useful for short iterations and testing special conditions (e.g. memory objects, syscall errors).
I'm not sure if this is the best way to integrate it in the existing codebase, as it adds more dependencies for testing (qemu, two versions of MIG if testing 32on64), or if it would be better to have a separate repository for this kind of testing. For example the same method can easily be combined with hurd code, by automating the build of the relevant parts. I usually use this method to check the 32bit (non-PAE), 32bit (PAE), 32on64 and full 64 bit before sending out patches. For example, currently it seems that the 32on64 configuration does not start properly. I also add a small mach_host test example; once the testing environment is settled I can adapt other tests I currently have. Luca Dariz (2): add basic user-space tests with qemu add mach_host tests tests/Makefrag.am | 127 +++++++++++++++++++++++++++++++ tests/README | 37 +++++++++ tests/configfrag.ac | 10 +++ tests/grub.cfg.single.template | 3 + tests/include/device/cons.h | 10 +++ tests/include/kern/printf.h | 1 + tests/include/mach/mig_support.h | 71 +++++++++++++++++ tests/include/syscalls.h | 83 ++++++++++++++++++++ tests/include/testlib.h | 46 +++++++++++ tests/include/util/atoi.h | 1 + tests/run-qemu.sh.template | 22 ++++++ tests/syscalls.S | 4 + tests/test-hello.c | 9 +++ tests/test-mach_host.c | 54 +++++++++++++ tests/testlib.c | 125 ++++++++++++++++++++++++++++++ 15 files changed, 603 insertions(+) create mode 100644 tests/README create mode 100644 tests/grub.cfg.single.template create mode 100644 tests/include/device/cons.h create mode 120000 tests/include/kern/printf.h create mode 100644 tests/include/mach/mig_support.h create mode 100644 tests/include/syscalls.h create mode 100644 tests/include/testlib.h create mode 120000 tests/include/util/atoi.h create mode 100644 tests/run-qemu.sh.template create mode 100644 tests/syscalls.S create mode 100644 tests/test-hello.c create mode 100644 tests/test-mach_host.c create mode 100644 tests/testlib.c -- 2.39.2
