From 194f7bbe9a12051f19dcff16eaa297261b657e86 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Thu, 2 Jan 2025 16:17:53 +0100 Subject: [PATCH] docs: Use mkosi sandbox in test documentation as well Same change as in HACKING.md, but for running the integration tests. (cherry picked from commit 8a652636503ee99dd484e2ae051cc1f1bdfc18ab) --- test/README.testsuite | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/README.testsuite b/test/README.testsuite index fc1c9f136d..25b44912e9 100644 --- a/test/README.testsuite +++ b/test/README.testsuite @@ -11,7 +11,7 @@ reconfiguring meson to make sure it is picked up properly. We also need to make sure the required meson options are enabled: ```shell -$ meson setup --reconfigure build -Dremote=enabled +$ mkosi -f sandbox meson setup --reconfigure build -Dremote=enabled ``` To make sure `mkosi` doesn't try to build systemd from source during the image build @@ -31,7 +31,7 @@ to /etc which is used when building the image instead. Next, we can build the integration test image with meson: ```shell -$ meson compile -C build mkosi +$ mkosi -f sandbox meson compile -C build mkosi ``` By default, the `mkosi` meson target which builds the integration test image depends on @@ -52,24 +52,24 @@ directory (`OutputDirectory=`) to point to the other directory using `mkosi.loca After the image has been built, the integration tests can be run with: ```shell -$ env SYSTEMD_INTEGRATION_TESTS=1 meson test -C build --no-rebuild --suite integration-tests --num-processes "$(($(nproc) / 4))" +$ env SYSTEMD_INTEGRATION_TESTS=1 mkosi -f sandbox meson test -C build --no-rebuild --suite integration-tests --num-processes "$(($(nproc) / 4))" ``` As usual, specific tests can be run in meson by appending the name of the test which is usually the name of the directory e.g. ```shell -$ env SYSTEMD_INTEGRATION_TESTS=1 meson test -C build --no-rebuild -v TEST-01-BASIC +$ env SYSTEMD_INTEGRATION_TESTS=1 mkosi -f sandbox meson test -C build --no-rebuild -v TEST-01-BASIC ``` -See `meson introspect build --tests` for a list of tests. +See `mkosi -f sandbox meson introspect build --tests` for a list of tests. To interactively debug a failing integration test, the `--interactive` option (`-i`) for `meson test` can be used. Note that this requires meson v1.5.0 or newer: ```shell -$ env SYSTEMD_INTEGRATION_TESTS=1 meson test -C build --no-rebuild -i TEST-01-BASIC +$ env SYSTEMD_INTEGRATION_TESTS=1 mkosi -f sandbox meson test -C build --no-rebuild -i TEST-01-BASIC ``` Due to limitations in meson, the integration tests do not yet depend on the @@ -78,7 +78,7 @@ running the integration tests. To rebuild the image and rerun a test, the following command can be used: ```shell -$ meson compile -C build mkosi && env SYSTEMD_INTEGRATION_TESTS=1 meson test -C build --no-rebuild -v TEST-01-BASIC +$ mkosi -f sandbox meson compile -C build mkosi && env SYSTEMD_INTEGRATION_TESTS=1 mkosi -f sandbox meson test -C build --no-rebuild -v TEST-01-BASIC ``` The integration tests use the same mkosi configuration that's used when you run @@ -92,7 +92,7 @@ To iterate on an integration test, let's first get a shell in the integration te the following: ```shell -$ meson compile -C build mkosi && env SYSTEMD_INTEGRATION_TESTS=1 TEST_SHELL=1 meson test -C build --no-rebuild -i TEST-01-BASIC +$ mkosi -f sandbox meson compile -C build mkosi && env SYSTEMD_INTEGRATION_TESTS=1 TEST_SHELL=1 mkosi -f sandbox meson test -C build --no-rebuild -i TEST-01-BASIC ``` This will get us a shell in the integration test environment after booting the machine without running the