From: Daan De Meyer Date: Wed, 26 Mar 2025 13:30:20 +0000 (+0100) Subject: test: Make it possible to run the integration tests standalone X-Git-Tag: v258-rc1~999^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F36868%2Fhead;p=thirdparty%2Fsystemd.git test: Make it possible to run the integration tests standalone Currently, to run the integration tests, it's still necessary to install various other build tools besides meson: A compiler, gperf, libcap, ... which we want to avoid in CI systems where we receive prebuilt systemd packages and only want to test them. Examples are Debian's autopkgtest CI and Fedora CI. Let's make it possible for these systems to run the integration tests without having to install any other build dependency besides meson by extracting the logic required to run the integration tests with meson into a separate subdirectory and adding a standalone top-level meson.build file which can be used to configure a meson tree with as its only purpose running the integration tests. Practically, we do the following: - all the integration test directories and integration-test-wrapper.py are moved from test/ to test/integration-test/. - All the installation logic is kept out of test/integration-test/ or any of its subdirectories and moved into test/meson.build instead. - We add test/integration-test/standalone/meson.build to run the integration tests standalone. This meson file includes test/integration-test via a cute symlink hack to trick meson into including a parent directory with subdir(). - Documentation is included on how to use the new standalone mode. - TEST-64-UDEV-STORAGE and TEST-85-NETWORK are changed to generate separate units for each testcase to make them behave more like the other integration tests. --- diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 0be4e40cab6..c93156be315 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -13,7 +13,7 @@ on: - v[0-9]+-stable paths: - .github/workflows/coverage.yml - - test/integration-test-wrapper.py + - test/integration-tests/integration-test-wrapper.py permissions: contents: read diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index be9a84ee46d..446658952c2 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -37,7 +37,7 @@ jobs: VALIDATE_GITHUB_ACTIONS: true - name: Check that tabs are not used in Python code - run: sh -c '! git grep -P "\\t" -- src/boot/generate-hwids-section.py src/ukify/ukify.py test/integration-test-wrapper.py' + run: sh -c '! git grep -P "\\t" -- src/boot/generate-hwids-section.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py' - name: Install ruff and mypy run: | @@ -47,18 +47,18 @@ jobs: - name: Run mypy run: | python3 -m mypy --version - python3 -m mypy src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-test-wrapper.py + python3 -m mypy src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py - name: Run ruff check run: | ruff --version - ruff check src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-test-wrapper.py + ruff check src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py - name: Run ruff format run: | ruff --version - if ! ruff format --check src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-test-wrapper.py + if ! ruff format --check src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py then echo "Please run 'ruff format' on the above files or apply the diffs below manually" - ruff format --check --quiet --diff src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-test-wrapper.py + ruff format --check --quiet --diff src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py fi diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 9db8e712030..7994bbe5696 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -122,7 +122,7 @@ Sources in `test/TEST-*` implement system-level testing for executables, librari Most of those tests should be able to run via `systemd-nspawn`, which is orders-of-magnitude faster than `qemu`, but some tests require privileged operations like using `dm-crypt` or `loopdev`. They are clearly marked if that is the case. -See [`test/README.md`](https://github.com/systemd/systemd/blob/main/test/README.md) for more specific details. +See [`test/integration-tests/README.md`](https://github.com/systemd/systemd/blob/main/test/integration-tests/README.md) for more specific details. ## hwdb diff --git a/docs/CODE_QUALITY.md b/docs/CODE_QUALITY.md index a977e25b68c..df4ade3b416 100644 --- a/docs/CODE_QUALITY.md +++ b/docs/CODE_QUALITY.md @@ -22,9 +22,9 @@ available functionality: configure -C build -D…".) 2. Run the full integration test suite as described in - [test/README.md](/../test/README.md). This will build OS images with a number - of integration tests and run them using `systemd-nspawn` and `qemu`. Requires - root. + [test/integration-tests/README.md](/../test/integration-tests/README.md). + This will build OS images with a number of integration tests and run them + using `systemd-nspawn` and `qemu`. Requires root. 3. Use `./coccinelle/run-coccinelle.sh` to run all [Coccinelle](http://coccinelle.lip6.fr/) semantic patch scripts we ship. The diff --git a/mkosi.images/build/mkosi.conf.d/opensuse/mkosi.build.chroot b/mkosi.images/build/mkosi.conf.d/opensuse/mkosi.build.chroot index f845f288c00..2363b92ad5c 100755 --- a/mkosi.images/build/mkosi.conf.d/opensuse/mkosi.build.chroot +++ b/mkosi.images/build/mkosi.conf.d/opensuse/mkosi.build.chroot @@ -64,6 +64,12 @@ if ((COVERAGE)); then MKOSI_CFLAGS="$MKOSI_CFLAGS -fprofile-dir=/coverage" fi +# The opensuse spec tars up stuff in test/ and unpacks it in test/integration-tests, which we now use for our +# own purposes, so let's get rid of that specific bit of logic in the opensuse spec until they've had a chance +# to adapt. +sed "pkg/$PKG_SUBDIR${GIT_SUBDIR:+/$GIT_SUBDIR}/systemd.spec" -e '1062,1075d' -e '/integration-tests\/README/d' >/tmp/systemd.spec +mount --bind /tmp/systemd.spec "pkg/$PKG_SUBDIR${GIT_SUBDIR:+/$GIT_SUBDIR}/systemd.spec" + build() { IFS= # shellcheck disable=SC2046 diff --git a/mkosi.postinst.chroot b/mkosi.postinst.chroot index 914502a4736..3a021bffd9c 100755 --- a/mkosi.postinst.chroot +++ b/mkosi.postinst.chroot @@ -58,8 +58,8 @@ SYSTEMD_REPART_MKFS_OPTIONS_EXT4="" \ --dry-run=no \ --size=auto \ --offline=true \ - --root test/TEST-24-CRYPTSETUP \ - --definitions test/TEST-24-CRYPTSETUP/keydev.repart \ + --root test/integration-tests/TEST-24-CRYPTSETUP \ + --definitions test/integration-tests/TEST-24-CRYPTSETUP/keydev.repart \ "$OUTPUTDIR/keydev.raw" can_test_pkcs11() { @@ -132,7 +132,7 @@ EOF certtool --generate-self-signed \ --load-privkey="pkcs11:token=TestToken;object=RSATestKey;type=private" \ --load-pubkey="pkcs11:token=TestToken;object=RSATestKey;type=public" \ - --template "test/TEST-24-CRYPTSETUP/template.cfg" \ + --template "test/integration-tests/TEST-24-CRYPTSETUP/template.cfg" \ --outder --outfile "/tmp/rsa_test.crt" pkcs11-tool --module "$SOFTHSM_MODULE" --token-label "TestToken" --pin "env:GNUTLS_PIN" --so-pin "env:GNUTLS_SO_PIN" --write-object "/tmp/rsa_test.crt" --type cert --label "RSATestKey" @@ -144,7 +144,7 @@ EOF certtool --generate-self-signed \ --load-privkey="pkcs11:token=TestToken;object=ECTestKey;type=private" \ --load-pubkey="pkcs11:token=TestToken;object=ECTestKey;type=public" \ - --template "test/TEST-24-CRYPTSETUP/template.cfg" \ + --template "test/integration-tests/TEST-24-CRYPTSETUP/template.cfg" \ --outder --outfile "/tmp/ec_test.crt" pkcs11-tool --module "$SOFTHSM_MODULE" --token-label "TestToken" --pin "env:GNUTLS_PIN" --so-pin "env:GNUTLS_SO_PIN" --write-object "/tmp/ec_test.crt" --type cert --label "ECTestKey" diff --git a/test/TEST-52-HONORFIRSTSHUTDOWN/meson.build b/test/TEST-52-HONORFIRSTSHUTDOWN/meson.build deleted file mode 100644 index 08503e88221..00000000000 --- a/test/TEST-52-HONORFIRSTSHUTDOWN/meson.build +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later - -integration_tests += [ - integration_test_template + { - 'name' : fs.name(meson.current_source_dir()), - }, -] - -testdata_subdirs += [meson.current_source_dir() / 'TEST-52-HONORFIRSTSHUTDOWN.units'] diff --git a/test/README.md b/test/integration-tests/README.md similarity index 95% rename from test/README.md rename to test/integration-tests/README.md index 5dade6b421d..9cd3ea74805 100644 --- a/test/README.md +++ b/test/integration-tests/README.md @@ -151,6 +151,31 @@ options to provide mkosi with a directory containing the systemd packages or a repository file that points to a repository with the systemd packages that should be installed. +If the rpms are installed on the host system that the tests are running on, +you'll probably want to disable usage of the tools tree so that the tools from +the host system are used to build the image by adding the following to +`mkosi.local.conf`: + +```conf +[Build] +ToolsTree= +``` + +On the other hand, if the rpms are available but not installed on the host +system, you'll want to make sure they're installed into the mkosi tools tree so +that they're used to build the image by using either +`ToolsTreePackageDirectories=` or `ToolsTreeSandboxTrees=` similarly to +`PackageDirectories=` or `SandboxTrees=` mentioned above. + +Finally, we'll make use of the standalone mode of running the integration tests +to avoid having to install any build dependencies. + +```sh +$ mkosi -f sandbox -- meson setup testsuite test/integration-tests/standalone +$ mkosi -f +$ mkosi sandbox -- meson test -C testsuite --num-processes "$(($(nproc) / 4))" +``` + ### SELinux AVCs To have `TEST-06-SELINUX` check for SELinux denials, write the following to diff --git a/test/TEST-01-BASIC/meson.build b/test/integration-tests/TEST-01-BASIC/meson.build similarity index 100% rename from test/TEST-01-BASIC/meson.build rename to test/integration-tests/TEST-01-BASIC/meson.build diff --git a/test/TEST-02-UNITTESTS/meson.build b/test/integration-tests/TEST-02-UNITTESTS/meson.build similarity index 100% rename from test/TEST-02-UNITTESTS/meson.build rename to test/integration-tests/TEST-02-UNITTESTS/meson.build diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.socket b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.socket similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.socket rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.socket diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/counter.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/counter.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/counter.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/counter.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/counter.sh b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/counter.sh similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/counter.sh rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/counter.sh diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.target b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.target similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.target rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.target diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.target b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.target similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.target rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.target diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/hello-after-sleep.target b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/hello-after-sleep.target similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/hello-after-sleep.target rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/hello-after-sleep.target diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/hello.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/hello.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/hello.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/hello.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-and-pullin.target b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-and-pullin.target similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-and-pullin.target rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-and-pullin.target diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-indirect.target b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-indirect.target similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-indirect.target rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-indirect.target diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-only.target b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-only.target similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-only.target rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-only.target diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/restart-on-failure.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/restart-on-failure.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/restart-on-failure.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/restart-on-failure.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-restart-direct.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-restart-direct.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-restart-direct.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-restart-direct.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-restart-normal.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-restart-normal.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-restart-normal.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-restart-normal.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-simple.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-simple.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-simple.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-simple.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/sleep.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/sleep.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/sleep.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/sleep.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.target b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.target similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.target rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.target diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.service diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.sh b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.sh similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.sh rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.sh diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.target b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.target similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.target rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.target diff --git a/test/TEST-03-JOBS/TEST-03-JOBS.units/unstoppable.service b/test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/unstoppable.service similarity index 100% rename from test/TEST-03-JOBS/TEST-03-JOBS.units/unstoppable.service rename to test/integration-tests/TEST-03-JOBS/TEST-03-JOBS.units/unstoppable.service diff --git a/test/TEST-15-DROPIN/meson.build b/test/integration-tests/TEST-03-JOBS/meson.build similarity index 100% rename from test/TEST-15-DROPIN/meson.build rename to test/integration-tests/TEST-03-JOBS/meson.build diff --git a/test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/delegated-cgroup-filtering.service b/test/integration-tests/TEST-04-JOURNAL/TEST-04-JOURNAL.units/delegated-cgroup-filtering.service similarity index 100% rename from test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/delegated-cgroup-filtering.service rename to test/integration-tests/TEST-04-JOURNAL/TEST-04-JOURNAL.units/delegated-cgroup-filtering.service diff --git a/test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/forever-print-hola.service b/test/integration-tests/TEST-04-JOURNAL/TEST-04-JOURNAL.units/forever-print-hola.service similarity index 100% rename from test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/forever-print-hola.service rename to test/integration-tests/TEST-04-JOURNAL/TEST-04-JOURNAL.units/forever-print-hola.service diff --git a/test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/logs-filtering.service b/test/integration-tests/TEST-04-JOURNAL/TEST-04-JOURNAL.units/logs-filtering.service similarity index 100% rename from test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/logs-filtering.service rename to test/integration-tests/TEST-04-JOURNAL/TEST-04-JOURNAL.units/logs-filtering.service diff --git a/test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/silent-success.service b/test/integration-tests/TEST-04-JOURNAL/TEST-04-JOURNAL.units/silent-success.service similarity index 100% rename from test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/silent-success.service rename to test/integration-tests/TEST-04-JOURNAL/TEST-04-JOURNAL.units/silent-success.service diff --git a/test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/verbose-success.service b/test/integration-tests/TEST-04-JOURNAL/TEST-04-JOURNAL.units/verbose-success.service similarity index 100% rename from test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/verbose-success.service rename to test/integration-tests/TEST-04-JOURNAL/TEST-04-JOURNAL.units/verbose-success.service diff --git a/test/TEST-04-JOURNAL/meson.build b/test/integration-tests/TEST-04-JOURNAL/meson.build similarity index 78% rename from test/TEST-04-JOURNAL/meson.build rename to test/integration-tests/TEST-04-JOURNAL/meson.build index 5a0b073c02b..184f70ab720 100644 --- a/test/TEST-04-JOURNAL/meson.build +++ b/test/integration-tests/TEST-04-JOURNAL/meson.build @@ -8,5 +8,3 @@ integration_tests += [ 'storage' : 'persistent', }, ] - -testdata_subdirs += [meson.current_source_dir() / 'TEST-04-JOURNAL.units'] diff --git a/test/TEST-05-RLIMITS/meson.build b/test/integration-tests/TEST-05-RLIMITS/meson.build similarity index 100% rename from test/TEST-05-RLIMITS/meson.build rename to test/integration-tests/TEST-05-RLIMITS/meson.build diff --git a/test/TEST-06-SELINUX/TEST-06-SELINUX.units/hola.service b/test/integration-tests/TEST-06-SELINUX/TEST-06-SELINUX.units/hola.service similarity index 100% rename from test/TEST-06-SELINUX/TEST-06-SELINUX.units/hola.service rename to test/integration-tests/TEST-06-SELINUX/TEST-06-SELINUX.units/hola.service diff --git a/test/TEST-06-SELINUX/meson.build b/test/integration-tests/TEST-06-SELINUX/meson.build similarity index 90% rename from test/TEST-06-SELINUX/meson.build rename to test/integration-tests/TEST-06-SELINUX/meson.build index fd670ae40da..e2f329d17c1 100644 --- a/test/TEST-06-SELINUX/meson.build +++ b/test/integration-tests/TEST-06-SELINUX/meson.build @@ -13,5 +13,3 @@ integration_tests += [ 'mkosi-args' : integration_test_template['mkosi-args'] + ['--runtime-build-sources=no'], }, ] - -testdata_subdirs += [meson.current_source_dir() / 'TEST-06-SELINUX.units'] diff --git a/test/TEST-07-PID1/TEST-07-PID1.service b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.service similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.service rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.service diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.service b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.service similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.service rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.service diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.sh b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.sh similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.sh rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.sh diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-1.service b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-1.service similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-1.service rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-1.service diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-2.service b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-2.service similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-2.service rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-2.service diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-3.service b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-3.service similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-3.service rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-3.service diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/issue2467.service b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue2467.service similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/issue2467.service rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue2467.service diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/issue2467.socket b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue2467.socket similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/issue2467.socket rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue2467.socket diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/issue2730-alias.mount b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue2730-alias.mount similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/issue2730-alias.mount rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue2730-alias.mount diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/issue2730.mount b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue2730.mount similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/issue2730.mount rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue2730.mount diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/issue27953.service b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue27953.service similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/issue27953.service rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue27953.service diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/issue3166-fail-on-restart.service b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue3166-fail-on-restart.service similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/issue3166-fail-on-restart.service rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/issue3166-fail-on-restart.service diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/local-fs.target.wants/issue2730.mount b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/local-fs.target.wants/issue2730.mount similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/local-fs.target.wants/issue2730.mount rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/local-fs.target.wants/issue2730.mount diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-no.socket b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-no.socket similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-no.socket rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-no.socket diff --git a/test/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-yes.socket b/test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-yes.socket similarity index 100% rename from test/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-yes.socket rename to test/integration-tests/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-yes.socket diff --git a/test/TEST-07-PID1/meson.build b/test/integration-tests/TEST-07-PID1/meson.build similarity index 76% rename from test/TEST-07-PID1/meson.build rename to test/integration-tests/TEST-07-PID1/meson.build index 311860dc89f..3b317821083 100644 --- a/test/TEST-07-PID1/meson.build +++ b/test/integration-tests/TEST-07-PID1/meson.build @@ -6,5 +6,3 @@ integration_tests += [ 'unit' : files('TEST-07-PID1.service'), }, ] - -testdata_subdirs += [meson.current_source_dir() / 'TEST-07-PID1.units'] diff --git a/test/TEST-08-INITRD/meson.build b/test/integration-tests/TEST-08-INITRD/meson.build similarity index 100% rename from test/TEST-08-INITRD/meson.build rename to test/integration-tests/TEST-08-INITRD/meson.build diff --git a/test/TEST-09-REBOOT/meson.build b/test/integration-tests/TEST-09-REBOOT/meson.build similarity index 100% rename from test/TEST-09-REBOOT/meson.build rename to test/integration-tests/TEST-09-REBOOT/meson.build diff --git a/test/TEST-13-NSPAWN/meson.build b/test/integration-tests/TEST-13-NSPAWN/meson.build similarity index 100% rename from test/TEST-13-NSPAWN/meson.build rename to test/integration-tests/TEST-13-NSPAWN/meson.build diff --git a/test/TEST-19-CGROUP/meson.build b/test/integration-tests/TEST-15-DROPIN/meson.build similarity index 100% rename from test/TEST-19-CGROUP/meson.build rename to test/integration-tests/TEST-15-DROPIN/meson.build diff --git a/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.service b/test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.service similarity index 100% rename from test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.service rename to test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.service diff --git a/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh b/test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh similarity index 100% rename from test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh rename to test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh diff --git a/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-runtime.service b/test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-runtime.service similarity index 100% rename from test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-runtime.service rename to test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-runtime.service diff --git a/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-start.service b/test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-start.service similarity index 100% rename from test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-start.service rename to test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-start.service diff --git a/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-stop.service b/test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-stop.service similarity index 100% rename from test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-stop.service rename to test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-stop.service diff --git a/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-all.service b/test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-all.service similarity index 100% rename from test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-all.service rename to test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-all.service diff --git a/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-runtime.service b/test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-runtime.service similarity index 100% rename from test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-runtime.service rename to test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-runtime.service diff --git a/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-start.service b/test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-start.service similarity index 100% rename from test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-start.service rename to test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-start.service diff --git a/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-stop.service b/test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-stop.service similarity index 100% rename from test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-stop.service rename to test/integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-stop.service diff --git a/test/TEST-16-EXTEND-TIMEOUT/meson.build b/test/integration-tests/TEST-16-EXTEND-TIMEOUT/meson.build similarity index 78% rename from test/TEST-16-EXTEND-TIMEOUT/meson.build rename to test/integration-tests/TEST-16-EXTEND-TIMEOUT/meson.build index 2a06f9a151f..e18b8474710 100644 --- a/test/TEST-16-EXTEND-TIMEOUT/meson.build +++ b/test/integration-tests/TEST-16-EXTEND-TIMEOUT/meson.build @@ -7,5 +7,3 @@ integration_tests += [ 'coredump-exclude-regex' : '/(bash|sleep)$', }, ] - -testdata_subdirs += [meson.current_source_dir() / 'TEST-16-EXTEND-TIMEOUT.units'] diff --git a/test/TEST-17-UDEV/deny-list-ubuntu-ci-ppc64el b/test/integration-tests/TEST-17-UDEV/deny-list-ubuntu-ci-ppc64el similarity index 100% rename from test/TEST-17-UDEV/deny-list-ubuntu-ci-ppc64el rename to test/integration-tests/TEST-17-UDEV/deny-list-ubuntu-ci-ppc64el diff --git a/test/TEST-17-UDEV/meson.build b/test/integration-tests/TEST-17-UDEV/meson.build similarity index 100% rename from test/TEST-17-UDEV/meson.build rename to test/integration-tests/TEST-17-UDEV/meson.build diff --git a/test/TEST-18-FAILUREACTION/meson.build b/test/integration-tests/TEST-18-FAILUREACTION/meson.build similarity index 100% rename from test/TEST-18-FAILUREACTION/meson.build rename to test/integration-tests/TEST-18-FAILUREACTION/meson.build diff --git a/test/TEST-22-TMPFILES/meson.build b/test/integration-tests/TEST-19-CGROUP/meson.build similarity index 100% rename from test/TEST-22-TMPFILES/meson.build rename to test/integration-tests/TEST-19-CGROUP/meson.build diff --git a/test/TEST-21-DFUZZER/meson.build b/test/integration-tests/TEST-21-DFUZZER/meson.build similarity index 100% rename from test/TEST-21-DFUZZER/meson.build rename to test/integration-tests/TEST-21-DFUZZER/meson.build diff --git a/test/TEST-25-IMPORT/meson.build b/test/integration-tests/TEST-22-TMPFILES/meson.build similarity index 100% rename from test/TEST-25-IMPORT/meson.build rename to test/integration-tests/TEST-22-TMPFILES/meson.build diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-binds-to.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-binds-to.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-binds-to.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-binds-to.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-bound-by.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-bound-by.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-bound-by.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-bound-by.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-fail.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-fail.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-fail.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-fail.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-1.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-1.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-1.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-1.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-2.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-2.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-2.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-2.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-3.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-3.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-3.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-3.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-4.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-4.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-4.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-4.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-5.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-5.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-5.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-5.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-6.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-6.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-6.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-6.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-7.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-7.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-7.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-7.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-8.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-8.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-8.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-8.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-9.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-9.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-9.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-9.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-namespaced.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-namespaced.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-namespaced.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-namespaced.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-non-namespaced.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-non-namespaced.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-non-namespaced.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-non-namespaced.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-oneshot-restartforce.sh b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-oneshot-restartforce.sh similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-oneshot-restartforce.sh rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-oneshot-restartforce.sh diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server.socket b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server.socket similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server.socket rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server.socket diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server@.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server@.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server@.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server@.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-one.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-one.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-one.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-one.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-two.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-two.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-two.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-two.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-fail.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-fail.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-fail.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-fail.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-upheld.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-upheld.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-upheld.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-upheld.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-uphold.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-uphold.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-uphold.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-uphold.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-short-lived.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-short-lived.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-short-lived.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-short-lived.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-depends-wants.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-depends-wants.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-depends-wants.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-depends-wants.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-wants.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-wants.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-wants.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-wants.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-success.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-success.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-success.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-success.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-upheldby-install.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-upheldby-install.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-upheldby-install.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-upheldby-install.service diff --git a/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-uphold.service b/test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-uphold.service similarity index 100% rename from test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-uphold.service rename to test/integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-uphold.service diff --git a/test/TEST-26-SYSTEMCTL/meson.build b/test/integration-tests/TEST-23-UNIT-FILE/meson.build similarity index 100% rename from test/TEST-26-SYSTEMCTL/meson.build rename to test/integration-tests/TEST-23-UNIT-FILE/meson.build diff --git a/test/TEST-24-CRYPTSETUP/keydev.repart/00-root.conf b/test/integration-tests/TEST-24-CRYPTSETUP/keydev.repart/00-root.conf similarity index 100% rename from test/TEST-24-CRYPTSETUP/keydev.repart/00-root.conf rename to test/integration-tests/TEST-24-CRYPTSETUP/keydev.repart/00-root.conf diff --git a/test/TEST-24-CRYPTSETUP/keyfile b/test/integration-tests/TEST-24-CRYPTSETUP/keyfile similarity index 100% rename from test/TEST-24-CRYPTSETUP/keyfile rename to test/integration-tests/TEST-24-CRYPTSETUP/keyfile diff --git a/test/TEST-24-CRYPTSETUP/meson.build b/test/integration-tests/TEST-24-CRYPTSETUP/meson.build similarity index 100% rename from test/TEST-24-CRYPTSETUP/meson.build rename to test/integration-tests/TEST-24-CRYPTSETUP/meson.build diff --git a/test/TEST-24-CRYPTSETUP/template.cfg b/test/integration-tests/TEST-24-CRYPTSETUP/template.cfg similarity index 100% rename from test/TEST-24-CRYPTSETUP/template.cfg rename to test/integration-tests/TEST-24-CRYPTSETUP/template.cfg diff --git a/test/TEST-34-DYNAMICUSERMIGRATE/meson.build b/test/integration-tests/TEST-25-IMPORT/meson.build similarity index 100% rename from test/TEST-34-DYNAMICUSERMIGRATE/meson.build rename to test/integration-tests/TEST-25-IMPORT/meson.build diff --git a/test/TEST-35-LOGIN/meson.build b/test/integration-tests/TEST-26-SYSTEMCTL/meson.build similarity index 100% rename from test/TEST-35-LOGIN/meson.build rename to test/integration-tests/TEST-26-SYSTEMCTL/meson.build diff --git a/test/TEST-29-PORTABLE/meson.build b/test/integration-tests/TEST-29-PORTABLE/meson.build similarity index 100% rename from test/TEST-29-PORTABLE/meson.build rename to test/integration-tests/TEST-29-PORTABLE/meson.build diff --git a/test/TEST-30-ONCLOCKCHANGE/TEST-30-ONCLOCKCHANGE.units/systemd-timedated.service.d/watchdog.conf b/test/integration-tests/TEST-30-ONCLOCKCHANGE/TEST-30-ONCLOCKCHANGE.units/systemd-timedated.service.d/watchdog.conf similarity index 100% rename from test/TEST-30-ONCLOCKCHANGE/TEST-30-ONCLOCKCHANGE.units/systemd-timedated.service.d/watchdog.conf rename to test/integration-tests/TEST-30-ONCLOCKCHANGE/TEST-30-ONCLOCKCHANGE.units/systemd-timedated.service.d/watchdog.conf diff --git a/test/TEST-31-DEVICE-ENUMERATION/meson.build b/test/integration-tests/TEST-30-ONCLOCKCHANGE/meson.build similarity index 100% rename from test/TEST-31-DEVICE-ENUMERATION/meson.build rename to test/integration-tests/TEST-30-ONCLOCKCHANGE/meson.build diff --git a/test/TEST-36-NUMAPOLICY/meson.build b/test/integration-tests/TEST-31-DEVICE-ENUMERATION/meson.build similarity index 100% rename from test/TEST-36-NUMAPOLICY/meson.build rename to test/integration-tests/TEST-31-DEVICE-ENUMERATION/meson.build diff --git a/test/TEST-32-OOMPOLICY/meson.build b/test/integration-tests/TEST-32-OOMPOLICY/meson.build similarity index 100% rename from test/TEST-32-OOMPOLICY/meson.build rename to test/integration-tests/TEST-32-OOMPOLICY/meson.build diff --git a/test/TEST-43-PRIVATEUSER-UNPRIV/meson.build b/test/integration-tests/TEST-34-DYNAMICUSERMIGRATE/meson.build similarity index 100% rename from test/TEST-43-PRIVATEUSER-UNPRIV/meson.build rename to test/integration-tests/TEST-34-DYNAMICUSERMIGRATE/meson.build diff --git a/test/TEST-45-TIMEDATE/meson.build b/test/integration-tests/TEST-35-LOGIN/meson.build similarity index 100% rename from test/TEST-45-TIMEDATE/meson.build rename to test/integration-tests/TEST-35-LOGIN/meson.build diff --git a/test/TEST-38-FREEZER/meson.build b/test/integration-tests/TEST-36-NUMAPOLICY/meson.build similarity index 100% rename from test/TEST-38-FREEZER/meson.build rename to test/integration-tests/TEST-36-NUMAPOLICY/meson.build diff --git a/test/TEST-50-DISSECT/meson.build b/test/integration-tests/TEST-38-FREEZER/meson.build similarity index 100% rename from test/TEST-50-DISSECT/meson.build rename to test/integration-tests/TEST-38-FREEZER/meson.build diff --git a/test/TEST-46-HOMED/meson.build b/test/integration-tests/TEST-43-PRIVATEUSER-UNPRIV/meson.build similarity index 100% rename from test/TEST-46-HOMED/meson.build rename to test/integration-tests/TEST-43-PRIVATEUSER-UNPRIV/meson.build diff --git a/test/TEST-44-LOG-NAMESPACE/TEST-44-LOG-NAMESPACE.service b/test/integration-tests/TEST-44-LOG-NAMESPACE/TEST-44-LOG-NAMESPACE.service similarity index 100% rename from test/TEST-44-LOG-NAMESPACE/TEST-44-LOG-NAMESPACE.service rename to test/integration-tests/TEST-44-LOG-NAMESPACE/TEST-44-LOG-NAMESPACE.service diff --git a/test/TEST-44-LOG-NAMESPACE/meson.build b/test/integration-tests/TEST-44-LOG-NAMESPACE/meson.build similarity index 100% rename from test/TEST-44-LOG-NAMESPACE/meson.build rename to test/integration-tests/TEST-44-LOG-NAMESPACE/meson.build diff --git a/test/TEST-60-MOUNT-RATELIMIT/meson.build b/test/integration-tests/TEST-45-TIMEDATE/meson.build similarity index 100% rename from test/TEST-60-MOUNT-RATELIMIT/meson.build rename to test/integration-tests/TEST-45-TIMEDATE/meson.build diff --git a/test/TEST-65-ANALYZE/meson.build b/test/integration-tests/TEST-46-HOMED/meson.build similarity index 100% rename from test/TEST-65-ANALYZE/meson.build rename to test/integration-tests/TEST-46-HOMED/meson.build diff --git a/test/TEST-58-REPART/meson.build b/test/integration-tests/TEST-50-DISSECT/meson.build similarity index 100% rename from test/TEST-58-REPART/meson.build rename to test/integration-tests/TEST-50-DISSECT/meson.build diff --git a/test/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.service b/test/integration-tests/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.service similarity index 100% rename from test/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.service rename to test/integration-tests/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.service diff --git a/test/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.sh b/test/integration-tests/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.sh similarity index 100% rename from test/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.sh rename to test/integration-tests/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.sh diff --git a/test/TEST-68-PROPAGATE-EXIT-STATUS/meson.build b/test/integration-tests/TEST-52-HONORFIRSTSHUTDOWN/meson.build similarity index 100% rename from test/TEST-68-PROPAGATE-EXIT-STATUS/meson.build rename to test/integration-tests/TEST-52-HONORFIRSTSHUTDOWN/meson.build diff --git a/test/TEST-53-ISSUE-16347/meson.build b/test/integration-tests/TEST-53-ISSUE-16347/meson.build similarity index 100% rename from test/TEST-53-ISSUE-16347/meson.build rename to test/integration-tests/TEST-53-ISSUE-16347/meson.build diff --git a/test/TEST-54-CREDS/meson.build b/test/integration-tests/TEST-54-CREDS/meson.build similarity index 100% rename from test/TEST-54-CREDS/meson.build rename to test/integration-tests/TEST-54-CREDS/meson.build diff --git a/test/TEST-54-CREDS/systemd.extra-unit.my-service.service b/test/integration-tests/TEST-54-CREDS/systemd.extra-unit.my-service.service similarity index 100% rename from test/TEST-54-CREDS/systemd.extra-unit.my-service.service rename to test/integration-tests/TEST-54-CREDS/systemd.extra-unit.my-service.service diff --git a/test/TEST-54-CREDS/systemd.unit-dropin.my-service.service b/test/integration-tests/TEST-54-CREDS/systemd.unit-dropin.my-service.service similarity index 100% rename from test/TEST-54-CREDS/systemd.unit-dropin.my-service.service rename to test/integration-tests/TEST-54-CREDS/systemd.unit-dropin.my-service.service diff --git a/test/TEST-54-CREDS/systemd.unit-dropin.my-service.service~30-named.service b/test/integration-tests/TEST-54-CREDS/systemd.unit-dropin.my-service.service~30-named.service similarity index 100% rename from test/TEST-54-CREDS/systemd.unit-dropin.my-service.service~30-named.service rename to test/integration-tests/TEST-54-CREDS/systemd.unit-dropin.my-service.service~30-named.service diff --git a/test/TEST-55-OOMD/meson.build b/test/integration-tests/TEST-55-OOMD/meson.build similarity index 100% rename from test/TEST-55-OOMD/meson.build rename to test/integration-tests/TEST-55-OOMD/meson.build diff --git a/test/TEST-55-OOMD/systemd.unit-dropin.init.scope b/test/integration-tests/TEST-55-OOMD/systemd.unit-dropin.init.scope similarity index 100% rename from test/TEST-55-OOMD/systemd.unit-dropin.init.scope rename to test/integration-tests/TEST-55-OOMD/systemd.unit-dropin.init.scope diff --git a/test/TEST-62-RESTRICT-IFACES/meson.build b/test/integration-tests/TEST-58-REPART/meson.build similarity index 100% rename from test/TEST-62-RESTRICT-IFACES/meson.build rename to test/integration-tests/TEST-58-REPART/meson.build diff --git a/test/TEST-59-RELOADING-RESTART/meson.build b/test/integration-tests/TEST-59-RELOADING-RESTART/meson.build similarity index 100% rename from test/TEST-59-RELOADING-RESTART/meson.build rename to test/integration-tests/TEST-59-RELOADING-RESTART/meson.build diff --git a/test/TEST-75-RESOLVED/meson.build b/test/integration-tests/TEST-60-MOUNT-RATELIMIT/meson.build similarity index 100% rename from test/TEST-75-RESOLVED/meson.build rename to test/integration-tests/TEST-60-MOUNT-RATELIMIT/meson.build diff --git a/test/TEST-66-DEVICE-ISOLATION/meson.build b/test/integration-tests/TEST-62-RESTRICT-IFACES/meson.build similarity index 100% rename from test/TEST-66-DEVICE-ISOLATION/meson.build rename to test/integration-tests/TEST-62-RESTRICT-IFACES/meson.build diff --git a/test/TEST-63-PATH/TEST-63-PATH.units/test63-glob.path b/test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-glob.path similarity index 100% rename from test/TEST-63-PATH/TEST-63-PATH.units/test63-glob.path rename to test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-glob.path diff --git a/test/TEST-63-PATH/TEST-63-PATH.units/test63-glob.service b/test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-glob.service similarity index 100% rename from test/TEST-63-PATH/TEST-63-PATH.units/test63-glob.service rename to test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-glob.service diff --git a/test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577-dep.service b/test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577-dep.service similarity index 100% rename from test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577-dep.service rename to test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577-dep.service diff --git a/test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.path b/test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.path similarity index 100% rename from test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.path rename to test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.path diff --git a/test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.service b/test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.service similarity index 100% rename from test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.service rename to test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.service diff --git a/test/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.path b/test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.path similarity index 100% rename from test/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.path rename to test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.path diff --git a/test/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.service b/test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.service similarity index 100% rename from test/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.service rename to test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.service diff --git a/test/TEST-63-PATH/TEST-63-PATH.units/test63.path b/test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63.path similarity index 100% rename from test/TEST-63-PATH/TEST-63-PATH.units/test63.path rename to test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63.path diff --git a/test/TEST-63-PATH/TEST-63-PATH.units/test63.service b/test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63.service similarity index 100% rename from test/TEST-63-PATH/TEST-63-PATH.units/test63.service rename to test/integration-tests/TEST-63-PATH/TEST-63-PATH.units/test63.service diff --git a/test/TEST-76-SYSCTL/meson.build b/test/integration-tests/TEST-63-PATH/meson.build similarity index 100% rename from test/TEST-76-SYSCTL/meson.build rename to test/integration-tests/TEST-63-PATH/meson.build diff --git a/test/TEST-64-UDEV-STORAGE/deny-list-ubuntu-ci b/test/integration-tests/TEST-64-UDEV-STORAGE/deny-list-ubuntu-ci similarity index 100% rename from test/TEST-64-UDEV-STORAGE/deny-list-ubuntu-ci rename to test/integration-tests/TEST-64-UDEV-STORAGE/deny-list-ubuntu-ci diff --git a/test/TEST-64-UDEV-STORAGE/meson.build b/test/integration-tests/TEST-64-UDEV-STORAGE/meson.build similarity index 58% rename from test/TEST-64-UDEV-STORAGE/meson.build rename to test/integration-tests/TEST-64-UDEV-STORAGE/meson.build index acd6b191d0c..cbd6b697772 100644 --- a/test/TEST-64-UDEV-STORAGE/meson.build +++ b/test/integration-tests/TEST-64-UDEV-STORAGE/meson.build @@ -1,17 +1,17 @@ # SPDX-License-Identifier: LGPL-2.1-or-later name = fs.name(meson.current_source_dir()) -unit = configure_file( - input : files('../test.service.in'), - output : '@0@.service'.format(name), - # Disable user service manager by default for performance. - configuration : integration_test_template['configuration'] + { - 'wants' : '', - 'after' : '', - }, -) - udev_storage_tests = [] +udev_storage_test_template = { + 'enabled' : true, +} + +qemu = find_program('qemu-system-@0@'.format(host_machine.cpu_family()), 'qemu-kvm', dirs : ['/usr/libexec'], native : true, required : false) +if qemu.found() + devices = run_command(qemu, '-device', 'help', check : true).stdout().strip() +else + devices = '' +endif cmdline = [] qemu_args = ['-device', 'virtio-scsi-pci,id=scsi0'] @@ -23,7 +23,7 @@ foreach i : range(4) qemu_args += ['-device', f'scsi-hd,drive=@id@,vendor=systemd,product=foobar,serial=deadbeefbtrfs@i@'] endforeach -udev_storage_tests += { +udev_storage_tests += udev_storage_test_template + { 'name' : 'btrfs_basic', 'cmdline' : cmdline, 'qemu-args' : qemu_args, @@ -39,7 +39,7 @@ foreach i : range(4) qemu_args += ['-device', f'scsi-hd,drive=@id@,vendor=systemd,product=foobar,serial=deadbeefiscsi@i@'] endforeach -udev_storage_tests += { +udev_storage_tests += udev_storage_test_template + { 'name' : 'iscsi_lvm', 'cmdline' : cmdline, 'qemu-args' : qemu_args, @@ -60,7 +60,7 @@ endforeach qemu_args += ['-device', 'virtio-blk-pci,drive=drive0,bus=pci_bridge25,addr=1,serial=long-sysfs-path'] -udev_storage_tests += { +udev_storage_tests += udev_storage_test_template + { 'name' : 'long_sysfs_path', 'cmdline' : cmdline, 'qemu-args' : qemu_args, @@ -75,7 +75,7 @@ foreach i : range(4) qemu_args += ['-device', f'scsi-hd,drive=@id@,vendor=systemd,product=foobar,serial=deadbeeflvm@i@'] endforeach -udev_storage_tests += { +udev_storage_tests += udev_storage_test_template + { 'name' : 'lvm_basic', 'cmdline' : cmdline, 'qemu-args' : qemu_args, @@ -90,7 +90,7 @@ foreach i : range(5) qemu_args += ['-device', f'scsi-hd,drive=@id@,vendor=systemd,product=foobar,serial=deadbeefmdadm@i@'] endforeach -udev_storage_tests += { +udev_storage_tests += udev_storage_test_template + { 'name' : 'mdadm_basic', 'cmdline' : cmdline, 'qemu-args' : qemu_args, @@ -105,7 +105,7 @@ foreach i : range(5) qemu_args += ['-device', f'scsi-hd,drive=@id@,vendor=systemd,product=foobar,serial=deadbeefmdadmlvm@i@'] endforeach -udev_storage_tests += { +udev_storage_tests += udev_storage_test_template + { 'name' : 'mdadm_lvm', 'cmdline' : cmdline, 'qemu-args' : qemu_args, @@ -127,7 +127,7 @@ foreach ndisk : range(16) endforeach endforeach -udev_storage_tests += { +udev_storage_tests += udev_storage_test_template + { 'name' : 'multipath_basic_failover', 'cmdline' : cmdline, 'qemu-args' : qemu_args, @@ -142,7 +142,7 @@ foreach i : range(10) qemu_args += ['-device', f'scsi-hd,drive=@id@,serial=deadbeeftest@i@'] endforeach -udev_storage_tests += { +udev_storage_tests += udev_storage_test_template + { 'name' : 'simultaneous_events', 'cmdline' : cmdline, 'qemu-args' : qemu_args, @@ -163,87 +163,81 @@ foreach i : range(128) qemu_args += ['-device', f'scsi-hd,drive=@id@,serial=@id@,bus=scsi@div@.0,channel=0,scsi-id=@mod@,lun=0'] endforeach -udev_storage_tests += { +udev_storage_tests += udev_storage_test_template + { 'name' : 'virtio_scsi_basic', 'cmdline' : cmdline, 'qemu-args' : qemu_args, } -qemu = find_program('qemu-system-@0@'.format(host_machine.cpu_family()), 'qemu-kvm', dirs : ['/usr/libexec'], native : true, required : false) -if qemu.found() - devices = run_command(qemu, '-device', 'help', check : true).stdout().strip() - if devices.contains('name "nvme"') - cmdline = [] - qemu_args = [] - - foreach i : range(20) - cmdline += [f'--drive=nvme@i@:1M::'] - endforeach - - foreach i : range(5) - qemu_args += ['-device', f'nvme,drive=nvme@i@,serial=deadbeef@i@,max_ioqpairs=8'] - endforeach - - foreach i : range(5, 10) - qemu_args += ['-device', f'"nvme,drive=nvme@i@,serial= deadbeef @i@ ,max_ioqpairs=8"'] - endforeach - - foreach i : range(10, 15) - qemu_args += ['-device', f'"nvme,drive=nvme@i@,serial= dead/beef/@i@ ,max_ioqpairs=8"'] - endforeach - - foreach i : range(15, 20) - qemu_args += ['-device', f'"nvme,drive=nvme@i@,serial=dead/../../beef/@i@,max_ioqpairs=8"'] - endforeach - - udev_storage_tests += { - 'name' : 'nvme_basic', - 'cmdline' : cmdline, - 'qemu-args' : qemu_args, - } - - cmdline = [] - - foreach id : ['nvme0', 'nvme1'] - cmdline += [f'--drive=@id@:1M::'] - endforeach - - qemu_args = [ - # Create an NVM Subsystem Device - '-device', 'nvme-subsys,id=nvme-subsys-64,nqn=subsys64', - # Attach two NVM controllers to it - '-device', 'nvme,subsys=nvme-subsys-64,serial=deadbeef', - '-device', 'nvme,subsys=nvme-subsys-64,serial=deadbeef', - # And create two shared namespaces attached to both controllers - '-device', 'nvme-ns,drive=nvme0,nsid=16,shared=on', - '-device', 'nvme-ns,drive=nvme1,nsid=17,shared=on', - ] - - udev_storage_tests += { - 'name' : 'nvme_subsystem', - 'cmdline' : cmdline, - 'qemu-args' : qemu_args, - } - endif - - if devices.contains('name "virtio-scsi-pci"') - cmdline = [] - qemu_args = ['-device', 'virtio-scsi-pci,id=scsi0,num_queues=4'] - - foreach i : range(16) - id = f'drive@i@' - cmdline += [f'--drive=@id@:40M::'] - qemu_args += ['-device', f'scsi-hd,drive=@id@,serial=@id@,bus=scsi0.0,channel=0,scsi-id=0,lun=@i@'] - endforeach - - udev_storage_tests += { - 'name' : 'virtio_scsi_identically_named_partitions', - 'cmdline' : cmdline, - 'qemu-args' : qemu_args, - } - endif -endif +cmdline = [] +qemu_args = [] + +foreach i : range(20) + cmdline += [f'--drive=nvme@i@:1M::'] +endforeach + +foreach i : range(5) + qemu_args += ['-device', f'nvme,drive=nvme@i@,serial=deadbeef@i@,max_ioqpairs=8'] +endforeach +foreach i : range(5, 10) + qemu_args += ['-device', f'"nvme,drive=nvme@i@,serial= deadbeef @i@ ,max_ioqpairs=8"'] +endforeach + +foreach i : range(10, 15) + qemu_args += ['-device', f'"nvme,drive=nvme@i@,serial= dead/beef/@i@ ,max_ioqpairs=8"'] +endforeach + +foreach i : range(15, 20) + qemu_args += ['-device', f'"nvme,drive=nvme@i@,serial=dead/../../beef/@i@,max_ioqpairs=8"'] +endforeach + +udev_storage_tests += udev_storage_test_template + { + 'name' : 'nvme_basic', + 'cmdline' : cmdline, + 'qemu-args' : qemu_args, + 'enabled' : devices.contains('name "nvme"'), +} + +cmdline = [] + +foreach id : ['nvme0', 'nvme1'] + cmdline += [f'--drive=@id@:1M::'] +endforeach + +qemu_args = [ + # Create an NVM Subsystem Device + '-device', 'nvme-subsys,id=nvme-subsys-64,nqn=subsys64', + # Attach two NVM controllers to it + '-device', 'nvme,subsys=nvme-subsys-64,serial=deadbeef', + '-device', 'nvme,subsys=nvme-subsys-64,serial=deadbeef', + # And create two shared namespaces attached to both controllers + '-device', 'nvme-ns,drive=nvme0,nsid=16,shared=on', + '-device', 'nvme-ns,drive=nvme1,nsid=17,shared=on', +] + +udev_storage_tests += udev_storage_test_template + { + 'name' : 'nvme_subsystem', + 'cmdline' : cmdline, + 'qemu-args' : qemu_args, + 'enabled' : devices.contains('name "nvme"'), +} + +cmdline = [] +qemu_args = ['-device', 'virtio-scsi-pci,id=scsi0,num_queues=4'] + +foreach i : range(16) + id = f'drive@i@' + cmdline += [f'--drive=@id@:40M::'] + qemu_args += ['-device', f'scsi-hd,drive=@id@,serial=@id@,bus=scsi0.0,channel=0,scsi-id=0,lun=@i@'] +endforeach + +udev_storage_tests += udev_storage_test_template + { + 'name' : 'virtio_scsi_identically_named_partitions', + 'cmdline' : cmdline, + 'qemu-args' : qemu_args, + 'enabled' : devices.contains('name "virtio-scsi-pci"'), +} foreach testcase : udev_storage_tests qemu_args = ' '.join(testcase['qemu-args']) @@ -252,17 +246,22 @@ foreach testcase : udev_storage_tests integration_tests += [ integration_test_template + { 'name' : '@0@-@1@'.format(name, testcase['name']), - # Make sure the service is still named TEST-64-UDEV-STORAGE.service. - 'unit' : unit, - 'cmdline' : integration_test_template['cmdline'] + [ - 'systemd.setenv=TEST_FUNCTION_NAME=testcase_@0@'.format(testcase['name']) - ], + # Disable user service manager by default for performance. + 'configuration' : integration_test_template['configuration'] + { + 'wants' : '', + 'after' : '', + 'command' : f'/usr/lib/systemd/tests/testdata/units/@name@.sh', + 'env' : integration_test_template['configuration']['env'] + { + 'TEST_FUNCTION_NAME': 'testcase_@0@'.format(testcase['name']), + }, + }, 'mkosi-args' : integration_test_template['mkosi-args'] + cmdline, 'priority' : 10, 'vm' : true, # Suppress ASan error # 'multipathd[1820]: ==1820==ERROR: AddressSanitizer: Joining already joined thread, aborting.' - 'sanitizer-exclude-regex' : 'multipathd' + 'sanitizer-exclude-regex' : 'multipathd', + 'enabled' : testcase['enabled'], }, ] endforeach diff --git a/test/TEST-78-SIGQUEUE/meson.build b/test/integration-tests/TEST-65-ANALYZE/meson.build similarity index 100% rename from test/TEST-78-SIGQUEUE/meson.build rename to test/integration-tests/TEST-65-ANALYZE/meson.build diff --git a/test/TEST-67-INTEGRITY/meson.build b/test/integration-tests/TEST-66-DEVICE-ISOLATION/meson.build similarity index 100% rename from test/TEST-67-INTEGRITY/meson.build rename to test/integration-tests/TEST-66-DEVICE-ISOLATION/meson.build diff --git a/test/TEST-72-SYSUPDATE/meson.build b/test/integration-tests/TEST-67-INTEGRITY/meson.build similarity index 100% rename from test/TEST-72-SYSUPDATE/meson.build rename to test/integration-tests/TEST-67-INTEGRITY/meson.build diff --git a/test/TEST-81-GENERATORS/meson.build b/test/integration-tests/TEST-68-PROPAGATE-EXIT-STATUS/meson.build similarity index 100% rename from test/TEST-81-GENERATORS/meson.build rename to test/integration-tests/TEST-68-PROPAGATE-EXIT-STATUS/meson.build diff --git a/test/TEST-69-SHUTDOWN/TEST-69-SHUTDOWN.service b/test/integration-tests/TEST-69-SHUTDOWN/TEST-69-SHUTDOWN.service similarity index 100% rename from test/TEST-69-SHUTDOWN/TEST-69-SHUTDOWN.service rename to test/integration-tests/TEST-69-SHUTDOWN/TEST-69-SHUTDOWN.service diff --git a/test/TEST-69-SHUTDOWN/meson.build b/test/integration-tests/TEST-69-SHUTDOWN/meson.build similarity index 100% rename from test/TEST-69-SHUTDOWN/meson.build rename to test/integration-tests/TEST-69-SHUTDOWN/meson.build diff --git a/test/TEST-70-TPM2/meson.build b/test/integration-tests/TEST-70-TPM2/meson.build similarity index 100% rename from test/TEST-70-TPM2/meson.build rename to test/integration-tests/TEST-70-TPM2/meson.build diff --git a/test/TEST-71-HOSTNAME/meson.build b/test/integration-tests/TEST-71-HOSTNAME/meson.build similarity index 100% rename from test/TEST-71-HOSTNAME/meson.build rename to test/integration-tests/TEST-71-HOSTNAME/meson.build diff --git a/test/TEST-83-BTRFS/meson.build b/test/integration-tests/TEST-72-SYSUPDATE/meson.build similarity index 100% rename from test/TEST-83-BTRFS/meson.build rename to test/integration-tests/TEST-72-SYSUPDATE/meson.build diff --git a/test/TEST-73-LOCALE/meson.build b/test/integration-tests/TEST-73-LOCALE/meson.build similarity index 100% rename from test/TEST-73-LOCALE/meson.build rename to test/integration-tests/TEST-73-LOCALE/meson.build diff --git a/test/TEST-74-AUX-UTILS/TEST-74-AUX-UTILS.units/realtime-test.service b/test/integration-tests/TEST-74-AUX-UTILS/TEST-74-AUX-UTILS.units/realtime-test.service similarity index 100% rename from test/TEST-74-AUX-UTILS/TEST-74-AUX-UTILS.units/realtime-test.service rename to test/integration-tests/TEST-74-AUX-UTILS/TEST-74-AUX-UTILS.units/realtime-test.service diff --git a/test/TEST-74-AUX-UTILS/TEST-74-AUX-UTILS.units/realtime-test.timer b/test/integration-tests/TEST-74-AUX-UTILS/TEST-74-AUX-UTILS.units/realtime-test.timer similarity index 100% rename from test/TEST-74-AUX-UTILS/TEST-74-AUX-UTILS.units/realtime-test.timer rename to test/integration-tests/TEST-74-AUX-UTILS/TEST-74-AUX-UTILS.units/realtime-test.timer diff --git a/test/TEST-74-AUX-UTILS/meson.build b/test/integration-tests/TEST-74-AUX-UTILS/meson.build similarity index 77% rename from test/TEST-74-AUX-UTILS/meson.build rename to test/integration-tests/TEST-74-AUX-UTILS/meson.build index 698d03b055f..0db9fe974f7 100644 --- a/test/TEST-74-AUX-UTILS/meson.build +++ b/test/integration-tests/TEST-74-AUX-UTILS/meson.build @@ -6,5 +6,3 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] - -testdata_subdirs += [meson.current_source_dir() / 'TEST-74-AUX-UTILS.units'] diff --git a/test/TEST-03-JOBS/meson.build b/test/integration-tests/TEST-75-RESOLVED/meson.build similarity index 71% rename from test/TEST-03-JOBS/meson.build rename to test/integration-tests/TEST-75-RESOLVED/meson.build index 3484d21ba2f..8dec5f37e73 100644 --- a/test/TEST-03-JOBS/meson.build +++ b/test/integration-tests/TEST-75-RESOLVED/meson.build @@ -5,5 +5,3 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] - -testdata_subdirs += [meson.current_source_dir() / 'TEST-03-JOBS.units'] diff --git a/test/TEST-63-PATH/meson.build b/test/integration-tests/TEST-76-SYSCTL/meson.build similarity index 71% rename from test/TEST-63-PATH/meson.build rename to test/integration-tests/TEST-76-SYSCTL/meson.build index 4aa3afdf7a3..8dec5f37e73 100644 --- a/test/TEST-63-PATH/meson.build +++ b/test/integration-tests/TEST-76-SYSCTL/meson.build @@ -5,5 +5,3 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] - -testdata_subdirs += [meson.current_source_dir() / 'TEST-63-PATH.units'] diff --git a/test/TEST-23-UNIT-FILE/meson.build b/test/integration-tests/TEST-78-SIGQUEUE/meson.build similarity index 70% rename from test/TEST-23-UNIT-FILE/meson.build rename to test/integration-tests/TEST-78-SIGQUEUE/meson.build index 3f44662ae3a..8dec5f37e73 100644 --- a/test/TEST-23-UNIT-FILE/meson.build +++ b/test/integration-tests/TEST-78-SIGQUEUE/meson.build @@ -5,5 +5,3 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] - -testdata_subdirs += [meson.current_source_dir() / 'TEST-23-UNIT-FILE.units'] diff --git a/test/TEST-79-MEMPRESS/meson.build b/test/integration-tests/TEST-79-MEMPRESS/meson.build similarity index 100% rename from test/TEST-79-MEMPRESS/meson.build rename to test/integration-tests/TEST-79-MEMPRESS/meson.build diff --git a/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-nopin.service b/test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-nopin.service similarity index 100% rename from test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-nopin.service rename to test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-nopin.service diff --git a/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.service b/test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.service similarity index 100% rename from test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.service rename to test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.service diff --git a/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.sh b/test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.sh similarity index 100% rename from test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.sh rename to test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.sh diff --git a/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.target b/test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.target similarity index 100% rename from test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.target rename to test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.target diff --git a/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/notify.service b/test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/notify.service similarity index 100% rename from test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/notify.service rename to test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/notify.service diff --git a/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/test.sh b/test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/test.sh similarity index 100% rename from test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/test.sh rename to test/integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/test.sh diff --git a/test/TEST-80-NOTIFYACCESS/meson.build b/test/integration-tests/TEST-80-NOTIFYACCESS/meson.build similarity index 69% rename from test/TEST-80-NOTIFYACCESS/meson.build rename to test/integration-tests/TEST-80-NOTIFYACCESS/meson.build index f78c6fd732e..8dec5f37e73 100644 --- a/test/TEST-80-NOTIFYACCESS/meson.build +++ b/test/integration-tests/TEST-80-NOTIFYACCESS/meson.build @@ -5,5 +5,3 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] - -testdata_subdirs += [meson.current_source_dir() / 'TEST-80-NOTIFYACCESS.units'] diff --git a/test/integration-tests/TEST-81-GENERATORS/meson.build b/test/integration-tests/TEST-81-GENERATORS/meson.build new file mode 100644 index 00000000000..8dec5f37e73 --- /dev/null +++ b/test/integration-tests/TEST-81-GENERATORS/meson.build @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + }, +] diff --git a/test/TEST-82-SOFTREBOOT/TEST-82-SOFTREBOOT.service b/test/integration-tests/TEST-82-SOFTREBOOT/TEST-82-SOFTREBOOT.service similarity index 100% rename from test/TEST-82-SOFTREBOOT/TEST-82-SOFTREBOOT.service rename to test/integration-tests/TEST-82-SOFTREBOOT/TEST-82-SOFTREBOOT.service diff --git a/test/TEST-82-SOFTREBOOT/meson.build b/test/integration-tests/TEST-82-SOFTREBOOT/meson.build similarity index 100% rename from test/TEST-82-SOFTREBOOT/meson.build rename to test/integration-tests/TEST-82-SOFTREBOOT/meson.build diff --git a/test/TEST-84-STORAGETM/meson.build b/test/integration-tests/TEST-83-BTRFS/meson.build similarity index 100% rename from test/TEST-84-STORAGETM/meson.build rename to test/integration-tests/TEST-83-BTRFS/meson.build diff --git a/test/TEST-30-ONCLOCKCHANGE/meson.build b/test/integration-tests/TEST-84-STORAGETM/meson.build similarity index 72% rename from test/TEST-30-ONCLOCKCHANGE/meson.build rename to test/integration-tests/TEST-84-STORAGETM/meson.build index cd0f1f6574a..77370ce4588 100644 --- a/test/TEST-30-ONCLOCKCHANGE/meson.build +++ b/test/integration-tests/TEST-84-STORAGETM/meson.build @@ -6,5 +6,3 @@ integration_tests += [ 'vm' : true, }, ] - -testdata_subdirs += [meson.current_source_dir() / 'TEST-30-ONCLOCKCHANGE.units'] diff --git a/test/TEST-85-NETWORK/meson.build b/test/integration-tests/TEST-85-NETWORK/meson.build similarity index 64% rename from test/TEST-85-NETWORK/meson.build rename to test/integration-tests/TEST-85-NETWORK/meson.build index 223f2a23100..7bce51abbe7 100644 --- a/test/TEST-85-NETWORK/meson.build +++ b/test/integration-tests/TEST-85-NETWORK/meson.build @@ -1,13 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later name = fs.name(meson.current_source_dir()) -unit = configure_file( - input : files('../test.service.in'), - output : '@0@.service'.format(name), - configuration : integration_test_template['configuration'] + { - 'command' : '@0@ --no-journal'.format(testdata_dir / 'test-network/systemd-networkd-tests.py') - }, -) foreach testcase : [ 'NetworkctlTests', @@ -33,10 +26,12 @@ foreach testcase : [ integration_tests += [ integration_test_template + { 'name' : '@0@-@1@'.format(name, testcase), - 'unit' : unit, - 'cmdline' : integration_test_template['cmdline'] + [ - 'systemd.setenv=TEST_MATCH_TESTCASE=@0@'.format(testcase) - ], + 'configuration' : integration_test_template['configuration'] + { + 'command' : '/usr/lib/systemd/tests/testdata/test-network/systemd-networkd-tests.py --no-journal', + 'env' : integration_test_template['configuration']['env'] + { + 'TEST_MATCH_TESTCASE': testcase, + } + }, 'priority' : 10, 'vm' : true, }, diff --git a/test/TEST-86-MULTI-PROFILE-UKI/meson.build b/test/integration-tests/TEST-86-MULTI-PROFILE-UKI/meson.build similarity index 100% rename from test/TEST-86-MULTI-PROFILE-UKI/meson.build rename to test/integration-tests/TEST-86-MULTI-PROFILE-UKI/meson.build diff --git a/test/TEST-87-AUX-UTILS-VM/meson.build b/test/integration-tests/TEST-87-AUX-UTILS-VM/meson.build similarity index 100% rename from test/TEST-87-AUX-UTILS-VM/meson.build rename to test/integration-tests/TEST-87-AUX-UTILS-VM/meson.build diff --git a/test/integration-test-wrapper.py b/test/integration-tests/integration-test-wrapper.py similarity index 100% rename from test/integration-test-wrapper.py rename to test/integration-tests/integration-test-wrapper.py diff --git a/test/integration-tests/integration-tests b/test/integration-tests/integration-tests new file mode 120000 index 00000000000..a96aa0ea9d8 --- /dev/null +++ b/test/integration-tests/integration-tests @@ -0,0 +1 @@ +.. \ No newline at end of file diff --git a/test/integration-tests/meson.build b/test/integration-tests/meson.build new file mode 100644 index 00000000000..ecf3df7f090 --- /dev/null +++ b/test/integration-tests/meson.build @@ -0,0 +1,172 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +integration_test_wrapper = find_program('integration-test-wrapper.py') +integration_tests = [] +integration_test_template = { + 'mkosi-args' : [], + 'timeout' : 1800, + 'storage' : 'volatile', + 'priority' : 0, + 'firmware' : 'linux', + 'enabled' : true, + 'configuration' : { + 'memory-accounting' : 'no', + 'command' : '/usr/lib/systemd/tests/testdata/units/%N.sh', + 'wants' : 'multi-user.target user@4711.service', + 'after' : 'user@4711.service', + 'env' : {}, + }, + 'cmdline' : [], + 'credentials' : [], + 'qemu-args' : [], + 'exit-code' : 123, + 'vm' : false, + 'coredump-exclude-regex' : '', + 'sanitizer-exclude-regex' : '', + 'rtc' : false, +} + +foreach dirname : [ + 'TEST-01-BASIC', + 'TEST-02-UNITTESTS', + 'TEST-03-JOBS', + 'TEST-04-JOURNAL', + 'TEST-05-RLIMITS', + 'TEST-06-SELINUX', + 'TEST-07-PID1', + 'TEST-08-INITRD', + 'TEST-09-REBOOT', + 'TEST-13-NSPAWN', + 'TEST-15-DROPIN', + 'TEST-16-EXTEND-TIMEOUT', + 'TEST-17-UDEV', + 'TEST-18-FAILUREACTION', + 'TEST-19-CGROUP', + 'TEST-21-DFUZZER', + 'TEST-22-TMPFILES', + 'TEST-23-UNIT-FILE', + 'TEST-24-CRYPTSETUP', + 'TEST-25-IMPORT', + 'TEST-26-SYSTEMCTL', + 'TEST-29-PORTABLE', + 'TEST-30-ONCLOCKCHANGE', + 'TEST-31-DEVICE-ENUMERATION', + 'TEST-32-OOMPOLICY', + 'TEST-34-DYNAMICUSERMIGRATE', + 'TEST-35-LOGIN', + 'TEST-36-NUMAPOLICY', + 'TEST-38-FREEZER', + 'TEST-43-PRIVATEUSER-UNPRIV', + 'TEST-44-LOG-NAMESPACE', + 'TEST-45-TIMEDATE', + 'TEST-46-HOMED', + 'TEST-50-DISSECT', + 'TEST-52-HONORFIRSTSHUTDOWN', + 'TEST-53-ISSUE-16347', + 'TEST-54-CREDS', + 'TEST-55-OOMD', + 'TEST-58-REPART', + 'TEST-59-RELOADING-RESTART', + 'TEST-60-MOUNT-RATELIMIT', + 'TEST-62-RESTRICT-IFACES', + 'TEST-63-PATH', + 'TEST-64-UDEV-STORAGE', + 'TEST-65-ANALYZE', + 'TEST-66-DEVICE-ISOLATION', + 'TEST-67-INTEGRITY', + 'TEST-68-PROPAGATE-EXIT-STATUS', + 'TEST-69-SHUTDOWN', + 'TEST-70-TPM2', + 'TEST-71-HOSTNAME', + 'TEST-72-SYSUPDATE', + 'TEST-73-LOCALE', + 'TEST-74-AUX-UTILS', + 'TEST-75-RESOLVED', + 'TEST-76-SYSCTL', + 'TEST-78-SIGQUEUE', + 'TEST-79-MEMPRESS', + 'TEST-80-NOTIFYACCESS', + 'TEST-81-GENERATORS', + 'TEST-82-SOFTREBOOT', + 'TEST-83-BTRFS', + 'TEST-84-STORAGETM', + 'TEST-85-NETWORK', + 'TEST-86-MULTI-PROFILE-UKI', + 'TEST-87-AUX-UTILS-VM', +] + subdir(dirname) +endforeach + +foreach integration_test : integration_tests + integration_test_args = [ + # We don't use meson.project_source_root() because that doesn't work for running the tests + # standalone (see standalone/meson.build). + '--meson-source-dir', meson.current_source_dir() / '../..', + '--meson-build-dir', meson.project_build_root(), + '--name', integration_test['name'], + '--storage', integration_test['storage'], + '--firmware', integration_test['firmware'], + '--exit-code', integration_test['exit-code'].to_string(), + '--coredump-exclude-regex', integration_test['coredump-exclude-regex'], + '--sanitizer-exclude-regex', integration_test['sanitizer-exclude-regex'], + ] + + if 'unit' in integration_test + integration_test_args += ['--unit', fs.name(integration_test['unit'])] + else + integration_test_args += ['--unit', '@0@.service'.format(integration_test['name'])] + endif + + if integration_test['vm'] + integration_test_args += ['--vm'] + endif + + if integration_test['rtc'] + integration_test_args += ['--rtc'] + endif + + if not mkosi.found() + continue + endif + + integration_test_args += ['--mkosi', mkosi.full_path(), '--'] + + if integration_test['cmdline'].length() > 0 + integration_test_args += [ + '--kernel-command-line-extra=@0@'.format(' '.join(integration_test['cmdline'])) + ] + endif + + foreach credential : integration_test['credentials'] + integration_test_args += ['--credential', credential] + endforeach + + if integration_test['qemu-args'].length() > 0 + integration_test_args += ['--qemu-args=@0@'.format(' '.join(integration_test['qemu-args']))] + endif + + integration_test_args += integration_test['mkosi-args'] + + integration_test_env = {} + + if want_integration_tests + integration_test_env += {'SYSTEMD_INTEGRATION_TESTS': '1'} + endif + + if not integration_test['enabled'] + continue + endif + + # We don't explicitly depend on the "mkosi" target because that means the image is rebuilt on every + # "ninja -C build". Instead, the mkosi target has to be rebuilt manually before running the + # integration tests with mkosi. + test( + integration_test['name'], + integration_test_wrapper, + env : integration_test_env, + args : integration_test_args, + timeout : integration_test['timeout'], + priority : integration_test['priority'], + suite : 'integration-tests', + ) +endforeach diff --git a/test/integration-tests/standalone/meson.build b/test/integration-tests/standalone/meson.build new file mode 100644 index 00000000000..76d11afcec9 --- /dev/null +++ b/test/integration-tests/standalone/meson.build @@ -0,0 +1,23 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +# This meson file can be used to run the integration tests without having to install any other dependencies +# as follows: +# +# mkosi -f sandbox -- meson setup testsuite test/integration-tests/standalone +# mkosi genkey +# mkosi -f +# mkosi sandbox -- meson test -C testsuite +# +project('systemd-testsuite', + version : files('../../../meson.version'), + license : 'LGPLv2+', + default_options: ['warning_level=2'], + meson_version : '>= 0.62.0', +) + +fs = import('fs') +mkosi = find_program('mkosi', required : true) +want_integration_tests = true + +# meson refuses .. in subdir() so we use a symlink to trick it into accepting it anyway. +subdir('integration-tests') diff --git a/test/meson.build b/test/meson.build index f5f4d8d85ec..9ec9e515e9c 100644 --- a/test/meson.build +++ b/test/meson.build @@ -278,199 +278,60 @@ endif ############################################################ if want_tests != 'false' - integration_test_wrapper = find_program('integration-test-wrapper.py') - integration_tests = [] - integration_test_template = { - 'mkosi-args' : [], - 'timeout' : 1800, - 'storage' : 'volatile', - 'priority' : 0, - 'firmware' : 'linux', - 'enabled' : true, - 'configuration' : { - 'memory-accounting' : 'no', - 'command' : testdata_dir / 'units/%N.sh', - 'wants' : 'multi-user.target user@4711.service', - 'after' : 'user@4711.service', - }, - 'cmdline' : [], - 'credentials' : [], - 'qemu-args' : [], - 'exit-code' : 123, - 'vm' : false, - 'coredump-exclude-regex' : '', - 'sanitizer-exclude-regex' : '', - 'rtc' : false, - } - testdata_subdirs = [ - 'auxv', - 'journal-data', - 'knot-data', - 'test-journals', - 'units', - 'test-execute', - 'test-fstab-generator', - 'test-path', - 'test-path-util', - 'test-umount', - 'test-network', - 'test-network-generator-conversion', - ] - - foreach dirname : [ - 'TEST-01-BASIC', - 'TEST-02-UNITTESTS', - 'TEST-03-JOBS', - 'TEST-04-JOURNAL', - 'TEST-05-RLIMITS', - 'TEST-06-SELINUX', - 'TEST-07-PID1', - 'TEST-08-INITRD', - 'TEST-09-REBOOT', - 'TEST-13-NSPAWN', - 'TEST-15-DROPIN', - 'TEST-16-EXTEND-TIMEOUT', - 'TEST-17-UDEV', - 'TEST-18-FAILUREACTION', - 'TEST-19-CGROUP', - 'TEST-21-DFUZZER', - 'TEST-22-TMPFILES', - 'TEST-23-UNIT-FILE', - 'TEST-24-CRYPTSETUP', - 'TEST-25-IMPORT', - 'TEST-26-SYSTEMCTL', - 'TEST-29-PORTABLE', - 'TEST-30-ONCLOCKCHANGE', - 'TEST-31-DEVICE-ENUMERATION', - 'TEST-32-OOMPOLICY', - 'TEST-34-DYNAMICUSERMIGRATE', - 'TEST-35-LOGIN', - 'TEST-36-NUMAPOLICY', - 'TEST-38-FREEZER', - 'TEST-43-PRIVATEUSER-UNPRIV', - 'TEST-44-LOG-NAMESPACE', - 'TEST-45-TIMEDATE', - 'TEST-46-HOMED', - 'TEST-50-DISSECT', - 'TEST-52-HONORFIRSTSHUTDOWN', - 'TEST-53-ISSUE-16347', - 'TEST-54-CREDS', - 'TEST-55-OOMD', - 'TEST-58-REPART', - 'TEST-59-RELOADING-RESTART', - 'TEST-60-MOUNT-RATELIMIT', - 'TEST-62-RESTRICT-IFACES', - 'TEST-63-PATH', - 'TEST-64-UDEV-STORAGE', - 'TEST-65-ANALYZE', - 'TEST-66-DEVICE-ISOLATION', - 'TEST-67-INTEGRITY', - 'TEST-68-PROPAGATE-EXIT-STATUS', - 'TEST-69-SHUTDOWN', - 'TEST-70-TPM2', - 'TEST-71-HOSTNAME', - 'TEST-72-SYSUPDATE', - 'TEST-73-LOCALE', - 'TEST-74-AUX-UTILS', - 'TEST-75-RESOLVED', - 'TEST-76-SYSCTL', - 'TEST-78-SIGQUEUE', - 'TEST-79-MEMPRESS', - 'TEST-80-NOTIFYACCESS', - 'TEST-81-GENERATORS', - 'TEST-82-SOFTREBOOT', - 'TEST-83-BTRFS', - 'TEST-84-STORAGETM', - 'TEST-85-NETWORK', - 'TEST-86-MULTI-PROFILE-UKI', - 'TEST-87-AUX-UTILS-VM', - ] - subdir(dirname) - endforeach + subdir('integration-tests') +endif +if install_tests foreach integration_test : integration_tests - integration_test_args = [ - '--meson-source-dir', meson.project_source_root(), - '--meson-build-dir', meson.project_build_root(), - '--name', integration_test['name'], - '--storage', integration_test['storage'], - '--firmware', integration_test['firmware'], - '--exit-code', integration_test['exit-code'].to_string(), - '--coredump-exclude-regex', integration_test['coredump-exclude-regex'], - '--sanitizer-exclude-regex', integration_test['sanitizer-exclude-regex'], - ] - if 'unit' in integration_test integration_test_unit = integration_test['unit'] else + integration_test_unit_env = [] + + foreach key, value : integration_test['configuration']['env'] + integration_test_unit_env += [f'@key@=@value@'] + endforeach + integration_test_unit = configure_file( input : 'test.service.in', output : '@0@.service'.format(integration_test['name']), - configuration : integration_test['configuration'], + configuration : integration_test['configuration'] + { + 'env' : ' '.join(integration_test_unit_env) + }, ) endif - integration_test_args += ['--unit', fs.name(integration_test_unit)] if install_tests install_data(integration_test_unit, install_dir : testdata_dir / 'units') endif - - if integration_test['vm'] - integration_test_args += ['--vm'] - endif - - if integration_test['rtc'] - integration_test_args += ['--rtc'] - endif - - if not mkosi.found() - continue - endif - - integration_test_args += ['--mkosi', mkosi.full_path(), '--'] - - if integration_test['cmdline'].length() > 0 - integration_test_args += [ - '--kernel-command-line-extra=@0@'.format(' '.join(integration_test['cmdline'])) - ] - endif - - foreach credential : integration_test['credentials'] - integration_test_args += ['--credential', credential] - endforeach - - if integration_test['qemu-args'].length() > 0 - integration_test_args += ['--qemu-args=@0@'.format(' '.join(integration_test['qemu-args']))] - endif - - integration_test_args += integration_test['mkosi-args'] - - integration_test_env = {} - - if want_integration_tests - integration_test_env += {'SYSTEMD_INTEGRATION_TESTS': '1'} - endif - - if not integration_test['enabled'] - continue - endif - - # We don't explicitly depend on the "mkosi" target because that means the image is rebuilt on every - # "ninja -C build". Instead, the mkosi target has to be rebuilt manually before running the - # integration tests with mkosi. - test( - integration_test['name'], - integration_test_wrapper, - env : integration_test_env, - args : integration_test_args, - timeout : integration_test['timeout'], - priority : integration_test['priority'], - suite : 'integration-tests', - ) endforeach -endif -if install_tests + testdata_subdirs = [ + 'auxv', + 'journal-data', + 'knot-data', + 'test-journals', + 'units', + 'test-execute', + 'test-fstab-generator', + 'test-path', + 'test-path-util', + 'test-umount', + 'test-network', + 'test-network-generator-conversion', + 'integration-tests/TEST-07-PID1/TEST-07-PID1.units', + 'integration-tests/TEST-03-JOBS/TEST-03-JOBS.units', + 'integration-tests/TEST-04-JOURNAL/TEST-04-JOURNAL.units', + 'integration-tests/TEST-06-SELINUX/TEST-06-SELINUX.units', + 'integration-tests/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units', + 'integration-tests/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units', + 'integration-tests/TEST-30-ONCLOCKCHANGE/TEST-30-ONCLOCKCHANGE.units', + 'integration-tests/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units', + 'integration-tests/TEST-63-PATH/TEST-63-PATH.units', + 'integration-tests/TEST-74-AUX-UTILS/TEST-74-AUX-UTILS.units', + 'integration-tests/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units', + ] + foreach subdir : testdata_subdirs # install_subdir() before meson 1.3.0 does not handle symlinks correctly (it follows them # instead of copying the symlink) so we use rsync instead. diff --git a/test/test.service.in b/test/test.service.in index 0c3bd28c6b8..223df0399a4 100644 --- a/test/test.service.in +++ b/test/test.service.in @@ -9,4 +9,4 @@ ExecStartPre=rm -f /failed /testok ExecStart=@command@ Type=oneshot MemoryAccounting=@memory-accounting@ -Environment=SYSTEMD_PAGER= +Environment=SYSTEMD_PAGER= @env@