diff options
author | Luca Dariz <luca@orpolo.org> | 2024-01-11 22:08:57 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2024-01-13 22:42:53 +0100 |
commit | e813641e2fef0fba5a2de9e5a44fd00ab95a86d0 (patch) | |
tree | c617b8841d38d7aa74f4fccd353b81bab83df11f /tests/README | |
parent | 7538b56278a95d87b9a4ddec01e5679376cc5b13 (diff) | |
download | gnumach-e813641e2fef0fba5a2de9e5a44fd00ab95a86d0.tar.gz gnumach-e813641e2fef0fba5a2de9e5a44fd00ab95a86d0.tar.bz2 gnumach-e813641e2fef0fba5a2de9e5a44fd00ab95a86d0.zip |
add basic user-space tests with qemu
* configure.ac: move test fragment to have USER32
* tests/Makefrag.am: add user tests
* tests/README: add basic info on how to run and debug user tests
* tests/configfrag.ac: allow the test compiler/flags to be
autoconfigured or customized
* tests/grub.cfg.single.template: add minimal grub config to boot a
module
* tests/include/device/cons.h: add a simplified version of
device/cons.h usable for tests
* tests/include/kern/printf.h: symlink to kern/printf.h
* tests/include/mach/mig_support.h: add basic version for user-space
tests
* tests/include/syscalls.h: add prototypes for syscalls used in tests.
* tests/include/testlib.h: add definitions for common test
functionalities
* tests/include/util/atoi.h: symlink to util/atoi.h
* tests/run-qemu.sh.template: add a simple qemu test runner
* tests/start.S: add arch-specific entry point
* tests/syscalls.S: generate syscalls entry points
* tests/test-hello.c: add basic smoke test
* tests/testlib.c: add the minimal functionality to run a user-space
executable and reboot the system, and some test helpers.
* tests/user-qemu.mk: add rules to build simple user-space test
modules, including generating mig stubs. The tests reuse some kernel
code (like printf(), mach_atoi(), mem*(), str*() functions) so we can
use the freestanding environment and not depend on glibc.
Message-ID: <20240111210907.419689-1-luca@orpolo.org>
Diffstat (limited to 'tests/README')
-rw-r--r-- | tests/README | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/README b/tests/README new file mode 100644 index 00000000..3dacc184 --- /dev/null +++ b/tests/README @@ -0,0 +1,37 @@ + +There are some basic tests that can be run qith qemu. You can run all the tests with + + $ make check + +or selectively with: + + $ make run-hello + +Also, you can debug the existing tests, or a new one, by starting on one shell + + $ make debug-hello + +and on another shell you can attach with gdb, load the symbols of the +bootstrap module and break on its _start(): + + $ gdb gnumach + ... + (gdb) target remote :1234 + ... + (gdb) b setup_main + Breakpoint 11 at 0xffffffff81019d60: file ../kern/startup.c, line 98. + (gdb) c + Continuing. + + Breakpoint 11, setup_main () at ../kern/startup.c:98 + 98 cninit(); + (gdb) add-symbol-file ../gnumach/build-64/module-task + Reading symbols from ../gnumach/build-64/module-task... + (gdb) b _start + Breakpoint 12 at 0x40324a: _start. (2 locations) + (gdb) c + Continuing. + + Breakpoint 12, _start () at ../tests/testlib.c:96 + 96 { + (gdb) |