From 23d79a84a4fa13709fcccce929ec2b8c3772d299 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sun, 12 May 2024 23:06:07 +0200 Subject: [PATCH 01/21] mkosi: Update to latest --- .github/workflows/mkosi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml index 1e0b622f60..66a58c56d7 100644 --- a/.github/workflows/mkosi.yml +++ b/.github/workflows/mkosi.yml @@ -71,7 +71,7 @@ jobs: steps: - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 - - uses: systemd/mkosi@22d212dcb229b553572578ef16c809f9a9961ee8 + - uses: systemd/mkosi@55f17a8ae67ece9712324c3107804daad94ad0d9 # Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space # immediately, we remove the files in the background. However, we first move them to a different location From cbb8c52a0f7ec1713638d2859f116fa03d379e55 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Mon, 13 May 2024 11:26:58 +0200 Subject: [PATCH 02/21] TEST-01-BASIC: Drop logic to run test without install-tests=true We don't support this for any other tests either so let's drop the support for running TEST-01-BASIC without installing as well to make the upcoming commit easier to implement. --- test/TEST-01-BASIC/test.sh | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh index 93185cf896..d9619730b0 100755 --- a/test/TEST-01-BASIC/test.sh +++ b/test/TEST-01-BASIC/test.sh @@ -16,14 +16,4 @@ KERNEL_APPEND="foo -- -z bar --- baz $KERNEL_APPEND" # shellcheck source=test/test-functions . "${TEST_BASE_DIR:?}/test-functions" -test_append_files() { - local workspace="${1:?}" - local dst - - # Install tests manually so the test is functional even when -Dinstall-tests=false - dst="$workspace/usr/lib/systemd/tests/testdata/units/" - mkdir -p "$dst" - cp -v "$TEST_UNITS_DIR"/{testsuite-01,end}.service "$TEST_UNITS_DIR/testsuite.target" "$dst" -} - do_test "$@" From 5748f13e547baa12a83cb3c3530ec1d6c99906c7 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sat, 11 May 2024 15:55:54 +0200 Subject: [PATCH 03/21] test: Rework integration test definitions Let's make this behave more like all the rest of the meson stuff. This also is the first step to making it a bit more flexible so we can define integration tests in different ways as will be seen in the next commits. --- test/TEST-01-BASIC/meson.build | 7 + test/TEST-02-UNITTESTS/meson.build | 16 +- test/TEST-03-JOBS/meson.build | 7 + test/TEST-04-JOURNAL/meson.build | 11 +- test/TEST-05-RLIMITS/meson.build | 7 + test/TEST-06-SELINUX/meson.build | 15 +- test/TEST-07-PID1/meson.build | 7 + test/TEST-09-REBOOT/meson.build | 13 +- test/TEST-13-NSPAWN/meson.build | 7 + test/TEST-15-DROPIN/meson.build | 7 + test/TEST-16-EXTEND-TIMEOUT/meson.build | 7 + test/TEST-17-UDEV/meson.build | 7 + test/TEST-18-FAILUREACTION/meson.build | 11 +- test/TEST-19-CGROUP/meson.build | 7 + test/TEST-21-DFUZZER/meson.build | 13 +- test/TEST-22-TMPFILES/meson.build | 7 + test/TEST-23-UNIT-FILE/meson.build | 7 + test/TEST-25-IMPORT/meson.build | 7 + test/TEST-26-SYSTEMCTL/meson.build | 7 + test/TEST-29-PORTABLE/meson.build | 7 + test/TEST-30-ONCLOCKCHANGE/meson.build | 7 + test/TEST-31-DEVICE-ENUMERATION/meson.build | 7 + test/TEST-32-OOMPOLICY/meson.build | 7 + test/TEST-34-DYNAMICUSERMIGRATE/meson.build | 7 + test/TEST-35-LOGIN/meson.build | 7 + test/TEST-36-NUMAPOLICY/meson.build | 7 + test/TEST-38-FREEZER/meson.build | 7 + test/TEST-43-PRIVATEUSER-UNPRIV/meson.build | 7 + test/TEST-44-LOG-NAMESPACE/meson.build | 7 + test/TEST-45-TIMEDATE/meson.build | 7 + test/TEST-46-HOMED/meson.build | 7 + test/TEST-50-DISSECT/meson.build | 7 + test/TEST-52-HONORFIRSTSHUTDOWN/meson.build | 7 + test/TEST-53-ISSUE-16347/meson.build | 13 +- test/TEST-55-OOMD/meson.build | 13 +- test/TEST-58-REPART/meson.build | 7 + test/TEST-59-RELOADING-RESTART/meson.build | 7 + test/TEST-60-MOUNT-RATELIMIT/meson.build | 7 + test/TEST-62-RESTRICT-IFACES/meson.build | 7 + test/TEST-63-PATH/meson.build | 7 + test/TEST-65-ANALYZE/meson.build | 7 + test/TEST-66-DEVICE-ISOLATION/meson.build | 7 + test/TEST-67-INTEGRITY/meson.build | 7 + .../TEST-68-PROPAGATE-EXIT-STATUS/meson.build | 7 + test/TEST-70-TPM2/meson.build | 7 + test/TEST-71-HOSTNAME/meson.build | 7 + test/TEST-72-SYSUPDATE/meson.build | 7 + test/TEST-73-LOCALE/meson.build | 7 + test/TEST-74-AUX-UTILS/meson.build | 9 +- test/TEST-75-RESOLVED/meson.build | 7 + test/TEST-76-SYSCTL/meson.build | 7 + test/TEST-78-SIGQUEUE/meson.build | 7 + test/TEST-79-MEMPRESS/meson.build | 7 + test/TEST-80-NOTIFYACCESS/meson.build | 7 + test/TEST-81-GENERATORS/meson.build | 7 + test/TEST-83-BTRFS/meson.build | 7 + test/TEST-84-STORAGETM/meson.build | 7 + test/meson.build | 195 +++++++++--------- 58 files changed, 506 insertions(+), 139 deletions(-) create mode 100644 test/TEST-01-BASIC/meson.build create mode 100644 test/TEST-03-JOBS/meson.build create mode 100644 test/TEST-05-RLIMITS/meson.build create mode 100644 test/TEST-07-PID1/meson.build create mode 100644 test/TEST-13-NSPAWN/meson.build create mode 100644 test/TEST-15-DROPIN/meson.build create mode 100644 test/TEST-16-EXTEND-TIMEOUT/meson.build create mode 100644 test/TEST-17-UDEV/meson.build create mode 100644 test/TEST-19-CGROUP/meson.build create mode 100644 test/TEST-22-TMPFILES/meson.build create mode 100644 test/TEST-23-UNIT-FILE/meson.build create mode 100644 test/TEST-25-IMPORT/meson.build create mode 100644 test/TEST-26-SYSTEMCTL/meson.build create mode 100644 test/TEST-29-PORTABLE/meson.build create mode 100644 test/TEST-30-ONCLOCKCHANGE/meson.build create mode 100644 test/TEST-31-DEVICE-ENUMERATION/meson.build create mode 100644 test/TEST-32-OOMPOLICY/meson.build create mode 100644 test/TEST-34-DYNAMICUSERMIGRATE/meson.build create mode 100644 test/TEST-35-LOGIN/meson.build create mode 100644 test/TEST-36-NUMAPOLICY/meson.build create mode 100644 test/TEST-38-FREEZER/meson.build create mode 100644 test/TEST-43-PRIVATEUSER-UNPRIV/meson.build create mode 100644 test/TEST-44-LOG-NAMESPACE/meson.build create mode 100644 test/TEST-45-TIMEDATE/meson.build create mode 100644 test/TEST-46-HOMED/meson.build create mode 100644 test/TEST-50-DISSECT/meson.build create mode 100644 test/TEST-52-HONORFIRSTSHUTDOWN/meson.build create mode 100644 test/TEST-58-REPART/meson.build create mode 100644 test/TEST-59-RELOADING-RESTART/meson.build create mode 100644 test/TEST-60-MOUNT-RATELIMIT/meson.build create mode 100644 test/TEST-62-RESTRICT-IFACES/meson.build create mode 100644 test/TEST-63-PATH/meson.build create mode 100644 test/TEST-65-ANALYZE/meson.build create mode 100644 test/TEST-66-DEVICE-ISOLATION/meson.build create mode 100644 test/TEST-67-INTEGRITY/meson.build create mode 100644 test/TEST-68-PROPAGATE-EXIT-STATUS/meson.build create mode 100644 test/TEST-70-TPM2/meson.build create mode 100644 test/TEST-71-HOSTNAME/meson.build create mode 100644 test/TEST-72-SYSUPDATE/meson.build create mode 100644 test/TEST-73-LOCALE/meson.build create mode 100644 test/TEST-75-RESOLVED/meson.build create mode 100644 test/TEST-76-SYSCTL/meson.build create mode 100644 test/TEST-78-SIGQUEUE/meson.build create mode 100644 test/TEST-79-MEMPRESS/meson.build create mode 100644 test/TEST-80-NOTIFYACCESS/meson.build create mode 100644 test/TEST-81-GENERATORS/meson.build create mode 100644 test/TEST-83-BTRFS/meson.build create mode 100644 test/TEST-84-STORAGETM/meson.build diff --git a/test/TEST-01-BASIC/meson.build b/test/TEST-01-BASIC/meson.build new file mode 100644 index 0000000000..257dadd890 --- /dev/null +++ b/test/TEST-01-BASIC/meson.build @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +integration_tests += [ + integration_test_template + { + 'name' : 'TEST-01-BASIC', + }, +] diff --git a/test/TEST-02-UNITTESTS/meson.build b/test/TEST-02-UNITTESTS/meson.build index 5c3c040858..89a3edf2ad 100644 --- a/test/TEST-02-UNITTESTS/meson.build +++ b/test/TEST-02-UNITTESTS/meson.build @@ -1,15 +1,17 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -test_params += { - 'mkosi_args': test_params['mkosi_args'] + [ - '--kernel-command-line-extra=' + ' '.join([ - ''' +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'mkosi_args' : integration_test_template['mkosi_args'] + [ + '''--kernel-command-line-extra= + frobnicate! systemd.setenv=TEST_CMDLINE_NEWLINE=foo systemd.setenv=TEST_CMDLINE_NEWLINE=bar ''', - ]), - ], -} + ], + }, +] diff --git a/test/TEST-03-JOBS/meson.build b/test/TEST-03-JOBS/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-03-JOBS/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-04-JOURNAL/meson.build b/test/TEST-04-JOURNAL/meson.build index 7f5cc704c9..184f70ab72 100644 --- a/test/TEST-04-JOURNAL/meson.build +++ b/test/TEST-04-JOURNAL/meson.build @@ -1,5 +1,10 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -test_params += { - 'storage': 'persistent', -} +# SPDX-License-Identifier: LGPL-2.1-or-later + +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'storage' : 'persistent', + }, +] diff --git a/test/TEST-05-RLIMITS/meson.build b/test/TEST-05-RLIMITS/meson.build new file mode 100644 index 0000000000..d8198fdef8 --- /dev/null +++ b/test/TEST-05-RLIMITS/meson.build @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +integration_tests += [ + integration_test_template + { + 'name' : 'TEST-05-RLIMITS', + }, +] diff --git a/test/TEST-06-SELINUX/meson.build b/test/TEST-06-SELINUX/meson.build index a62d144048..408e41ff28 100644 --- a/test/TEST-06-SELINUX/meson.build +++ b/test/TEST-06-SELINUX/meson.build @@ -1,7 +1,12 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -test_params += { - 'mkosi_args' : ['--kernel-command-line-extra=apparmor=0 selinux=1 enforcing=0 lsm=selinux systemd.wants=autorelabel.service systemd.wants=firstboot-autorelabel.service'], - # FIXME; Figure out why reboot sometimes hangs with 'linux' firmware. - 'firmware' : 'uefi', -} +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'mkosi_args' : integration_test_template['mkosi_args'] + [ + '--kernel-command-line-extra=apparmor=0 selinux=1 enforcing=0 lsm=selinux systemd.wants=autorelabel.service systemd.wants=firstboot-autorelabel.service' + ], + # FIXME; Figure out why reboot sometimes hangs with 'linux' firmware. + 'firmware' : 'uefi', + }, +] diff --git a/test/TEST-07-PID1/meson.build b/test/TEST-07-PID1/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-07-PID1/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-09-REBOOT/meson.build b/test/TEST-09-REBOOT/meson.build index a511a829af..c4b41bc97b 100644 --- a/test/TEST-09-REBOOT/meson.build +++ b/test/TEST-09-REBOOT/meson.build @@ -1,7 +1,10 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -test_params += { - 'storage': 'persistent', - # FIXME; Figure out why reboot sometimes hangs with 'linux' firmware. - 'firmware' : 'uefi', -} +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'storage' : 'persistent', + # FIXME; Figure out why reboot sometimes hangs with 'linux' firmware. + 'firmware' : 'uefi', + }, +] diff --git a/test/TEST-13-NSPAWN/meson.build b/test/TEST-13-NSPAWN/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-13-NSPAWN/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-15-DROPIN/meson.build b/test/TEST-15-DROPIN/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-15-DROPIN/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-16-EXTEND-TIMEOUT/meson.build b/test/TEST-16-EXTEND-TIMEOUT/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-16-EXTEND-TIMEOUT/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-17-UDEV/meson.build b/test/TEST-17-UDEV/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-17-UDEV/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-18-FAILUREACTION/meson.build b/test/TEST-18-FAILUREACTION/meson.build index e1bca2d7a8..5edfbcad1f 100644 --- a/test/TEST-18-FAILUREACTION/meson.build +++ b/test/TEST-18-FAILUREACTION/meson.build @@ -1,6 +1,9 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -test_params += { - # FIXME; Figure out why reboot sometimes hangs with 'linux' firmware. - 'firmware' : 'uefi', -} +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + # FIXME; Figure out why reboot sometimes hangs with 'linux' firmware. + 'firmware' : 'uefi', + }, +] diff --git a/test/TEST-19-CGROUP/meson.build b/test/TEST-19-CGROUP/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-19-CGROUP/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-21-DFUZZER/meson.build b/test/TEST-21-DFUZZER/meson.build index 5a27fb2f3f..aa6652910c 100644 --- a/test/TEST-21-DFUZZER/meson.build +++ b/test/TEST-21-DFUZZER/meson.build @@ -1,7 +1,10 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -test_params += { - 'timeout' : 3600, - 'priority' : -50, - 'slow' : true, -} +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'timeout' : 3600, + 'priority' : -50, + 'slow' : true, + }, +] diff --git a/test/TEST-22-TMPFILES/meson.build b/test/TEST-22-TMPFILES/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-22-TMPFILES/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-23-UNIT-FILE/meson.build b/test/TEST-23-UNIT-FILE/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-23-UNIT-FILE/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-25-IMPORT/meson.build b/test/TEST-25-IMPORT/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-25-IMPORT/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-26-SYSTEMCTL/meson.build b/test/TEST-26-SYSTEMCTL/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-26-SYSTEMCTL/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-29-PORTABLE/meson.build b/test/TEST-29-PORTABLE/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-29-PORTABLE/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-30-ONCLOCKCHANGE/meson.build b/test/TEST-30-ONCLOCKCHANGE/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-30-ONCLOCKCHANGE/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-31-DEVICE-ENUMERATION/meson.build b/test/TEST-31-DEVICE-ENUMERATION/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-31-DEVICE-ENUMERATION/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-32-OOMPOLICY/meson.build b/test/TEST-32-OOMPOLICY/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-32-OOMPOLICY/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-34-DYNAMICUSERMIGRATE/meson.build b/test/TEST-34-DYNAMICUSERMIGRATE/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-34-DYNAMICUSERMIGRATE/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-35-LOGIN/meson.build b/test/TEST-35-LOGIN/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-35-LOGIN/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-36-NUMAPOLICY/meson.build b/test/TEST-36-NUMAPOLICY/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-36-NUMAPOLICY/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-38-FREEZER/meson.build b/test/TEST-38-FREEZER/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-38-FREEZER/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-43-PRIVATEUSER-UNPRIV/meson.build b/test/TEST-43-PRIVATEUSER-UNPRIV/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-43-PRIVATEUSER-UNPRIV/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-44-LOG-NAMESPACE/meson.build b/test/TEST-44-LOG-NAMESPACE/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-44-LOG-NAMESPACE/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-45-TIMEDATE/meson.build b/test/TEST-45-TIMEDATE/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-45-TIMEDATE/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-46-HOMED/meson.build b/test/TEST-46-HOMED/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-46-HOMED/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-50-DISSECT/meson.build b/test/TEST-50-DISSECT/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-50-DISSECT/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-52-HONORFIRSTSHUTDOWN/meson.build b/test/TEST-52-HONORFIRSTSHUTDOWN/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-52-HONORFIRSTSHUTDOWN/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-53-ISSUE-16347/meson.build b/test/TEST-53-ISSUE-16347/meson.build index 0b7644f4ad..91b6f42274 100644 --- a/test/TEST-53-ISSUE-16347/meson.build +++ b/test/TEST-53-ISSUE-16347/meson.build @@ -1,7 +1,10 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -test_params += { - 'mkosi_args' : test_params['mkosi_args'] + [ - '--configure-script', meson.current_source_dir() / 'mkosi.configure', - ], -} +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'mkosi_args' : integration_test_template['mkosi_args'] + [ + '--configure-script', meson.current_source_dir() / 'mkosi.configure', + ], + }, +] diff --git a/test/TEST-55-OOMD/meson.build b/test/TEST-55-OOMD/meson.build index 86a0d8f957..132a6b3080 100644 --- a/test/TEST-55-OOMD/meson.build +++ b/test/TEST-55-OOMD/meson.build @@ -1,7 +1,10 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -test_params += { - 'mkosi_args' : test_params['mkosi_args'] + [ - '--credential=@0@'.format(meson.current_source_dir() / 'systemd.unit-dropin.init.scope') - ] -} +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'mkosi_args' : integration_test_template['mkosi_args'] + [ + '--credential=@0@'.format(meson.current_source_dir() / 'systemd.unit-dropin.init.scope') + ] + }, +] diff --git a/test/TEST-58-REPART/meson.build b/test/TEST-58-REPART/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-58-REPART/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-59-RELOADING-RESTART/meson.build b/test/TEST-59-RELOADING-RESTART/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-59-RELOADING-RESTART/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-60-MOUNT-RATELIMIT/meson.build b/test/TEST-60-MOUNT-RATELIMIT/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-60-MOUNT-RATELIMIT/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-62-RESTRICT-IFACES/meson.build b/test/TEST-62-RESTRICT-IFACES/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-62-RESTRICT-IFACES/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-63-PATH/meson.build b/test/TEST-63-PATH/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-63-PATH/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-65-ANALYZE/meson.build b/test/TEST-65-ANALYZE/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-65-ANALYZE/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-66-DEVICE-ISOLATION/meson.build b/test/TEST-66-DEVICE-ISOLATION/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-66-DEVICE-ISOLATION/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-67-INTEGRITY/meson.build b/test/TEST-67-INTEGRITY/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-67-INTEGRITY/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-68-PROPAGATE-EXIT-STATUS/meson.build b/test/TEST-68-PROPAGATE-EXIT-STATUS/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-68-PROPAGATE-EXIT-STATUS/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-70-TPM2/meson.build b/test/TEST-70-TPM2/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-70-TPM2/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-71-HOSTNAME/meson.build b/test/TEST-71-HOSTNAME/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-71-HOSTNAME/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-72-SYSUPDATE/meson.build b/test/TEST-72-SYSUPDATE/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-72-SYSUPDATE/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-73-LOCALE/meson.build b/test/TEST-73-LOCALE/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-73-LOCALE/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-74-AUX-UTILS/meson.build b/test/TEST-74-AUX-UTILS/meson.build index 7f5cc704c9..43a733ee64 100644 --- a/test/TEST-74-AUX-UTILS/meson.build +++ b/test/TEST-74-AUX-UTILS/meson.build @@ -1,5 +1,8 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -test_params += { - 'storage': 'persistent', -} +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'storage': 'persistent', + }, +] diff --git a/test/TEST-75-RESOLVED/meson.build b/test/TEST-75-RESOLVED/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-75-RESOLVED/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-76-SYSCTL/meson.build b/test/TEST-76-SYSCTL/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-76-SYSCTL/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-78-SIGQUEUE/meson.build b/test/TEST-78-SIGQUEUE/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-78-SIGQUEUE/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-79-MEMPRESS/meson.build b/test/TEST-79-MEMPRESS/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-79-MEMPRESS/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-80-NOTIFYACCESS/meson.build b/test/TEST-80-NOTIFYACCESS/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-80-NOTIFYACCESS/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-81-GENERATORS/meson.build b/test/TEST-81-GENERATORS/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/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-83-BTRFS/meson.build b/test/TEST-83-BTRFS/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-83-BTRFS/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-84-STORAGETM/meson.build b/test/TEST-84-STORAGETM/meson.build new file mode 100644 index 0000000000..8dec5f37e7 --- /dev/null +++ b/test/TEST-84-STORAGETM/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/meson.build b/test/meson.build index 30a0461f0d..37c6a671ad 100644 --- a/test/meson.build +++ b/test/meson.build @@ -344,102 +344,101 @@ endif ############################################################ integration_test_wrapper = find_program('integration-test-wrapper.py') -integration_tests = { - '01': 'TEST-01-BASIC', - '02': 'TEST-02-UNITTESTS', - '03': 'TEST-03-JOBS', - '04': 'TEST-04-JOURNAL', - '05': 'TEST-05-RLIMITS', - '06': 'TEST-06-SELINUX', - '07': 'TEST-07-PID1', - # '08': 'TEST-08-INITRD', - '09': 'TEST-09-REBOOT', - '13': 'TEST-13-NSPAWN', - '15': 'TEST-15-DROPIN', - '16': 'TEST-16-EXTEND-TIMEOUT', - '17': 'TEST-17-UDEV', - '18': 'TEST-18-FAILUREACTION', - '19': 'TEST-19-CGROUP', - '21': 'TEST-21-DFUZZER', - '22': 'TEST-22-TMPFILES', - '23': 'TEST-23-UNIT-FILE', - # '24': 'TEST-24-CRYPTSETUP', - '25': 'TEST-25-IMPORT', - '26': 'TEST-26-SYSTEMCTL', - '29': 'TEST-29-PORTABLE', - '30': 'TEST-30-ONCLOCKCHANGE', - '31': 'TEST-31-DEVICE-ENUMERATION', - '32': 'TEST-32-OOMPOLICY', - '34': 'TEST-34-DYNAMICUSERMIGRATE', - '35': 'TEST-35-LOGIN', - '36': 'TEST-36-NUMAPOLICY', - '38': 'TEST-38-FREEZER', - '43': 'TEST-43-PRIVATEUSER-UNPRIV', - '44': 'TEST-44-LOG-NAMESPACE', - '45': 'TEST-45-TIMEDATE', - '46': 'TEST-46-HOMED', - '50': 'TEST-50-DISSECT', - '52': 'TEST-52-HONORFIRSTSHUTDOWN', - '53': 'TEST-53-ISSUE-16347', - # '54': 'TEST-54-CREDS', - '55': 'TEST-55-OOMD', - '58': 'TEST-58-REPART', - '59': 'TEST-59-RELOADING-RESTART', - '60': 'TEST-60-MOUNT-RATELIMIT', - '62': 'TEST-62-RESTRICT-IFACES', - '63': 'TEST-63-PATH', - # '64': 'TEST-64-UDEV-STORAGE', - '65': 'TEST-65-ANALYZE', - '66': 'TEST-66-DEVICE-ISOLATION', - '67': 'TEST-67-INTEGRITY', - '68': 'TEST-68-PROPAGATE-EXIT-STATUS', - # '69': 'TEST-69-SHUTDOWN', - '70': 'TEST-70-TPM2', - '71': 'TEST-71-HOSTNAME', - '72': 'TEST-72-SYSUPDATE', - '73': 'TEST-73-LOCALE', - '74': 'TEST-74-AUX-UTILS', - '75': 'TEST-75-RESOLVED', - '76': 'TEST-76-SYSCTL', - '78': 'TEST-78-SIGQUEUE', - '79': 'TEST-79-MEMPRESS', - '80': 'TEST-80-NOTIFYACCESS', - '81': 'TEST-81-GENERATORS', - # '82': 'TEST-82-SOFTREBOOT', - '83': 'TEST-83-BTRFS', - '84': 'TEST-84-STORAGETM', +integration_tests = [] +integration_test_template = { + 'mkosi_args' : [], + 'timeout' : 1800, + 'storage' : 'volatile', + 'priority' : 0, + 'firmware' : 'linux', + 'slow' : false, } -foreach test_number, dirname : integration_tests - test_params = { - 'mkosi_args' : [], - 'timeout' : 1800, - 'storage' : 'volatile', - 'priority' : 0, - 'firmware' : 'linux', - 'slow' : false, - } - # TODO: This fs.exists call isn't included in rebuild logic - # so if you add a new meson.build in a subdir - # you need to touch another build file to get it to reparse. - if fs.exists(dirname / 'meson.build') - subdir(dirname) - endif +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', +] + subdir(dirname) +endforeach - args = [ +foreach integration_test : integration_tests + integration_test_number = integration_test['name'].split('-')[1] + + integration_test_args = [ '--meson-source-dir', meson.project_source_root(), '--meson-build-dir', meson.project_build_root(), - '--test-name', dirname, - '--test-number', test_number, - '--storage', test_params['storage'], - '--firmware', test_params['firmware'], + '--test-name', integration_test['name'], + '--test-number', integration_test_number, + '--storage', integration_test['storage'], + '--firmware', integration_test['firmware'], ] - if test_params['slow'] - args += ['--slow'] + if integration_test['slow'] + integration_test_args += ['--slow'] endif - args += ['--'] + test_params['mkosi_args'] + integration_test_args += ['--'] + integration_test['mkosi_args'] integration_test_env = {} @@ -451,14 +450,16 @@ foreach test_number, dirname : integration_tests integration_test_env += {'SYSTEMD_SLOW_TESTS': '1'} 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(dirname, - integration_test_wrapper, - env : integration_test_env, - args : args, - timeout : test_params['timeout'], - priority : test_params['priority'], - suite : 'integration-tests') + # 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 From 7a321b5a21f7ad4ed526ac5a40ea0fabeb2e2ba5 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sat, 11 May 2024 19:17:13 +0200 Subject: [PATCH 04/21] test: Rename testsuite-XX units to match test name Having these named differently than the test itself mostly creates unecessary confusion and makes writing logic against the tests harder so let's rename the testsuite-xx units and scripts to just use the test name itself. --- mkosi.images/system/mkosi.conf | 2 +- .../always-activating.service | 0 .../always-activating.socket | 0 .../fails-on-restart-restartdirect.service | 0 .../fails-on-restart-restartdirect.target | 0 .../fails-on-restart.service | 0 .../fails-on-restart.target | 0 .../hello-after-sleep.target | 0 .../TEST-03-JOBS.units}/hello.service | 0 .../propagatestopto-and-pullin.target | 0 .../propagatestopto-indirect.target | 0 .../propagatestopto-only.target | 0 .../sleep-infinity-simple.service | 0 .../TEST-03-JOBS.units}/sleep.service | 0 .../succeeds-on-restart-restartdirect.service | 2 +- .../succeeds-on-restart-restartdirect.target | 0 .../succeeds-on-restart.service | 2 +- .../succeeds-on-restart.sh | 0 .../succeeds-on-restart.target | 0 .../TEST-03-JOBS.units}/unstoppable.service | 0 test/TEST-03-JOBS/meson.build | 2 + .../delegated-cgroup-filtering.service | 0 .../forever-print-hola.service | 0 .../logs-filtering.service | 0 .../silent-success.service | 0 .../verbose-success.service | 0 test/TEST-04-JOURNAL/meson.build | 2 + test/TEST-04-JOURNAL/test.sh | 2 +- .../TEST-06-SELINUX.units}/hola.service | 0 test/TEST-06-SELINUX/meson.build | 2 + .../issue14566-repro.service | 2 +- .../TEST-07-PID1.units}/issue14566-repro.sh | 0 .../issue16115-repro-1.service | 0 .../issue16115-repro-2.service | 0 .../issue16115-repro-3.service | 0 .../TEST-07-PID1.units}/issue2467.service | 0 .../TEST-07-PID1.units}/issue2467.socket | 0 .../TEST-07-PID1.units}/issue2730-alias.mount | 0 .../TEST-07-PID1.units}/issue2730.mount | 0 .../TEST-07-PID1.units}/issue27953.service | 0 .../issue3166-fail-on-restart.service | 0 .../local-fs.target.wants/issue2730.mount | 0 .../pass-fds-to-exec-no.socket | 0 .../pass-fds-to-exec-yes.socket | 0 test/TEST-07-PID1/meson.build | 2 + test/TEST-08-INITRD/test.sh | 2 +- test/TEST-13-NSPAWN/test.sh | 2 +- .../extend-timeout.sh | 0 .../fail-runtime.service | 2 +- .../fail-start.service | 2 +- .../fail-stop.service | 2 +- .../success-all.service | 2 +- .../success-runtime.service | 2 +- .../success-start.service | 2 +- .../success-stop.service | 2 +- test/TEST-16-EXTEND-TIMEOUT/meson.build | 2 + .../TEST-23-UNIT-FILE-binds-to.service} | 6 +- .../TEST-23-UNIT-FILE-bound-by.service} | 0 .../TEST-23-UNIT-FILE-fail.service} | 2 +- ...23-UNIT-FILE-joins-namespace-of-1.service} | 0 ...23-UNIT-FILE-joins-namespace-of-2.service} | 2 +- ...23-UNIT-FILE-joins-namespace-of-3.service} | 2 +- ...23-UNIT-FILE-joins-namespace-of-4.service} | 2 +- ...23-UNIT-FILE-joins-namespace-of-5.service} | 0 ...23-UNIT-FILE-joins-namespace-of-6.service} | 2 +- ...23-UNIT-FILE-joins-namespace-of-7.service} | 2 +- ...23-UNIT-FILE-joins-namespace-of-8.service} | 0 ...23-UNIT-FILE-joins-namespace-of-9.service} | 2 +- .../TEST-23-UNIT-FILE-namespaced.service} | 2 +- .../TEST-23-UNIT-FILE-non-namespaced.service} | 0 ...TEST-23-UNIT-FILE-oneshot-restartforce.sh} | 0 .../TEST-23-UNIT-FILE-openfile-server.socket} | 0 ...EST-23-UNIT-FILE-openfile-server@.service} | 0 .../TEST-23-UNIT-FILE-prop-stop-one.service | 10 ++ .../TEST-23-UNIT-FILE-prop-stop-two.service} | 0 .../TEST-23-UNIT-FILE-retry-fail.service} | 2 +- .../TEST-23-UNIT-FILE-retry-upheld.service} | 4 +- .../TEST-23-UNIT-FILE-retry-uphold.service} | 2 +- .../TEST-23-UNIT-FILE-short-lived.service} | 2 +- ...IT-FILE-specifier-j-depends-wants.service} | 0 ...ST-23-UNIT-FILE-specifier-j-wants.service} | 4 +- .../TEST-23-UNIT-FILE-success.service} | 2 +- ...EST-23-UNIT-FILE-upheldby-install.service} | 2 +- .../TEST-23-UNIT-FILE-uphold.service} | 2 +- test/TEST-23-UNIT-FILE/meson.build | 2 + .../systemd-timedated.service.d/watchdog.conf | 0 test/TEST-30-ONCLOCKCHANGE/meson.build | 2 + .../test-honor-first-shutdown.service | 2 +- .../test-honor-first-shutdown.sh | 0 test/TEST-52-HONORFIRSTSHUTDOWN/meson.build | 2 + .../TEST-63-PATH.units}/test63-glob.path | 0 .../TEST-63-PATH.units}/test63-glob.service | 0 .../test63-issue-24577-dep.service | 0 .../test63-issue-24577.path | 0 .../test63-issue-24577.service | 0 .../TEST-63-PATH.units}/test63-pr-30768.path | 0 .../test63-pr-30768.service | 0 .../TEST-63-PATH.units}/test63.path | 0 .../TEST-63-PATH.units}/test63.service | 0 test/TEST-63-PATH/meson.build | 2 + .../fdstore-nopin.service | 2 +- .../fdstore-pin.service | 2 +- .../fdstore-pin.sh | 0 .../fdstore-pin.target | 0 .../TEST-80-NOTIFYACCESS.units/notify.service | 4 + .../TEST-80-NOTIFYACCESS.units}/test.sh | 0 test/TEST-80-NOTIFYACCESS/meson.build | 2 + test/integration-test-wrapper.py | 5 +- test/meson.build | 132 ++++++++---------- test/test-functions | 31 ++-- .../testsuite-23-prop-stop-one.service | 10 -- test/testsuite-80.units/notify.service | 4 - ...suite-01.service => TEST-01-BASIC.service} | 0 .../{testsuite-01.sh => TEST-01-BASIC.sh} | 0 ...e-02.service => TEST-02-UNITTESTS.service} | 0 .../{testsuite-02.sh => TEST-02-UNITTESTS.sh} | 0 ...tsuite-03.service => TEST-03-JOBS.service} | 0 .../{testsuite-03.sh => TEST-03-JOBS.sh} | 0 ...h => TEST-04-JOURNAL.LogFilterPatterns.sh} | 0 ...ST-04-JOURNAL.SYSTEMD_JOURNAL_COMPRESS.sh} | 0 ...ite-04.bsod.sh => TEST-04-JOURNAL.bsod.sh} | 0 ...suite-04.cat.sh => TEST-04-JOURNAL.cat.sh} | 0 ... => TEST-04-JOURNAL.corrupted-journals.sh} | 0 ...suite-04.fss.sh => TEST-04-JOURNAL.fss.sh} | 0 ...d.sh => TEST-04-JOURNAL.journal-append.sh} | 0 ....sh => TEST-04-JOURNAL.journal-corrupt.sh} | 0 ...sh => TEST-04-JOURNAL.journal-gatewayd.sh} | 0 ...e.sh => TEST-04-JOURNAL.journal-remote.sh} | 0 ....journal.sh => TEST-04-JOURNAL.journal.sh} | 0 ...ite-04.service => TEST-04-JOURNAL.service} | 0 .../{testsuite-04.sh => TEST-04-JOURNAL.sh} | 0 ....sh => TEST-05-RLIMITS.effective-limit.sh} | 0 ...05.rlimit.sh => TEST-05-RLIMITS.rlimit.sh} | 4 +- ...ite-19.service => TEST-05-RLIMITS.service} | 2 +- .../{testsuite-05.sh => TEST-05-RLIMITS.sh} | 0 ...ite-06.service => TEST-06-SELINUX.service} | 0 .../{testsuite-06.sh => TEST-06-SELINUX.sh} | 0 ...aux-scope.sh => TEST-07-PID1.aux-scope.sh} | 0 ...ontext.sh => TEST-07-PID1.exec-context.sh} | 0 ...h => TEST-07-PID1.exec-deserialization.sh} | 0 ...mps.sh => TEST-07-PID1.exec-timestamps.sh} | 0 ...e-14566.sh => TEST-07-PID1.issue-14566.sh} | 0 ...e-16115.sh => TEST-07-PID1.issue-16115.sh} | 0 ...sue-1981.sh => TEST-07-PID1.issue-1981.sh} | 0 ...sue-2467.sh => TEST-07-PID1.issue-2467.sh} | 0 ...e-27953.sh => TEST-07-PID1.issue-27953.sh} | 0 ...e-30412.sh => TEST-07-PID1.issue-30412.sh} | 0 ...sue-3166.sh => TEST-07-PID1.issue-3166.sh} | 0 ...sue-3171.sh => TEST-07-PID1.issue-3171.sh} | 0 ...nge.sh => TEST-07-PID1.main-PID-change.sh} | 20 +-- ...sh => TEST-07-PID1.mount-invalid-chars.sh} | 0 ...ll-limit.sh => TEST-07-PID1.poll-limit.sh} | 0 ...7.pr-31351.sh => TEST-07-PID1.pr-31351.sh} | 0 ...ork.sh => TEST-07-PID1.private-network.sh} | 0 ...tsuite-07.service => TEST-07-PID1.service} | 0 .../{testsuite-07.sh => TEST-07-PID1.sh} | 0 ...fds.sh => TEST-07-PID1.socket-pass-fds.sh} | 0 ....sh => TEST-07-PID1.type-exec-parallel.sh} | 0 ...uite-08.service => TEST-08-INITRD.service} | 0 .../{testsuite-08.sh => TEST-08-INITRD.sh} | 0 ...9.journal.sh => TEST-09-REBOOT.journal.sh} | 0 ...uite-09.service => TEST-09-REBOOT.service} | 0 .../{testsuite-09.sh => TEST-09-REBOOT.sh} | 0 ...portctl.sh => TEST-13-NSPAWN.importctl.sh} | 0 ...inectl.sh => TEST-13-NSPAWN.machinectl.sh} | 0 ...wn-oci.sh => TEST-13-NSPAWN.nspawn-oci.sh} | 2 +- ...-13.nspawn.sh => TEST-13-NSPAWN.nspawn.sh} | 32 ++--- ...es.sh => TEST-13-NSPAWN.nss-mymachines.sh} | 0 ...uite-13.service => TEST-13-NSPAWN.service} | 0 .../{testsuite-13.sh => TEST-13-NSPAWN.sh} | 0 ...uite-15.service => TEST-15-DROPIN.service} | 0 .../{testsuite-15.sh => TEST-15-DROPIN.sh} | 12 +- ...service => TEST-16-EXTEND-TIMEOUT.service} | 0 ...tsuite-16.sh => TEST-16-EXTEND-TIMEOUT.sh} | 0 ...{testsuite-17.00.sh => TEST-17-UDEV.00.sh} | 0 ...{testsuite-17.01.sh => TEST-17-UDEV.01.sh} | 0 ...{testsuite-17.02.sh => TEST-17-UDEV.02.sh} | 0 ...{testsuite-17.03.sh => TEST-17-UDEV.03.sh} | 0 ...{testsuite-17.04.sh => TEST-17-UDEV.04.sh} | 0 ...{testsuite-17.05.sh => TEST-17-UDEV.05.sh} | 0 ...{testsuite-17.06.sh => TEST-17-UDEV.06.sh} | 0 ...{testsuite-17.07.sh => TEST-17-UDEV.07.sh} | 0 ...{testsuite-17.08.sh => TEST-17-UDEV.08.sh} | 0 ...{testsuite-17.09.sh => TEST-17-UDEV.09.sh} | 0 ...{testsuite-17.10.sh => TEST-17-UDEV.10.sh} | 0 ...{testsuite-17.11.sh => TEST-17-UDEV.11.sh} | 0 ...{testsuite-17.12.sh => TEST-17-UDEV.12.sh} | 0 ...{testsuite-17.13.sh => TEST-17-UDEV.13.sh} | 0 ...entials.sh => TEST-17-UDEV.credentials.sh} | 0 ...perty.sh => TEST-17-UDEV.link-property.sh} | 0 ...tsuite-17.service => TEST-17-UDEV.service} | 0 .../{testsuite-17.sh => TEST-17-UDEV.sh} | 0 ....service => TEST-18-FAILUREACTION.service} | 0 ...stsuite-18.sh => TEST-18-FAILUREACTION.sh} | 0 ...p.sh => TEST-19-CGROUP.ExitType-cgroup.sh} | 0 ...ice.sh => TEST-19-CGROUP.cleanup-slice.sh} | 0 ...delegate.sh => TEST-19-CGROUP.delegate.sh} | 0 ...uite-05.service => TEST-19-CGROUP.service} | 2 +- .../{testsuite-19.sh => TEST-19-CGROUP.sh} | 0 ...te-21.service => TEST-21-DFUZZERE.service} | 0 .../{testsuite-21.sh => TEST-21-DFUZZERE.sh} | 0 ...tsuite-22.01.sh => TEST-22-TMPFILES.01.sh} | 0 ...tsuite-22.02.sh => TEST-22-TMPFILES.02.sh} | 0 ...tsuite-22.03.sh => TEST-22-TMPFILES.03.sh} | 0 ...tsuite-22.04.sh => TEST-22-TMPFILES.04.sh} | 0 ...tsuite-22.05.sh => TEST-22-TMPFILES.05.sh} | 0 ...tsuite-22.06.sh => TEST-22-TMPFILES.06.sh} | 0 ...tsuite-22.07.sh => TEST-22-TMPFILES.07.sh} | 0 ...tsuite-22.08.sh => TEST-22-TMPFILES.08.sh} | 0 ...tsuite-22.09.sh => TEST-22-TMPFILES.09.sh} | 0 ...tsuite-22.10.sh => TEST-22-TMPFILES.10.sh} | 0 ...tsuite-22.11.sh => TEST-22-TMPFILES.11.sh} | 0 ...tsuite-22.12.sh => TEST-22-TMPFILES.12.sh} | 0 ...tsuite-22.13.sh => TEST-22-TMPFILES.13.sh} | 0 ...tsuite-22.14.sh => TEST-22-TMPFILES.14.sh} | 0 ...tsuite-22.15.sh => TEST-22-TMPFILES.15.sh} | 0 ...tsuite-22.16.sh => TEST-22-TMPFILES.16.sh} | 0 ...tsuite-22.17.sh => TEST-22-TMPFILES.17.sh} | 0 ...tsuite-22.18.sh => TEST-22-TMPFILES.18.sh} | 0 ...tsuite-22.19.sh => TEST-22-TMPFILES.19.sh} | 0 ...te-22.service => TEST-22-TMPFILES.service} | 0 .../{testsuite-22.sh => TEST-22-TMPFILES.sh} | 0 ...sh => TEST-23-UNIT-FILE-openfile-child.sh} | 0 test/units/TEST-23-UNIT-FILE-short-lived.sh | 18 +++ ...oad.sh => TEST-23-UNIT-FILE.ExecReload.sh} | 0 ...t.sh => TEST-23-UNIT-FILE.ExecStopPost.sh} | 0 .../TEST-23-UNIT-FILE.JoinsNamespaceOf.sh | 31 ++++ ...-23-UNIT-FILE.RuntimeDirectoryPreserve.sh} | 0 ...sh => TEST-23-UNIT-FILE.StandardOutput.sh} | 8 +- test/units/TEST-23-UNIT-FILE.Upholds.sh | 99 +++++++++++++ ...nit.sh => TEST-23-UNIT-FILE.clean-unit.sh} | 0 ...h => TEST-23-UNIT-FILE.exec-command-ex.sh} | 0 ...h => TEST-23-UNIT-FILE.oneshot-restart.sh} | 6 +- ...nfile.sh => TEST-23-UNIT-FILE.openfile.sh} | 8 +- ...=> TEST-23-UNIT-FILE.percentj-wantedby.sh} | 4 +- .../TEST-23-UNIT-FILE.runtime-bind-paths.sh | 43 ++++++ ...e-23.service => TEST-23-UNIT-FILE.service} | 2 +- .../{testsuite-23.sh => TEST-23-UNIT-FILE.sh} | 0 .../TEST-23-UNIT-FILE.start-stop-no-reload.sh | 93 ++++++++++++ ...tedir.sh => TEST-23-UNIT-FILE.statedir.sh} | 0 ...h => TEST-23-UNIT-FILE.success-failure.sh} | 0 ...exec.sh => TEST-23-UNIT-FILE.type-exec.sh} | 0 ...e-23.utmp.sh => TEST-23-UNIT-FILE.utmp.sh} | 0 ...=> TEST-23-UNIT-FILE.verify-unit-files.sh} | 0 ....whoami.sh => TEST-23-UNIT-FILE.whoami.sh} | 6 +- ...-24.service => TEST-24-CRYPTSETUP.service} | 0 ...{testsuite-24.sh => TEST-24-CRYPTSETUP.sh} | 0 ...uite-25.service => TEST-25-IMPORT.service} | 0 .../{testsuite-25.sh => TEST-25-IMPORT.sh} | 0 ...e-26.service => TEST-26-SYSTEMCTL.service} | 0 .../{testsuite-26.sh => TEST-26-SYSTEMCTL.sh} | 0 ...te-29.service => TEST-29-PORTABLE.service} | 0 .../{testsuite-29.sh => TEST-29-PORTABLE.sh} | 0 ....service => TEST-30-ONCLOCKCHANGE.service} | 0 ...stsuite-30.sh => TEST-30-ONCLOCKCHANGE.sh} | 0 ...ice => TEST-31-DEVICE-ENUMERATION.service} | 0 ...te-31.sh => TEST-31-DEVICE-ENUMERATION.sh} | 0 ...e-32.service => TEST-32-OOMPOLICY.service} | 0 .../{testsuite-32.sh => TEST-32-OOMPOLICY.sh} | 2 +- ...ice => TEST-34-DYNAMICUSERMIGRATE.service} | 0 ...te-34.sh => TEST-34-DYNAMICUSERMIGRATE.sh} | 0 ...suite-35.service => TEST-35-LOGIN.service} | 0 .../{testsuite-35.sh => TEST-35-LOGIN.sh} | 0 ...-36.service => TEST-36-NUMAPOLICY.service} | 0 ...{testsuite-36.sh => TEST-36-NUMAPOLICY.sh} | 0 ....service => TEST-38-FREEZER-sleep.service} | 0 ...ite-38.service => TEST-38-FREEZER.service} | 0 .../{testsuite-38.sh => TEST-38-FREEZER.sh} | 2 +- ...ice => TEST-43-PRIVATEUSER-UNPRIV.service} | 0 ...te-43.sh => TEST-43-PRIVATEUSER-UNPRIV.sh} | 0 ....service => TEST-44-LOG-NAMESPACE.service} | 2 +- ...stsuite-44.sh => TEST-44-LOG-NAMESPACE.sh} | 0 ...te-45.service => TEST-45-TIMEDATE.service} | 0 .../{testsuite-45.sh => TEST-45-TIMEDATE.sh} | 0 ...suite-46.service => TEST-46-HOMED.service} | 0 .../{testsuite-46.sh => TEST-46-HOMED.sh} | 0 ...suite-50.DDI.sh => TEST-50-DISSECT.DDI.sh} | 0 ....dissect.sh => TEST-50-DISSECT.dissect.sh} | 0 ...ountfsd.sh => TEST-50-DISSECT.mountfsd.sh} | 0 ...ite-50.service => TEST-50-DISSECT.service} | 0 .../{testsuite-50.sh => TEST-50-DISSECT.sh} | 2 +- ...50.sysext.sh => TEST-50-DISSECT.sysext.sh} | 0 ...ice => TEST-52-HONORFIRSTSHUTDOWN.service} | 2 +- ...te-52.sh => TEST-52-HONORFIRSTSHUTDOWN.sh} | 0 ...53.service => TEST-53-ISSUE-16347.service} | 0 ...testsuite-53.sh => TEST-53-ISSUE-16347.sh} | 0 ...suite-64.service => TEST-54-CREDS.service} | 2 +- .../{testsuite-54.sh => TEST-54-CREDS.sh} | 0 ...service => TEST-55-OOMD-testbloat.service} | 2 +- ...service => TEST-55-OOMD-testchill.service} | 2 +- ...service => TEST-55-OOMD-testmunch.service} | 2 +- ...load.slice => TEST-55-OOMD-workload.slice} | 0 ...tsuite-55.service => TEST-55-OOMD.service} | 2 +- .../{testsuite-55.sh => TEST-55-OOMD.sh} | 56 ++++---- ...uite-58.service => TEST-58-REPART.service} | 0 .../{testsuite-58.sh => TEST-58-REPART.sh} | 2 +- ...vice => TEST-59-RELOADING-RESTART.service} | 0 ...ite-59.sh => TEST-59-RELOADING-RESTART.sh} | 0 ...ervice => TEST-60-MOUNT-RATELIMIT.service} | 0 ...suite-60.sh => TEST-60-MOUNT-RATELIMIT.sh} | 10 +- ...vice => TEST-62-RESTRICT-IFACES-1.service} | 0 ...vice => TEST-62-RESTRICT-IFACES-2.service} | 0 ...vice => TEST-62-RESTRICT-IFACES-3.service} | 0 ...vice => TEST-62-RESTRICT-IFACES-4.service} | 0 ...vice => TEST-62-RESTRICT-IFACES-5.service} | 0 ...vice => TEST-62-RESTRICT-IFACES-6.service} | 0 ...ervice => TEST-62-RESTRICT-IFACES.service} | 0 ...suite-62.sh => TEST-62-RESTRICT-IFACES.sh} | 10 +- ...tsuite-63.service => TEST-63-PATH.service} | 0 .../{testsuite-63.sh => TEST-63-PATH.sh} | 0 ...4.service => TEST-64-UDEV-STORAGE.service} | 2 +- ...estsuite-64.sh => TEST-64-UDEV-STORAGE.sh} | 0 ...ite-65.service => TEST-65-ANALYZE.service} | 0 .../{testsuite-65.sh => TEST-65-ANALYZE.sh} | 0 ...DEVICE-ISOLATION-device-isolation.service} | 4 +- ...uite-66.sh => TEST-66-DEVICE-ISOLATION.sh} | 6 +- test/units/TEST-66-DEVICEISOLATION.service | 8 ++ ...e-67.service => TEST-67-INTEGRITY.service} | 0 .../{testsuite-67.sh => TEST-67-INTEGRITY.sh} | 0 ... => TEST-68-PROPAGATE-EXIT-STATUS.service} | 0 ...68.sh => TEST-68-PROPAGATE-EXIT-STATUS.sh} | 0 ...te-69.service => TEST-69-SHUTDOWN.service} | 0 ...uite-70.creds.sh => TEST-70-TPM2.creds.sh} | 0 ...tenroll.sh => TEST-70-TPM2.cryptenroll.sh} | 0 ...yptsetup.sh => TEST-70-TPM2.cryptsetup.sh} | 0 ...-70.measure.sh => TEST-70-TPM2.measure.sh} | 0 ...pcrextend.sh => TEST-70-TPM2.pcrextend.sh} | 0 ...-70.pcrlock.sh => TEST-70-TPM2.pcrlock.sh} | 0 ...tsuite-70.service => TEST-70-TPM2.service} | 0 .../{testsuite-70.sh => TEST-70-TPM2.sh} | 0 ...m2-setup.sh => TEST-70-TPM2.tpm2-setup.sh} | 0 ...te-71.service => TEST-71-HOSTNAME.service} | 0 .../{testsuite-71.sh => TEST-71-HOSTNAME.sh} | 0 ...e-72.service => TEST-72-SYSUPDATE.service} | 0 .../{testsuite-72.sh => TEST-72-SYSUPDATE.sh} | 0 ...uite-73.service => TEST-73-LOCALE.service} | 0 .../{testsuite-73.sh => TEST-73-LOCALE.sh} | 0 ....sh => TEST-74-AUX-UTILS.battery-check.sh} | 0 ...ootctl.sh => TEST-74-AUX-UTILS.bootctl.sh} | 0 ....busctl.sh => TEST-74-AUX-UTILS.busctl.sh} | 0 ...apsule.sh => TEST-74-AUX-UTILS.capsule.sh} | 0 ...e-74.cgls.sh => TEST-74-AUX-UTILS.cgls.sh} | 0 ...74.cgtop.sh => TEST-74-AUX-UTILS.cgtop.sh} | 0 ...edump.sh => TEST-74-AUX-UTILS.coredump.sh} | 2 +- ...74.delta.sh => TEST-74-AUX-UTILS.delta.sh} | 0 ....escape.sh => TEST-74-AUX-UTILS.escape.sh} | 0 ...boot.sh => TEST-74-AUX-UTILS.firstboot.sh} | 0 ...74.id128.sh => TEST-74-AUX-UTILS.id128.sh} | 0 ... => TEST-74-AUX-UTILS.machine-id-setup.sh} | 0 ...d.sh => TEST-74-AUX-UTILS.modules-load.sh} | 0 ...74.mount.sh => TEST-74-AUX-UTILS.mount.sh} | 0 ...=> TEST-74-AUX-UTILS.network-generator.sh} | 0 ...ctl.sh => TEST-74-AUX-UTILS.networkctl.sh} | 0 ...e-74.path.sh => TEST-74-AUX-UTILS.path.sh} | 0 ....pstore.sh => TEST-74-AUX-UTILS.pstore.sh} | 0 ...ite-74.run.sh => TEST-74-AUX-UTILS.run.sh} | 0 ...e-74.service => TEST-74-AUX-UTILS.service} | 0 .../{testsuite-74.sh => TEST-74-AUX-UTILS.sh} | 0 ....socket.sh => TEST-74-AUX-UTILS.socket.sh} | 0 ...ite-74.ssh.sh => TEST-74-AUX-UTILS.ssh.sh} | 0 ...ctl.sh => TEST-74-AUX-UTILS.varlinkctl.sh} | 0 ...74.vpick.sh => TEST-74-AUX-UTILS.vpick.sh} | 0 test/units/TEST-75-RESOLVED.service | 8 ++ .../{testsuite-75.sh => TEST-75-RESOLVED.sh} | 0 ...uite-76.service => TEST-76-SYSCTL.service} | 0 .../{testsuite-76.sh => TEST-76-SYSCTL.sh} | 0 ...te-78.service => TEST-78-SIGQUEUE.service} | 0 .../{testsuite-78.sh => TEST-78-SIGQUEUE.sh} | 0 ...te-79.service => TEST-79-MEMPRESS.service} | 0 .../{testsuite-79.sh => TEST-79-MEMPRESS.sh} | 2 +- ...0.service => TEST-80-NOTIFYACCESS.service} | 0 ...estsuite-80.sh => TEST-80-NOTIFYACCESS.sh} | 0 ... => TEST-81-GENERATORS.debug-generator.sh} | 0 ...-81-GENERATORS.environment-d-generator.sh} | 0 ... => TEST-81-GENERATORS.fstab-generator.sh} | 0 ... => TEST-81-GENERATORS.getty-generator.sh} | 0 ...sh => TEST-81-GENERATORS.run-generator.sh} | 0 ...-81.service => TEST-81-GENERATORS.service} | 0 ...{testsuite-81.sh => TEST-81-GENERATORS.sh} | 0 ...-81-GENERATORS.system-update-generator.sh} | 0 ...-82.service => TEST-82-SOFTREBOOT.service} | 0 ...{testsuite-82.sh => TEST-82-SOFTREBOOT.sh} | 60 ++++---- ...suite-83.service => TEST-83-BTRFS.service} | 0 .../{testsuite-83.sh => TEST-83-BTRFS.sh} | 0 ...e-84.service => TEST-84-STORAGETM.service} | 0 .../{testsuite-84.sh => TEST-84-STORAGETM.sh} | 0 test/units/test-control.sh | 2 +- test/units/testsuite-23-short-lived.sh | 18 --- test/units/testsuite-23.JoinsNamespaceOf.sh | 31 ---- test/units/testsuite-23.Upholds.sh | 99 ------------- test/units/testsuite-23.runtime-bind-paths.sh | 43 ------ .../testsuite-23.start-stop-no-reload.sh | 93 ------------ test/units/testsuite-66.service | 8 -- test/units/testsuite-75.service | 8 -- test/units/util.sh | 4 +- 395 files changed, 592 insertions(+), 588 deletions(-) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/always-activating.service (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/always-activating.socket (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/fails-on-restart-restartdirect.service (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/fails-on-restart-restartdirect.target (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/fails-on-restart.service (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/fails-on-restart.target (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/hello-after-sleep.target (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/hello.service (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/propagatestopto-and-pullin.target (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/propagatestopto-indirect.target (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/propagatestopto-only.target (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/sleep-infinity-simple.service (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/sleep.service (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/succeeds-on-restart-restartdirect.service (66%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/succeeds-on-restart-restartdirect.target (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/succeeds-on-restart.service (66%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/succeeds-on-restart.sh (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/succeeds-on-restart.target (100%) rename test/{testsuite-03.units => TEST-03-JOBS/TEST-03-JOBS.units}/unstoppable.service (100%) rename test/{testsuite-04.units => TEST-04-JOURNAL/TEST-04-JOURNAL.units}/delegated-cgroup-filtering.service (100%) rename test/{testsuite-04.units => TEST-04-JOURNAL/TEST-04-JOURNAL.units}/forever-print-hola.service (100%) rename test/{testsuite-04.units => TEST-04-JOURNAL/TEST-04-JOURNAL.units}/logs-filtering.service (100%) rename test/{testsuite-04.units => TEST-04-JOURNAL/TEST-04-JOURNAL.units}/silent-success.service (100%) rename test/{testsuite-04.units => TEST-04-JOURNAL/TEST-04-JOURNAL.units}/verbose-success.service (100%) rename test/{testsuite-06.units => TEST-06-SELINUX/TEST-06-SELINUX.units}/hola.service (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/issue14566-repro.service (67%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/issue14566-repro.sh (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/issue16115-repro-1.service (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/issue16115-repro-2.service (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/issue16115-repro-3.service (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/issue2467.service (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/issue2467.socket (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/issue2730-alias.mount (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/issue2730.mount (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/issue27953.service (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/issue3166-fail-on-restart.service (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/local-fs.target.wants/issue2730.mount (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/pass-fds-to-exec-no.socket (100%) rename test/{testsuite-07.units => TEST-07-PID1/TEST-07-PID1.units}/pass-fds-to-exec-yes.socket (100%) rename test/{testsuite-16.units => TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units}/extend-timeout.sh (100%) rename test/{testsuite-16.units => TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units}/fail-runtime.service (86%) rename test/{testsuite-16.units => TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units}/fail-start.service (86%) rename test/{testsuite-16.units => TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units}/fail-stop.service (90%) rename test/{testsuite-16.units => TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units}/success-all.service (87%) rename test/{testsuite-16.units => TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units}/success-runtime.service (84%) rename test/{testsuite-16.units => TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units}/success-start.service (85%) rename test/{testsuite-16.units => TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units}/success-stop.service (85%) rename test/{testsuite-23.units/testsuite-23-binds-to.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-binds-to.service} (52%) rename test/{testsuite-23.units/testsuite-23-bound-by.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-bound-by.service} (100%) rename test/{testsuite-23.units/testsuite-23-fail.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-fail.service} (70%) rename test/{testsuite-23.units/testsuite-23-joins-namespace-of-1.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-1.service} (100%) rename test/{testsuite-23.units/testsuite-23-joins-namespace-of-2.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-2.service} (73%) rename test/{testsuite-23.units/testsuite-23-joins-namespace-of-3.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-3.service} (73%) rename test/{testsuite-23.units/testsuite-23-joins-namespace-of-4.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-4.service} (77%) rename test/{testsuite-23.units/testsuite-23-joins-namespace-of-5.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-5.service} (100%) rename test/{testsuite-23.units/testsuite-23-joins-namespace-of-6.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-6.service} (77%) rename test/{testsuite-23.units/testsuite-23-joins-namespace-of-7.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-7.service} (77%) rename test/{testsuite-23.units/testsuite-23-joins-namespace-of-8.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-8.service} (100%) rename test/{testsuite-23.units/testsuite-23-joins-namespace-of-9.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-9.service} (77%) rename test/{testsuite-23.units/testsuite-23-namespaced.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-namespaced.service} (88%) rename test/{testsuite-23.units/testsuite-23-non-namespaced.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-non-namespaced.service} (100%) rename test/{testsuite-23.units/testsuite-23-oneshot-restartforce.sh => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-oneshot-restartforce.sh} (100%) rename test/{testsuite-23.units/testsuite-23-openfile-server.socket => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server.socket} (100%) rename test/{testsuite-23.units/testsuite-23-openfile-server@.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server@.service} (100%) create mode 100644 test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-one.service rename test/{testsuite-23.units/testsuite-23-prop-stop-two.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-two.service} (100%) rename test/{testsuite-23.units/testsuite-23-retry-fail.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-fail.service} (60%) rename test/{testsuite-23.units/testsuite-23-retry-upheld.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-upheld.service} (60%) rename test/{testsuite-23.units/testsuite-23-retry-uphold.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-uphold.service} (70%) rename test/{testsuite-23.units/testsuite-23-short-lived.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-short-lived.service} (74%) rename test/{testsuite-23.units/testsuite-23-specifier-j-depends-wants.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-depends-wants.service} (100%) rename test/{testsuite-23.units/testsuite-23-specifier-j-wants.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-wants.service} (65%) rename test/{testsuite-23.units/testsuite-23-success.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-success.service} (72%) rename test/{testsuite-23.units/testsuite-23-upheldby-install.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-upheldby-install.service} (76%) rename test/{testsuite-23.units/testsuite-23-uphold.service => TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-uphold.service} (71%) rename test/{testsuite-30.units => TEST-30-ONCLOCKCHANGE/TEST-30-ONCLOCKCHANGE.units}/systemd-timedated.service.d/watchdog.conf (100%) rename test/{testsuite-52.units => TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units}/test-honor-first-shutdown.service (73%) rename test/{testsuite-52.units => TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units}/test-honor-first-shutdown.sh (100%) rename test/{testsuite-63.units => TEST-63-PATH/TEST-63-PATH.units}/test63-glob.path (100%) rename test/{testsuite-63.units => TEST-63-PATH/TEST-63-PATH.units}/test63-glob.service (100%) rename test/{testsuite-63.units => TEST-63-PATH/TEST-63-PATH.units}/test63-issue-24577-dep.service (100%) rename test/{testsuite-63.units => TEST-63-PATH/TEST-63-PATH.units}/test63-issue-24577.path (100%) rename test/{testsuite-63.units => TEST-63-PATH/TEST-63-PATH.units}/test63-issue-24577.service (100%) rename test/{testsuite-63.units => TEST-63-PATH/TEST-63-PATH.units}/test63-pr-30768.path (100%) rename test/{testsuite-63.units => TEST-63-PATH/TEST-63-PATH.units}/test63-pr-30768.service (100%) rename test/{testsuite-63.units => TEST-63-PATH/TEST-63-PATH.units}/test63.path (100%) rename test/{testsuite-63.units => TEST-63-PATH/TEST-63-PATH.units}/test63.service (100%) rename test/{testsuite-80.units => TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units}/fdstore-nopin.service (54%) rename test/{testsuite-80.units => TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units}/fdstore-pin.service (53%) rename test/{testsuite-80.units => TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units}/fdstore-pin.sh (100%) rename test/{testsuite-80.units => TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units}/fdstore-pin.target (100%) create mode 100644 test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/notify.service rename test/{testsuite-80.units => TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units}/test.sh (100%) delete mode 100644 test/testsuite-23.units/testsuite-23-prop-stop-one.service delete mode 100644 test/testsuite-80.units/notify.service rename test/units/{testsuite-01.service => TEST-01-BASIC.service} (100%) rename test/units/{testsuite-01.sh => TEST-01-BASIC.sh} (100%) rename test/units/{testsuite-02.service => TEST-02-UNITTESTS.service} (100%) rename test/units/{testsuite-02.sh => TEST-02-UNITTESTS.sh} (100%) rename test/units/{testsuite-03.service => TEST-03-JOBS.service} (100%) rename test/units/{testsuite-03.sh => TEST-03-JOBS.sh} (100%) rename test/units/{testsuite-04.LogFilterPatterns.sh => TEST-04-JOURNAL.LogFilterPatterns.sh} (100%) rename test/units/{testsuite-04.SYSTEMD_JOURNAL_COMPRESS.sh => TEST-04-JOURNAL.SYSTEMD_JOURNAL_COMPRESS.sh} (100%) rename test/units/{testsuite-04.bsod.sh => TEST-04-JOURNAL.bsod.sh} (100%) rename test/units/{testsuite-04.cat.sh => TEST-04-JOURNAL.cat.sh} (100%) rename test/units/{testsuite-04.corrupted-journals.sh => TEST-04-JOURNAL.corrupted-journals.sh} (100%) rename test/units/{testsuite-04.fss.sh => TEST-04-JOURNAL.fss.sh} (100%) rename test/units/{testsuite-04.journal-append.sh => TEST-04-JOURNAL.journal-append.sh} (100%) rename test/units/{testsuite-04.journal-corrupt.sh => TEST-04-JOURNAL.journal-corrupt.sh} (100%) rename test/units/{testsuite-04.journal-gatewayd.sh => TEST-04-JOURNAL.journal-gatewayd.sh} (100%) rename test/units/{testsuite-04.journal-remote.sh => TEST-04-JOURNAL.journal-remote.sh} (100%) rename test/units/{testsuite-04.journal.sh => TEST-04-JOURNAL.journal.sh} (100%) rename test/units/{testsuite-04.service => TEST-04-JOURNAL.service} (100%) rename test/units/{testsuite-04.sh => TEST-04-JOURNAL.sh} (100%) rename test/units/{testsuite-05.effective-limit.sh => TEST-05-RLIMITS.effective-limit.sh} (100%) rename test/units/{testsuite-05.rlimit.sh => TEST-05-RLIMITS.rlimit.sh} (77%) rename test/units/{testsuite-19.service => TEST-05-RLIMITS.service} (85%) rename test/units/{testsuite-05.sh => TEST-05-RLIMITS.sh} (100%) rename test/units/{testsuite-06.service => TEST-06-SELINUX.service} (100%) rename test/units/{testsuite-06.sh => TEST-06-SELINUX.sh} (100%) rename test/units/{testsuite-07.aux-scope.sh => TEST-07-PID1.aux-scope.sh} (100%) rename test/units/{testsuite-07.exec-context.sh => TEST-07-PID1.exec-context.sh} (100%) rename test/units/{testsuite-07.exec-deserialization.sh => TEST-07-PID1.exec-deserialization.sh} (100%) rename test/units/{testsuite-07.exec-timestamps.sh => TEST-07-PID1.exec-timestamps.sh} (100%) rename test/units/{testsuite-07.issue-14566.sh => TEST-07-PID1.issue-14566.sh} (100%) rename test/units/{testsuite-07.issue-16115.sh => TEST-07-PID1.issue-16115.sh} (100%) rename test/units/{testsuite-07.issue-1981.sh => TEST-07-PID1.issue-1981.sh} (100%) rename test/units/{testsuite-07.issue-2467.sh => TEST-07-PID1.issue-2467.sh} (100%) rename test/units/{testsuite-07.issue-27953.sh => TEST-07-PID1.issue-27953.sh} (100%) rename test/units/{testsuite-07.issue-30412.sh => TEST-07-PID1.issue-30412.sh} (100%) rename test/units/{testsuite-07.issue-3166.sh => TEST-07-PID1.issue-3166.sh} (100%) rename test/units/{testsuite-07.issue-3171.sh => TEST-07-PID1.issue-3171.sh} (100%) rename test/units/{testsuite-07.main-PID-change.sh => TEST-07-PID1.main-PID-change.sh} (88%) rename test/units/{testsuite-07.mount-invalid-chars.sh => TEST-07-PID1.mount-invalid-chars.sh} (100%) rename test/units/{testsuite-07.poll-limit.sh => TEST-07-PID1.poll-limit.sh} (100%) rename test/units/{testsuite-07.pr-31351.sh => TEST-07-PID1.pr-31351.sh} (100%) rename test/units/{testsuite-07.private-network.sh => TEST-07-PID1.private-network.sh} (100%) rename test/units/{testsuite-07.service => TEST-07-PID1.service} (100%) rename test/units/{testsuite-07.sh => TEST-07-PID1.sh} (100%) rename test/units/{testsuite-07.socket-pass-fds.sh => TEST-07-PID1.socket-pass-fds.sh} (100%) rename test/units/{testsuite-07.type-exec-parallel.sh => TEST-07-PID1.type-exec-parallel.sh} (100%) rename test/units/{testsuite-08.service => TEST-08-INITRD.service} (100%) rename test/units/{testsuite-08.sh => TEST-08-INITRD.sh} (100%) rename test/units/{testsuite-09.journal.sh => TEST-09-REBOOT.journal.sh} (100%) rename test/units/{testsuite-09.service => TEST-09-REBOOT.service} (100%) rename test/units/{testsuite-09.sh => TEST-09-REBOOT.sh} (100%) rename test/units/{testsuite-13.importctl.sh => TEST-13-NSPAWN.importctl.sh} (100%) rename test/units/{testsuite-13.machinectl.sh => TEST-13-NSPAWN.machinectl.sh} (100%) rename test/units/{testsuite-13.nspawn-oci.sh => TEST-13-NSPAWN.nspawn-oci.sh} (99%) rename test/units/{testsuite-13.nspawn.sh => TEST-13-NSPAWN.nspawn.sh} (96%) rename test/units/{testsuite-13.nss-mymachines.sh => TEST-13-NSPAWN.nss-mymachines.sh} (100%) rename test/units/{testsuite-13.service => TEST-13-NSPAWN.service} (100%) rename test/units/{testsuite-13.sh => TEST-13-NSPAWN.sh} (100%) rename test/units/{testsuite-15.service => TEST-15-DROPIN.service} (100%) rename test/units/{testsuite-15.sh => TEST-15-DROPIN.sh} (98%) rename test/units/{testsuite-16.service => TEST-16-EXTEND-TIMEOUT.service} (100%) rename test/units/{testsuite-16.sh => TEST-16-EXTEND-TIMEOUT.sh} (100%) rename test/units/{testsuite-17.00.sh => TEST-17-UDEV.00.sh} (100%) rename test/units/{testsuite-17.01.sh => TEST-17-UDEV.01.sh} (100%) rename test/units/{testsuite-17.02.sh => TEST-17-UDEV.02.sh} (100%) rename test/units/{testsuite-17.03.sh => TEST-17-UDEV.03.sh} (100%) rename test/units/{testsuite-17.04.sh => TEST-17-UDEV.04.sh} (100%) rename test/units/{testsuite-17.05.sh => TEST-17-UDEV.05.sh} (100%) rename test/units/{testsuite-17.06.sh => TEST-17-UDEV.06.sh} (100%) rename test/units/{testsuite-17.07.sh => TEST-17-UDEV.07.sh} (100%) rename test/units/{testsuite-17.08.sh => TEST-17-UDEV.08.sh} (100%) rename test/units/{testsuite-17.09.sh => TEST-17-UDEV.09.sh} (100%) rename test/units/{testsuite-17.10.sh => TEST-17-UDEV.10.sh} (100%) rename test/units/{testsuite-17.11.sh => TEST-17-UDEV.11.sh} (100%) rename test/units/{testsuite-17.12.sh => TEST-17-UDEV.12.sh} (100%) rename test/units/{testsuite-17.13.sh => TEST-17-UDEV.13.sh} (100%) rename test/units/{testsuite-17.credentials.sh => TEST-17-UDEV.credentials.sh} (100%) rename test/units/{testsuite-17.link-property.sh => TEST-17-UDEV.link-property.sh} (100%) rename test/units/{testsuite-17.service => TEST-17-UDEV.service} (100%) rename test/units/{testsuite-17.sh => TEST-17-UDEV.sh} (100%) rename test/units/{testsuite-18.service => TEST-18-FAILUREACTION.service} (100%) rename test/units/{testsuite-18.sh => TEST-18-FAILUREACTION.sh} (100%) rename test/units/{testsuite-19.ExitType-cgroup.sh => TEST-19-CGROUP.ExitType-cgroup.sh} (100%) rename test/units/{testsuite-19.cleanup-slice.sh => TEST-19-CGROUP.cleanup-slice.sh} (100%) rename test/units/{testsuite-19.delegate.sh => TEST-19-CGROUP.delegate.sh} (100%) rename test/units/{testsuite-05.service => TEST-19-CGROUP.service} (85%) rename test/units/{testsuite-19.sh => TEST-19-CGROUP.sh} (100%) rename test/units/{testsuite-21.service => TEST-21-DFUZZERE.service} (100%) rename test/units/{testsuite-21.sh => TEST-21-DFUZZERE.sh} (100%) rename test/units/{testsuite-22.01.sh => TEST-22-TMPFILES.01.sh} (100%) rename test/units/{testsuite-22.02.sh => TEST-22-TMPFILES.02.sh} (100%) rename test/units/{testsuite-22.03.sh => TEST-22-TMPFILES.03.sh} (100%) rename test/units/{testsuite-22.04.sh => TEST-22-TMPFILES.04.sh} (100%) rename test/units/{testsuite-22.05.sh => TEST-22-TMPFILES.05.sh} (100%) rename test/units/{testsuite-22.06.sh => TEST-22-TMPFILES.06.sh} (100%) rename test/units/{testsuite-22.07.sh => TEST-22-TMPFILES.07.sh} (100%) rename test/units/{testsuite-22.08.sh => TEST-22-TMPFILES.08.sh} (100%) rename test/units/{testsuite-22.09.sh => TEST-22-TMPFILES.09.sh} (100%) rename test/units/{testsuite-22.10.sh => TEST-22-TMPFILES.10.sh} (100%) rename test/units/{testsuite-22.11.sh => TEST-22-TMPFILES.11.sh} (100%) rename test/units/{testsuite-22.12.sh => TEST-22-TMPFILES.12.sh} (100%) rename test/units/{testsuite-22.13.sh => TEST-22-TMPFILES.13.sh} (100%) rename test/units/{testsuite-22.14.sh => TEST-22-TMPFILES.14.sh} (100%) rename test/units/{testsuite-22.15.sh => TEST-22-TMPFILES.15.sh} (100%) rename test/units/{testsuite-22.16.sh => TEST-22-TMPFILES.16.sh} (100%) rename test/units/{testsuite-22.17.sh => TEST-22-TMPFILES.17.sh} (100%) rename test/units/{testsuite-22.18.sh => TEST-22-TMPFILES.18.sh} (100%) rename test/units/{testsuite-22.19.sh => TEST-22-TMPFILES.19.sh} (100%) rename test/units/{testsuite-22.service => TEST-22-TMPFILES.service} (100%) rename test/units/{testsuite-22.sh => TEST-22-TMPFILES.sh} (100%) rename test/units/{testsuite-23-openfile-child.sh => TEST-23-UNIT-FILE-openfile-child.sh} (100%) create mode 100755 test/units/TEST-23-UNIT-FILE-short-lived.sh rename test/units/{testsuite-23.ExecReload.sh => TEST-23-UNIT-FILE.ExecReload.sh} (100%) rename test/units/{testsuite-23.ExecStopPost.sh => TEST-23-UNIT-FILE.ExecStopPost.sh} (100%) create mode 100755 test/units/TEST-23-UNIT-FILE.JoinsNamespaceOf.sh rename test/units/{testsuite-23.RuntimeDirectoryPreserve.sh => TEST-23-UNIT-FILE.RuntimeDirectoryPreserve.sh} (100%) rename test/units/{testsuite-23.StandardOutput.sh => TEST-23-UNIT-FILE.StandardOutput.sh} (80%) create mode 100755 test/units/TEST-23-UNIT-FILE.Upholds.sh rename test/units/{testsuite-23.clean-unit.sh => TEST-23-UNIT-FILE.clean-unit.sh} (100%) rename test/units/{testsuite-23.exec-command-ex.sh => TEST-23-UNIT-FILE.exec-command-ex.sh} (100%) rename test/units/{testsuite-23.oneshot-restart.sh => TEST-23-UNIT-FILE.oneshot-restart.sh} (90%) rename test/units/{testsuite-23.openfile.sh => TEST-23-UNIT-FILE.openfile.sh} (79%) rename test/units/{testsuite-23.percentj-wantedby.sh => TEST-23-UNIT-FILE.percentj-wantedby.sh} (69%) create mode 100755 test/units/TEST-23-UNIT-FILE.runtime-bind-paths.sh rename test/units/{testsuite-23.service => TEST-23-UNIT-FILE.service} (84%) rename test/units/{testsuite-23.sh => TEST-23-UNIT-FILE.sh} (100%) create mode 100755 test/units/TEST-23-UNIT-FILE.start-stop-no-reload.sh rename test/units/{testsuite-23.statedir.sh => TEST-23-UNIT-FILE.statedir.sh} (100%) rename test/units/{testsuite-23.success-failure.sh => TEST-23-UNIT-FILE.success-failure.sh} (100%) rename test/units/{testsuite-23.type-exec.sh => TEST-23-UNIT-FILE.type-exec.sh} (100%) rename test/units/{testsuite-23.utmp.sh => TEST-23-UNIT-FILE.utmp.sh} (100%) rename test/units/{testsuite-23.verify-unit-files.sh => TEST-23-UNIT-FILE.verify-unit-files.sh} (100%) rename test/units/{testsuite-23.whoami.sh => TEST-23-UNIT-FILE.whoami.sh} (66%) rename test/units/{testsuite-24.service => TEST-24-CRYPTSETUP.service} (100%) rename test/units/{testsuite-24.sh => TEST-24-CRYPTSETUP.sh} (100%) rename test/units/{testsuite-25.service => TEST-25-IMPORT.service} (100%) rename test/units/{testsuite-25.sh => TEST-25-IMPORT.sh} (100%) rename test/units/{testsuite-26.service => TEST-26-SYSTEMCTL.service} (100%) rename test/units/{testsuite-26.sh => TEST-26-SYSTEMCTL.sh} (100%) rename test/units/{testsuite-29.service => TEST-29-PORTABLE.service} (100%) rename test/units/{testsuite-29.sh => TEST-29-PORTABLE.sh} (100%) rename test/units/{testsuite-30.service => TEST-30-ONCLOCKCHANGE.service} (100%) rename test/units/{testsuite-30.sh => TEST-30-ONCLOCKCHANGE.sh} (100%) rename test/units/{testsuite-31.service => TEST-31-DEVICE-ENUMERATION.service} (100%) rename test/units/{testsuite-31.sh => TEST-31-DEVICE-ENUMERATION.sh} (100%) rename test/units/{testsuite-32.service => TEST-32-OOMPOLICY.service} (100%) rename test/units/{testsuite-32.sh => TEST-32-OOMPOLICY.sh} (92%) rename test/units/{testsuite-34.service => TEST-34-DYNAMICUSERMIGRATE.service} (100%) rename test/units/{testsuite-34.sh => TEST-34-DYNAMICUSERMIGRATE.sh} (100%) rename test/units/{testsuite-35.service => TEST-35-LOGIN.service} (100%) rename test/units/{testsuite-35.sh => TEST-35-LOGIN.sh} (100%) rename test/units/{testsuite-36.service => TEST-36-NUMAPOLICY.service} (100%) rename test/units/{testsuite-36.sh => TEST-36-NUMAPOLICY.sh} (100%) rename test/units/{testsuite-38-sleep.service => TEST-38-FREEZER-sleep.service} (100%) rename test/units/{testsuite-38.service => TEST-38-FREEZER.service} (100%) rename test/units/{testsuite-38.sh => TEST-38-FREEZER.sh} (99%) rename test/units/{testsuite-43.service => TEST-43-PRIVATEUSER-UNPRIV.service} (100%) rename test/units/{testsuite-43.sh => TEST-43-PRIVATEUSER-UNPRIV.sh} (100%) rename test/units/{testsuite-44.service => TEST-44-LOG-NAMESPACE.service} (90%) rename test/units/{testsuite-44.sh => TEST-44-LOG-NAMESPACE.sh} (100%) rename test/units/{testsuite-45.service => TEST-45-TIMEDATE.service} (100%) rename test/units/{testsuite-45.sh => TEST-45-TIMEDATE.sh} (100%) rename test/units/{testsuite-46.service => TEST-46-HOMED.service} (100%) rename test/units/{testsuite-46.sh => TEST-46-HOMED.sh} (100%) rename test/units/{testsuite-50.DDI.sh => TEST-50-DISSECT.DDI.sh} (100%) rename test/units/{testsuite-50.dissect.sh => TEST-50-DISSECT.dissect.sh} (100%) rename test/units/{testsuite-50.mountfsd.sh => TEST-50-DISSECT.mountfsd.sh} (100%) rename test/units/{testsuite-50.service => TEST-50-DISSECT.service} (100%) rename test/units/{testsuite-50.sh => TEST-50-DISSECT.sh} (99%) rename test/units/{testsuite-50.sysext.sh => TEST-50-DISSECT.sysext.sh} (100%) rename test/units/{testsuite-52.service => TEST-52-HONORFIRSTSHUTDOWN.service} (76%) rename test/units/{testsuite-52.sh => TEST-52-HONORFIRSTSHUTDOWN.sh} (100%) rename test/units/{testsuite-53.service => TEST-53-ISSUE-16347.service} (100%) rename test/units/{testsuite-53.sh => TEST-53-ISSUE-16347.sh} (100%) rename test/units/{testsuite-64.service => TEST-54-CREDS.service} (86%) rename test/units/{testsuite-54.sh => TEST-54-CREDS.sh} (100%) rename test/units/{testsuite-55-testbloat.service => TEST-55-OOMD-testbloat.service} (90%) rename test/units/{testsuite-55-testchill.service => TEST-55-OOMD-testchill.service} (79%) rename test/units/{testsuite-55-testmunch.service => TEST-55-OOMD-testmunch.service} (85%) rename test/units/{testsuite-55-workload.slice => TEST-55-OOMD-workload.slice} (100%) rename test/units/{testsuite-55.service => TEST-55-OOMD.service} (88%) rename test/units/{testsuite-55.sh => TEST-55-OOMD.sh} (74%) rename test/units/{testsuite-58.service => TEST-58-REPART.service} (100%) rename test/units/{testsuite-58.sh => TEST-58-REPART.sh} (99%) rename test/units/{testsuite-59.service => TEST-59-RELOADING-RESTART.service} (100%) rename test/units/{testsuite-59.sh => TEST-59-RELOADING-RESTART.sh} (100%) rename test/units/{testsuite-60.service => TEST-60-MOUNT-RATELIMIT.service} (100%) rename test/units/{testsuite-60.sh => TEST-60-MOUNT-RATELIMIT.sh} (96%) rename test/units/{testsuite-62-1.service => TEST-62-RESTRICT-IFACES-1.service} (100%) rename test/units/{testsuite-62-2.service => TEST-62-RESTRICT-IFACES-2.service} (100%) rename test/units/{testsuite-62-3.service => TEST-62-RESTRICT-IFACES-3.service} (100%) rename test/units/{testsuite-62-4.service => TEST-62-RESTRICT-IFACES-4.service} (100%) rename test/units/{testsuite-62-5.service => TEST-62-RESTRICT-IFACES-5.service} (100%) rename test/units/{testsuite-62-6.service => TEST-62-RESTRICT-IFACES-6.service} (100%) rename test/units/{testsuite-62.service => TEST-62-RESTRICT-IFACES.service} (100%) rename test/units/{testsuite-62.sh => TEST-62-RESTRICT-IFACES.sh} (81%) rename test/units/{testsuite-63.service => TEST-63-PATH.service} (100%) rename test/units/{testsuite-63.sh => TEST-63-PATH.sh} (100%) rename test/units/{testsuite-54.service => TEST-64-UDEV-STORAGE.service} (83%) rename test/units/{testsuite-64.sh => TEST-64-UDEV-STORAGE.sh} (100%) rename test/units/{testsuite-65.service => TEST-65-ANALYZE.service} (100%) rename test/units/{testsuite-65.sh => TEST-65-ANALYZE.sh} (100%) rename test/units/{testsuite-66-deviceisolation.service => TEST-66-DEVICE-ISOLATION-device-isolation.service} (66%) rename test/units/{testsuite-66.sh => TEST-66-DEVICE-ISOLATION.sh} (64%) create mode 100644 test/units/TEST-66-DEVICEISOLATION.service rename test/units/{testsuite-67.service => TEST-67-INTEGRITY.service} (100%) rename test/units/{testsuite-67.sh => TEST-67-INTEGRITY.sh} (100%) rename test/units/{testsuite-68.service => TEST-68-PROPAGATE-EXIT-STATUS.service} (100%) rename test/units/{testsuite-68.sh => TEST-68-PROPAGATE-EXIT-STATUS.sh} (100%) rename test/units/{testsuite-69.service => TEST-69-SHUTDOWN.service} (100%) rename test/units/{testsuite-70.creds.sh => TEST-70-TPM2.creds.sh} (100%) rename test/units/{testsuite-70.cryptenroll.sh => TEST-70-TPM2.cryptenroll.sh} (100%) rename test/units/{testsuite-70.cryptsetup.sh => TEST-70-TPM2.cryptsetup.sh} (100%) rename test/units/{testsuite-70.measure.sh => TEST-70-TPM2.measure.sh} (100%) rename test/units/{testsuite-70.pcrextend.sh => TEST-70-TPM2.pcrextend.sh} (100%) rename test/units/{testsuite-70.pcrlock.sh => TEST-70-TPM2.pcrlock.sh} (100%) rename test/units/{testsuite-70.service => TEST-70-TPM2.service} (100%) rename test/units/{testsuite-70.sh => TEST-70-TPM2.sh} (100%) rename test/units/{testsuite-70.tpm2-setup.sh => TEST-70-TPM2.tpm2-setup.sh} (100%) rename test/units/{testsuite-71.service => TEST-71-HOSTNAME.service} (100%) rename test/units/{testsuite-71.sh => TEST-71-HOSTNAME.sh} (100%) rename test/units/{testsuite-72.service => TEST-72-SYSUPDATE.service} (100%) rename test/units/{testsuite-72.sh => TEST-72-SYSUPDATE.sh} (100%) rename test/units/{testsuite-73.service => TEST-73-LOCALE.service} (100%) rename test/units/{testsuite-73.sh => TEST-73-LOCALE.sh} (100%) rename test/units/{testsuite-74.battery-check.sh => TEST-74-AUX-UTILS.battery-check.sh} (100%) rename test/units/{testsuite-74.bootctl.sh => TEST-74-AUX-UTILS.bootctl.sh} (100%) rename test/units/{testsuite-74.busctl.sh => TEST-74-AUX-UTILS.busctl.sh} (100%) rename test/units/{testsuite-74.capsule.sh => TEST-74-AUX-UTILS.capsule.sh} (100%) rename test/units/{testsuite-74.cgls.sh => TEST-74-AUX-UTILS.cgls.sh} (100%) rename test/units/{testsuite-74.cgtop.sh => TEST-74-AUX-UTILS.cgtop.sh} (100%) rename test/units/{testsuite-74.coredump.sh => TEST-74-AUX-UTILS.coredump.sh} (99%) rename test/units/{testsuite-74.delta.sh => TEST-74-AUX-UTILS.delta.sh} (100%) rename test/units/{testsuite-74.escape.sh => TEST-74-AUX-UTILS.escape.sh} (100%) rename test/units/{testsuite-74.firstboot.sh => TEST-74-AUX-UTILS.firstboot.sh} (100%) rename test/units/{testsuite-74.id128.sh => TEST-74-AUX-UTILS.id128.sh} (100%) rename test/units/{testsuite-74.machine-id-setup.sh => TEST-74-AUX-UTILS.machine-id-setup.sh} (100%) rename test/units/{testsuite-74.modules-load.sh => TEST-74-AUX-UTILS.modules-load.sh} (100%) rename test/units/{testsuite-74.mount.sh => TEST-74-AUX-UTILS.mount.sh} (100%) rename test/units/{testsuite-74.network-generator.sh => TEST-74-AUX-UTILS.network-generator.sh} (100%) rename test/units/{testsuite-74.networkctl.sh => TEST-74-AUX-UTILS.networkctl.sh} (100%) rename test/units/{testsuite-74.path.sh => TEST-74-AUX-UTILS.path.sh} (100%) rename test/units/{testsuite-74.pstore.sh => TEST-74-AUX-UTILS.pstore.sh} (100%) rename test/units/{testsuite-74.run.sh => TEST-74-AUX-UTILS.run.sh} (100%) rename test/units/{testsuite-74.service => TEST-74-AUX-UTILS.service} (100%) rename test/units/{testsuite-74.sh => TEST-74-AUX-UTILS.sh} (100%) rename test/units/{testsuite-74.socket.sh => TEST-74-AUX-UTILS.socket.sh} (100%) rename test/units/{testsuite-74.ssh.sh => TEST-74-AUX-UTILS.ssh.sh} (100%) rename test/units/{testsuite-74.varlinkctl.sh => TEST-74-AUX-UTILS.varlinkctl.sh} (100%) rename test/units/{testsuite-74.vpick.sh => TEST-74-AUX-UTILS.vpick.sh} (100%) create mode 100644 test/units/TEST-75-RESOLVED.service rename test/units/{testsuite-75.sh => TEST-75-RESOLVED.sh} (100%) rename test/units/{testsuite-76.service => TEST-76-SYSCTL.service} (100%) rename test/units/{testsuite-76.sh => TEST-76-SYSCTL.sh} (100%) rename test/units/{testsuite-78.service => TEST-78-SIGQUEUE.service} (100%) rename test/units/{testsuite-78.sh => TEST-78-SIGQUEUE.sh} (100%) rename test/units/{testsuite-79.service => TEST-79-MEMPRESS.service} (100%) rename test/units/{testsuite-79.sh => TEST-79-MEMPRESS.sh} (94%) rename test/units/{testsuite-80.service => TEST-80-NOTIFYACCESS.service} (100%) rename test/units/{testsuite-80.sh => TEST-80-NOTIFYACCESS.sh} (100%) rename test/units/{testsuite-81.debug-generator.sh => TEST-81-GENERATORS.debug-generator.sh} (100%) rename test/units/{testsuite-81.environment-d-generator.sh => TEST-81-GENERATORS.environment-d-generator.sh} (100%) rename test/units/{testsuite-81.fstab-generator.sh => TEST-81-GENERATORS.fstab-generator.sh} (100%) rename test/units/{testsuite-81.getty-generator.sh => TEST-81-GENERATORS.getty-generator.sh} (100%) rename test/units/{testsuite-81.run-generator.sh => TEST-81-GENERATORS.run-generator.sh} (100%) rename test/units/{testsuite-81.service => TEST-81-GENERATORS.service} (100%) rename test/units/{testsuite-81.sh => TEST-81-GENERATORS.sh} (100%) rename test/units/{testsuite-81.system-update-generator.sh => TEST-81-GENERATORS.system-update-generator.sh} (100%) rename test/units/{testsuite-82.service => TEST-82-SOFTREBOOT.service} (100%) rename test/units/{testsuite-82.sh => TEST-82-SOFTREBOOT.sh} (79%) rename test/units/{testsuite-83.service => TEST-83-BTRFS.service} (100%) rename test/units/{testsuite-83.sh => TEST-83-BTRFS.sh} (100%) rename test/units/{testsuite-84.service => TEST-84-STORAGETM.service} (100%) rename test/units/{testsuite-84.sh => TEST-84-STORAGETM.sh} (100%) delete mode 100755 test/units/testsuite-23-short-lived.sh delete mode 100755 test/units/testsuite-23.JoinsNamespaceOf.sh delete mode 100755 test/units/testsuite-23.Upholds.sh delete mode 100755 test/units/testsuite-23.runtime-bind-paths.sh delete mode 100755 test/units/testsuite-23.start-stop-no-reload.sh delete mode 100644 test/units/testsuite-66.service delete mode 100644 test/units/testsuite-75.service diff --git a/mkosi.images/system/mkosi.conf b/mkosi.images/system/mkosi.conf index f7f32a07e6..7f1c5f571e 100644 --- a/mkosi.images/system/mkosi.conf +++ b/mkosi.images/system/mkosi.conf @@ -20,7 +20,7 @@ ExtraTrees= %O/minimal-1.root-%a.raw:/usr/share/minimal_1.raw %O/minimal-1.root-%a-verity.raw:/usr/share/minimal_1.verity %O/minimal-1.root-%a-verity-sig.raw:/usr/share/minimal_1.verity.sig - %O/minimal-base:/usr/share/testsuite-13-container-template + %O/minimal-base:/usr/share/TEST-13-NSPAWN-container-template Packages= acl diff --git a/test/testsuite-03.units/always-activating.service b/test/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.service similarity index 100% rename from test/testsuite-03.units/always-activating.service rename to test/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.service diff --git a/test/testsuite-03.units/always-activating.socket b/test/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.socket similarity index 100% rename from test/testsuite-03.units/always-activating.socket rename to test/TEST-03-JOBS/TEST-03-JOBS.units/always-activating.socket diff --git a/test/testsuite-03.units/fails-on-restart-restartdirect.service b/test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.service similarity index 100% rename from test/testsuite-03.units/fails-on-restart-restartdirect.service rename to test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.service diff --git a/test/testsuite-03.units/fails-on-restart-restartdirect.target b/test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.target similarity index 100% rename from test/testsuite-03.units/fails-on-restart-restartdirect.target rename to test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart-restartdirect.target diff --git a/test/testsuite-03.units/fails-on-restart.service b/test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.service similarity index 100% rename from test/testsuite-03.units/fails-on-restart.service rename to test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.service diff --git a/test/testsuite-03.units/fails-on-restart.target b/test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.target similarity index 100% rename from test/testsuite-03.units/fails-on-restart.target rename to test/TEST-03-JOBS/TEST-03-JOBS.units/fails-on-restart.target diff --git a/test/testsuite-03.units/hello-after-sleep.target b/test/TEST-03-JOBS/TEST-03-JOBS.units/hello-after-sleep.target similarity index 100% rename from test/testsuite-03.units/hello-after-sleep.target rename to test/TEST-03-JOBS/TEST-03-JOBS.units/hello-after-sleep.target diff --git a/test/testsuite-03.units/hello.service b/test/TEST-03-JOBS/TEST-03-JOBS.units/hello.service similarity index 100% rename from test/testsuite-03.units/hello.service rename to test/TEST-03-JOBS/TEST-03-JOBS.units/hello.service diff --git a/test/testsuite-03.units/propagatestopto-and-pullin.target b/test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-and-pullin.target similarity index 100% rename from test/testsuite-03.units/propagatestopto-and-pullin.target rename to test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-and-pullin.target diff --git a/test/testsuite-03.units/propagatestopto-indirect.target b/test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-indirect.target similarity index 100% rename from test/testsuite-03.units/propagatestopto-indirect.target rename to test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-indirect.target diff --git a/test/testsuite-03.units/propagatestopto-only.target b/test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-only.target similarity index 100% rename from test/testsuite-03.units/propagatestopto-only.target rename to test/TEST-03-JOBS/TEST-03-JOBS.units/propagatestopto-only.target diff --git a/test/testsuite-03.units/sleep-infinity-simple.service b/test/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-simple.service similarity index 100% rename from test/testsuite-03.units/sleep-infinity-simple.service rename to test/TEST-03-JOBS/TEST-03-JOBS.units/sleep-infinity-simple.service diff --git a/test/testsuite-03.units/sleep.service b/test/TEST-03-JOBS/TEST-03-JOBS.units/sleep.service similarity index 100% rename from test/testsuite-03.units/sleep.service rename to test/TEST-03-JOBS/TEST-03-JOBS.units/sleep.service diff --git a/test/testsuite-03.units/succeeds-on-restart-restartdirect.service b/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.service similarity index 66% rename from test/testsuite-03.units/succeeds-on-restart-restartdirect.service rename to test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.service index b05f2f8dcf..a2b9c339ad 100644 --- a/test/testsuite-03.units/succeeds-on-restart-restartdirect.service +++ b/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.service @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Service] Type=oneshot -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-03.units/succeeds-on-restart.sh +ExecStart=/usr/lib/systemd/tests/testdata/TEST-03-JOBS.units/succeeds-on-restart.sh Restart=on-failure RestartMode=direct diff --git a/test/testsuite-03.units/succeeds-on-restart-restartdirect.target b/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.target similarity index 100% rename from test/testsuite-03.units/succeeds-on-restart-restartdirect.target rename to test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart-restartdirect.target diff --git a/test/testsuite-03.units/succeeds-on-restart.service b/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.service similarity index 66% rename from test/testsuite-03.units/succeeds-on-restart.service rename to test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.service index d7b3c7a210..d0e9c2bc84 100644 --- a/test/testsuite-03.units/succeeds-on-restart.service +++ b/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.service @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Service] Type=oneshot -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-03.units/succeeds-on-restart.sh +ExecStart=/usr/lib/systemd/tests/testdata/TEST-03-JOBS.units/succeeds-on-restart.sh Restart=on-failure RestartMode=normal diff --git a/test/testsuite-03.units/succeeds-on-restart.sh b/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.sh similarity index 100% rename from test/testsuite-03.units/succeeds-on-restart.sh rename to test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.sh diff --git a/test/testsuite-03.units/succeeds-on-restart.target b/test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.target similarity index 100% rename from test/testsuite-03.units/succeeds-on-restart.target rename to test/TEST-03-JOBS/TEST-03-JOBS.units/succeeds-on-restart.target diff --git a/test/testsuite-03.units/unstoppable.service b/test/TEST-03-JOBS/TEST-03-JOBS.units/unstoppable.service similarity index 100% rename from test/testsuite-03.units/unstoppable.service rename to test/TEST-03-JOBS/TEST-03-JOBS.units/unstoppable.service diff --git a/test/TEST-03-JOBS/meson.build b/test/TEST-03-JOBS/meson.build index 8dec5f37e7..3484d21ba2 100644 --- a/test/TEST-03-JOBS/meson.build +++ b/test/TEST-03-JOBS/meson.build @@ -5,3 +5,5 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] + +testdata_subdirs += [meson.current_source_dir() / 'TEST-03-JOBS.units'] diff --git a/test/testsuite-04.units/delegated-cgroup-filtering.service b/test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/delegated-cgroup-filtering.service similarity index 100% rename from test/testsuite-04.units/delegated-cgroup-filtering.service rename to test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/delegated-cgroup-filtering.service diff --git a/test/testsuite-04.units/forever-print-hola.service b/test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/forever-print-hola.service similarity index 100% rename from test/testsuite-04.units/forever-print-hola.service rename to test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/forever-print-hola.service diff --git a/test/testsuite-04.units/logs-filtering.service b/test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/logs-filtering.service similarity index 100% rename from test/testsuite-04.units/logs-filtering.service rename to test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/logs-filtering.service diff --git a/test/testsuite-04.units/silent-success.service b/test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/silent-success.service similarity index 100% rename from test/testsuite-04.units/silent-success.service rename to test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/silent-success.service diff --git a/test/testsuite-04.units/verbose-success.service b/test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/verbose-success.service similarity index 100% rename from test/testsuite-04.units/verbose-success.service rename to test/TEST-04-JOURNAL/TEST-04-JOURNAL.units/verbose-success.service diff --git a/test/TEST-04-JOURNAL/meson.build b/test/TEST-04-JOURNAL/meson.build index 184f70ab72..5a0b073c02 100644 --- a/test/TEST-04-JOURNAL/meson.build +++ b/test/TEST-04-JOURNAL/meson.build @@ -8,3 +8,5 @@ integration_tests += [ 'storage' : 'persistent', }, ] + +testdata_subdirs += [meson.current_source_dir() / 'TEST-04-JOURNAL.units'] diff --git a/test/TEST-04-JOURNAL/test.sh b/test/TEST-04-JOURNAL/test.sh index f8f3a4b3e3..a7aa71fce3 100755 --- a/test/TEST-04-JOURNAL/test.sh +++ b/test/TEST-04-JOURNAL/test.sh @@ -20,7 +20,7 @@ test_append_files() { # Since we nuke the journal repeatedly during this test, let's redirect # stdout/stderr to the console as well to make the test a bit more debug-able. if ! get_bool "${INTERACTIVE_DEBUG:-}"; then - dropin_dir="${workspace:?}/etc/systemd/system/testsuite-04.service.d/" + dropin_dir="${workspace:?}/etc/systemd/system/TEST-04-JOURNAL.service.d/" mkdir -p "$dropin_dir" printf '[Service]\nStandardOutput=journal+console\nStandardError=journal+console' >"$dropin_dir/99-stdout.conf" fi diff --git a/test/testsuite-06.units/hola.service b/test/TEST-06-SELINUX/TEST-06-SELINUX.units/hola.service similarity index 100% rename from test/testsuite-06.units/hola.service rename to test/TEST-06-SELINUX/TEST-06-SELINUX.units/hola.service diff --git a/test/TEST-06-SELINUX/meson.build b/test/TEST-06-SELINUX/meson.build index 408e41ff28..e3cf0030c5 100644 --- a/test/TEST-06-SELINUX/meson.build +++ b/test/TEST-06-SELINUX/meson.build @@ -10,3 +10,5 @@ integration_tests += [ 'firmware' : 'uefi', }, ] + +testdata_subdirs += [meson.current_source_dir() / 'TEST-06-SELINUX.units'] diff --git a/test/testsuite-07.units/issue14566-repro.service b/test/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.service similarity index 67% rename from test/testsuite-07.units/issue14566-repro.service rename to test/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.service index 56805963b4..757f978101 100644 --- a/test/testsuite-07.units/issue14566-repro.service +++ b/test/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.service @@ -3,6 +3,6 @@ Description=Issue 14566 Repro [Service] -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-07.units/%N.sh +ExecStart=/usr/lib/systemd/tests/testdata/TEST-07-PID1.units/%N.sh ExecStopPost=/bin/true KillMode=mixed diff --git a/test/testsuite-07.units/issue14566-repro.sh b/test/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.sh similarity index 100% rename from test/testsuite-07.units/issue14566-repro.sh rename to test/TEST-07-PID1/TEST-07-PID1.units/issue14566-repro.sh diff --git a/test/testsuite-07.units/issue16115-repro-1.service b/test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-1.service similarity index 100% rename from test/testsuite-07.units/issue16115-repro-1.service rename to test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-1.service diff --git a/test/testsuite-07.units/issue16115-repro-2.service b/test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-2.service similarity index 100% rename from test/testsuite-07.units/issue16115-repro-2.service rename to test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-2.service diff --git a/test/testsuite-07.units/issue16115-repro-3.service b/test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-3.service similarity index 100% rename from test/testsuite-07.units/issue16115-repro-3.service rename to test/TEST-07-PID1/TEST-07-PID1.units/issue16115-repro-3.service diff --git a/test/testsuite-07.units/issue2467.service b/test/TEST-07-PID1/TEST-07-PID1.units/issue2467.service similarity index 100% rename from test/testsuite-07.units/issue2467.service rename to test/TEST-07-PID1/TEST-07-PID1.units/issue2467.service diff --git a/test/testsuite-07.units/issue2467.socket b/test/TEST-07-PID1/TEST-07-PID1.units/issue2467.socket similarity index 100% rename from test/testsuite-07.units/issue2467.socket rename to test/TEST-07-PID1/TEST-07-PID1.units/issue2467.socket diff --git a/test/testsuite-07.units/issue2730-alias.mount b/test/TEST-07-PID1/TEST-07-PID1.units/issue2730-alias.mount similarity index 100% rename from test/testsuite-07.units/issue2730-alias.mount rename to test/TEST-07-PID1/TEST-07-PID1.units/issue2730-alias.mount diff --git a/test/testsuite-07.units/issue2730.mount b/test/TEST-07-PID1/TEST-07-PID1.units/issue2730.mount similarity index 100% rename from test/testsuite-07.units/issue2730.mount rename to test/TEST-07-PID1/TEST-07-PID1.units/issue2730.mount diff --git a/test/testsuite-07.units/issue27953.service b/test/TEST-07-PID1/TEST-07-PID1.units/issue27953.service similarity index 100% rename from test/testsuite-07.units/issue27953.service rename to test/TEST-07-PID1/TEST-07-PID1.units/issue27953.service diff --git a/test/testsuite-07.units/issue3166-fail-on-restart.service b/test/TEST-07-PID1/TEST-07-PID1.units/issue3166-fail-on-restart.service similarity index 100% rename from test/testsuite-07.units/issue3166-fail-on-restart.service rename to test/TEST-07-PID1/TEST-07-PID1.units/issue3166-fail-on-restart.service diff --git a/test/testsuite-07.units/local-fs.target.wants/issue2730.mount b/test/TEST-07-PID1/TEST-07-PID1.units/local-fs.target.wants/issue2730.mount similarity index 100% rename from test/testsuite-07.units/local-fs.target.wants/issue2730.mount rename to test/TEST-07-PID1/TEST-07-PID1.units/local-fs.target.wants/issue2730.mount diff --git a/test/testsuite-07.units/pass-fds-to-exec-no.socket b/test/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-no.socket similarity index 100% rename from test/testsuite-07.units/pass-fds-to-exec-no.socket rename to test/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-no.socket diff --git a/test/testsuite-07.units/pass-fds-to-exec-yes.socket b/test/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-yes.socket similarity index 100% rename from test/testsuite-07.units/pass-fds-to-exec-yes.socket rename to test/TEST-07-PID1/TEST-07-PID1.units/pass-fds-to-exec-yes.socket diff --git a/test/TEST-07-PID1/meson.build b/test/TEST-07-PID1/meson.build index 8dec5f37e7..76ed3e7581 100644 --- a/test/TEST-07-PID1/meson.build +++ b/test/TEST-07-PID1/meson.build @@ -5,3 +5,5 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] + +testdata_subdirs += [meson.current_source_dir() / 'TEST-07-PID1.units'] diff --git a/test/TEST-08-INITRD/test.sh b/test/TEST-08-INITRD/test.sh index 3ad60f1a94..badb6cb31a 100755 --- a/test/TEST-08-INITRD/test.sh +++ b/test/TEST-08-INITRD/test.sh @@ -80,7 +80,7 @@ check_result_qemu_hook() { # Setup a one shot service in initrd that creates a dummy bind mount under /run # to check if the mount persists though the initrd transition. The "check" part -# is in the respective testsuite-08.sh script. +# is in the respective TEST-08-INITRD.sh script. # # See: https://github.com/systemd/systemd/issues/28452 run_qemu_hook() { diff --git a/test/TEST-13-NSPAWN/test.sh b/test/TEST-13-NSPAWN/test.sh index 744e793ac2..9a0404f4b0 100755 --- a/test/TEST-13-NSPAWN/test.sh +++ b/test/TEST-13-NSPAWN/test.sh @@ -13,7 +13,7 @@ TEST_FORCE_NEWIMAGE=1 test_append_files() { local workspace="${1:?}" - local container="$workspace/usr/share/testsuite-13-container-template" + local container="$workspace/usr/share/TEST-13-NSPAWN-container-template" # For virtual wlan interface. instmods mac80211_hwsim diff --git a/test/testsuite-16.units/extend-timeout.sh b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh similarity index 100% rename from test/testsuite-16.units/extend-timeout.sh rename to test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh diff --git a/test/testsuite-16.units/fail-runtime.service b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-runtime.service similarity index 86% rename from test/testsuite-16.units/fail-runtime.service rename to test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-runtime.service index 1d74963a30..7380994dbd 100644 --- a/test/testsuite-16.units/fail-runtime.service +++ b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-runtime.service @@ -10,4 +10,4 @@ TimeoutStartSec=4 TimeoutStopSec=4 RuntimeMaxSec=10 Environment=SERVICE=fail_runtime extend_timeout_interval=5 sleep_interval=7 start_intervals=0 run_intervals=2 stop_intervals=0 -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-16.units/extend-timeout.sh +ExecStart=/usr/lib/systemd/tests/testdata/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh diff --git a/test/testsuite-16.units/fail-start.service b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-start.service similarity index 86% rename from test/testsuite-16.units/fail-start.service rename to test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-start.service index 38aebf2a8f..984d8f9864 100644 --- a/test/testsuite-16.units/fail-start.service +++ b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-start.service @@ -11,4 +11,4 @@ TimeoutStartSec=10 TimeoutStopSec=4 RuntimeMaxSec=4 Environment=SERVICE=fail_start extend_timeout_interval=5 sleep_interval=7 start_intervals=2 run_intervals=0 stop_intervals=0 -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-16.units/extend-timeout.sh +ExecStart=/usr/lib/systemd/tests/testdata/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh diff --git a/test/testsuite-16.units/fail-stop.service b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-stop.service similarity index 90% rename from test/testsuite-16.units/fail-stop.service rename to test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-stop.service index 1910ac9ff4..4293d7e8bd 100644 --- a/test/testsuite-16.units/fail-stop.service +++ b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/fail-stop.service @@ -10,7 +10,7 @@ TimeoutStartSec=4 TimeoutStopSec=10 RuntimeMaxSec=4 Environment=SERVICE=fail_stop extend_timeout_interval=5 sleep_interval=7 start_intervals=0 run_intervals=0 stop_intervals=2 -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-16.units/extend-timeout.sh +ExecStart=/usr/lib/systemd/tests/testdata/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh # Due to 6041a7ee2c1bbff6301082f192fc1b0882400d42 SIGTERM isn't sent as the service shuts down with STOPPING=1 # This file makes the test assess.sh quicker by notifing it that this test has finished. ExecStopPost=/bin/bash -c '[[ $SERVICE_RESULT == timeout && $EXIT_CODE == killed ]] && touch /fail_runtime.terminated' diff --git a/test/testsuite-16.units/success-all.service b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-all.service similarity index 87% rename from test/testsuite-16.units/success-all.service rename to test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-all.service index 1fdc363f69..7f26084c7a 100644 --- a/test/testsuite-16.units/success-all.service +++ b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-all.service @@ -12,4 +12,4 @@ TimeoutStartSec=4 TimeoutStopSec=4 RuntimeMaxSec=4 Environment=SERVICE=success_all extend_timeout_interval=4 sleep_interval=2 start_intervals=3 run_intervals=3 stop_intervals=3 -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-16.units/extend-timeout.sh +ExecStart=/usr/lib/systemd/tests/testdata/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh diff --git a/test/testsuite-16.units/success-runtime.service b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-runtime.service similarity index 84% rename from test/testsuite-16.units/success-runtime.service rename to test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-runtime.service index 2f5744d15e..33a36f3ba2 100644 --- a/test/testsuite-16.units/success-runtime.service +++ b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-runtime.service @@ -11,4 +11,4 @@ TimeoutStartSec=4 TimeoutStopSec=4 RuntimeMaxSec=8 Environment=SERVICE=success_runtime extend_timeout_interval=4 sleep_interval=6 start_intervals=0 run_intervals=1 stop_intervals=0 -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-16.units/extend-timeout.sh +ExecStart=/usr/lib/systemd/tests/testdata/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh diff --git a/test/testsuite-16.units/success-start.service b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-start.service similarity index 85% rename from test/testsuite-16.units/success-start.service rename to test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-start.service index be518e9870..0453b34ff3 100644 --- a/test/testsuite-16.units/success-start.service +++ b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-start.service @@ -10,4 +10,4 @@ TimeoutStartSec=8 TimeoutStopSec=4 RuntimeMaxSec=4 Environment=SERVICE=success_start extend_timeout_interval=4 sleep_interval=6 start_intervals=1 run_intervals=0 stop_intervals=0 -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-16.units/extend-timeout.sh +ExecStart=/usr/lib/systemd/tests/testdata/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh diff --git a/test/testsuite-16.units/success-stop.service b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-stop.service similarity index 85% rename from test/testsuite-16.units/success-stop.service rename to test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-stop.service index 2bd3e3e3ba..3719f54fd7 100644 --- a/test/testsuite-16.units/success-stop.service +++ b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.units/success-stop.service @@ -10,4 +10,4 @@ TimeoutStartSec=4 TimeoutStopSec=8 RuntimeMaxSec=4 Environment=SERVICE=success_stop extend_timeout_interval=4 sleep_interval=6 start_intervals=0 run_intervals=0 stop_intervals=1 -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-16.units/extend-timeout.sh +ExecStart=/usr/lib/systemd/tests/testdata/TEST-16-EXTEND-TIMEOUT.units/extend-timeout.sh diff --git a/test/TEST-16-EXTEND-TIMEOUT/meson.build b/test/TEST-16-EXTEND-TIMEOUT/meson.build index 8dec5f37e7..75cf2029f9 100644 --- a/test/TEST-16-EXTEND-TIMEOUT/meson.build +++ b/test/TEST-16-EXTEND-TIMEOUT/meson.build @@ -5,3 +5,5 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] + +testdata_subdirs += [meson.current_source_dir() / 'TEST-16-EXTEND-TIMEOUT.units'] diff --git a/test/testsuite-23.units/testsuite-23-binds-to.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-binds-to.service similarity index 52% rename from test/testsuite-23.units/testsuite-23-binds-to.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-binds-to.service index 9a3e31b080..022c37e547 100644 --- a/test/testsuite-23.units/testsuite-23-binds-to.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-binds-to.service @@ -1,10 +1,10 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] Description=Unit with BindsTo= -BindsTo=testsuite-23-bound-by.service -After=testsuite-23-bound-by.service +BindsTo=TEST-23-UNIT-FILE-bound-by.service +After=TEST-23-UNIT-FILE-bound-by.service [Service] ExecStart=sleep infinity # --kill-who= (no 'm') to check that the short form is accepted -ExecStopPost=systemctl kill --kill-whom=main -sRTMIN+1 testsuite-23.service +ExecStopPost=systemctl kill --kill-whom=main -sRTMIN+1 TEST-23-UNIT-FILE.service diff --git a/test/testsuite-23.units/testsuite-23-bound-by.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-bound-by.service similarity index 100% rename from test/testsuite-23.units/testsuite-23-bound-by.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-bound-by.service diff --git a/test/testsuite-23.units/testsuite-23-fail.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-fail.service similarity index 70% rename from test/testsuite-23.units/testsuite-23-fail.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-fail.service index 597810797d..b78e6b438e 100644 --- a/test/testsuite-23.units/testsuite-23-fail.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-fail.service @@ -1,7 +1,7 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] Description=Failing unit -OnFailure=testsuite-23-uphold.service +OnFailure=TEST-23-UNIT-FILE-uphold.service [Service] ExecStart=false diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-1.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-1.service similarity index 100% rename from test/testsuite-23.units/testsuite-23-joins-namespace-of-1.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-1.service diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-2.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-2.service similarity index 73% rename from test/testsuite-23.units/testsuite-23-joins-namespace-of-2.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-2.service index 36b4c272fd..42dd44555a 100644 --- a/test/testsuite-23.units/testsuite-23-joins-namespace-of-2.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-2.service @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] -JoinsNamespaceOf=testsuite-23-joins-namespace-of-1.service +JoinsNamespaceOf=TEST-23-UNIT-FILE-joins-namespace-of-1.service [Service] Type=oneshot diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-3.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-3.service similarity index 73% rename from test/testsuite-23.units/testsuite-23-joins-namespace-of-3.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-3.service index 9094445020..f745481f78 100644 --- a/test/testsuite-23.units/testsuite-23-joins-namespace-of-3.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-3.service @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] -JoinsNamespaceOf=testsuite-23-joins-namespace-of-1.service +JoinsNamespaceOf=TEST-23-UNIT-FILE-joins-namespace-of-1.service [Service] Type=oneshot diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-4.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-4.service similarity index 77% rename from test/testsuite-23.units/testsuite-23-joins-namespace-of-4.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-4.service index a70f8fca99..a0ff403986 100644 --- a/test/testsuite-23.units/testsuite-23-joins-namespace-of-4.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-4.service @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] -JoinsNamespaceOf=testsuite-23-joins-namespace-of-5.service +JoinsNamespaceOf=TEST-23-UNIT-FILE-joins-namespace-of-5.service [Service] Type=notify diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-5.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-5.service similarity index 100% rename from test/testsuite-23.units/testsuite-23-joins-namespace-of-5.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-5.service diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-6.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-6.service similarity index 77% rename from test/testsuite-23.units/testsuite-23-joins-namespace-of-6.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-6.service index dae533cc36..9227bdaa05 100644 --- a/test/testsuite-23.units/testsuite-23-joins-namespace-of-6.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-6.service @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] -JoinsNamespaceOf=testsuite-23-joins-namespace-of-8.service +JoinsNamespaceOf=TEST-23-UNIT-FILE-joins-namespace-of-8.service [Service] Type=notify diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-7.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-7.service similarity index 77% rename from test/testsuite-23.units/testsuite-23-joins-namespace-of-7.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-7.service index 60c083a3f4..a5d62c651d 100644 --- a/test/testsuite-23.units/testsuite-23-joins-namespace-of-7.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-7.service @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] -JoinsNamespaceOf=testsuite-23-joins-namespace-of-8.service +JoinsNamespaceOf=TEST-23-UNIT-FILE-joins-namespace-of-8.service [Service] Type=oneshot diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-8.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-8.service similarity index 100% rename from test/testsuite-23.units/testsuite-23-joins-namespace-of-8.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-8.service diff --git a/test/testsuite-23.units/testsuite-23-joins-namespace-of-9.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-9.service similarity index 77% rename from test/testsuite-23.units/testsuite-23-joins-namespace-of-9.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-9.service index 6c64873b24..a30f92af80 100644 --- a/test/testsuite-23.units/testsuite-23-joins-namespace-of-9.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-joins-namespace-of-9.service @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] -JoinsNamespaceOf=testsuite-23-joins-namespace-of-8.service +JoinsNamespaceOf=TEST-23-UNIT-FILE-joins-namespace-of-8.service [Service] Type=oneshot diff --git a/test/testsuite-23.units/testsuite-23-namespaced.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-namespaced.service similarity index 88% rename from test/testsuite-23.units/testsuite-23-namespaced.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-namespaced.service index 46c27ca5d8..82eb74c0bd 100644 --- a/test/testsuite-23.units/testsuite-23-namespaced.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-namespaced.service @@ -7,7 +7,7 @@ Type=notify RemainAfterExit=yes MountAPIVFS=yes PrivateTmp=yes -BindPaths=/run/testsuite-23-marker-fixed:/tmp/testfile-marker-fixed +BindPaths=/run/TEST-23-UNIT-FILE-marker-fixed:/tmp/testfile-marker-fixed InaccessiblePaths=/run/inaccessible ExecStartPre=grep -q -F MARKER_FIXED /tmp/testfile-marker-fixed ExecStart=sh -c 'systemd-notify --ready; until grep -q -F MARKER_RUNTIME /tmp/testfile-marker-runtime; do sleep 0.1; done; test ! -f /run/inaccessible/testfile-marker-fixed' diff --git a/test/testsuite-23.units/testsuite-23-non-namespaced.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-non-namespaced.service similarity index 100% rename from test/testsuite-23.units/testsuite-23-non-namespaced.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-non-namespaced.service diff --git a/test/testsuite-23.units/testsuite-23-oneshot-restartforce.sh b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-oneshot-restartforce.sh similarity index 100% rename from test/testsuite-23.units/testsuite-23-oneshot-restartforce.sh rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-oneshot-restartforce.sh diff --git a/test/testsuite-23.units/testsuite-23-openfile-server.socket b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server.socket similarity index 100% rename from test/testsuite-23.units/testsuite-23-openfile-server.socket rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server.socket diff --git a/test/testsuite-23.units/testsuite-23-openfile-server@.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-openfile-server@.service similarity index 100% rename from test/testsuite-23.units/testsuite-23-openfile-server@.service rename to test/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/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-one.service new file mode 100644 index 0000000000..0739aaf31d --- /dev/null +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-one.service @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[Unit] +Description=Stop Propagation Receiver +Wants=TEST-23-UNIT-FILE-prop-stop-two.service +After=TEST-23-UNIT-FILE-prop-stop-two.service +StopPropagatedFrom=TEST-23-UNIT-FILE-prop-stop-two.service + +[Service] +ExecStart=sleep infinity +ExecStopPost=systemctl kill --kill-whom=main -sUSR2 TEST-23-UNIT-FILE.service diff --git a/test/testsuite-23.units/testsuite-23-prop-stop-two.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-two.service similarity index 100% rename from test/testsuite-23.units/testsuite-23-prop-stop-two.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-prop-stop-two.service diff --git a/test/testsuite-23.units/testsuite-23-retry-fail.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-fail.service similarity index 60% rename from test/testsuite-23.units/testsuite-23-retry-fail.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-fail.service index 2e0972cbf0..319757a44d 100644 --- a/test/testsuite-23.units/testsuite-23-retry-fail.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-fail.service @@ -5,5 +5,5 @@ Description=Failed Dependency Unit [Service] Type=oneshot RemainAfterExit=yes -ExecStart=sh -c "if [ -f /tmp/testsuite-23-retry-fail ]; then exit 0; else exit 1; fi" +ExecStart=sh -c "if [ -f /tmp/TEST-23-UNIT-FILE-retry-fail ]; then exit 0; else exit 1; fi" Restart=no diff --git a/test/testsuite-23.units/testsuite-23-retry-upheld.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-upheld.service similarity index 60% rename from test/testsuite-23.units/testsuite-23-retry-upheld.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-upheld.service index 3c20e4338c..722a3b479b 100644 --- a/test/testsuite-23.units/testsuite-23-retry-upheld.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-upheld.service @@ -1,8 +1,8 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] Description=Upheld Unit -Requires=testsuite-23-retry-fail.service -After=testsuite-23-retry-fail.service +Requires=TEST-23-UNIT-FILE-retry-fail.service +After=TEST-23-UNIT-FILE-retry-fail.service [Service] Type=oneshot diff --git a/test/testsuite-23.units/testsuite-23-retry-uphold.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-uphold.service similarity index 70% rename from test/testsuite-23.units/testsuite-23-retry-uphold.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-uphold.service index 7f15f068b4..829ea5c39e 100644 --- a/test/testsuite-23.units/testsuite-23-retry-uphold.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-retry-uphold.service @@ -1,7 +1,7 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] Description=Upholding Unit -Upholds=testsuite-23-retry-upheld.service +Upholds=TEST-23-UNIT-FILE-retry-upheld.service [Service] ExecStart=sleep infinity diff --git a/test/testsuite-23.units/testsuite-23-short-lived.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-short-lived.service similarity index 74% rename from test/testsuite-23.units/testsuite-23-short-lived.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-short-lived.service index 2dcb2ae228..ac9583f916 100644 --- a/test/testsuite-23.units/testsuite-23-short-lived.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-short-lived.service @@ -8,4 +8,4 @@ StartLimitBurst=15 StartLimitIntervalSec=1h [Service] -ExecStart=/usr/lib/systemd/tests/testdata/units/testsuite-23-short-lived.sh +ExecStart=/usr/lib/systemd/tests/testdata/units/TEST-23-UNIT-FILE-short-lived.sh diff --git a/test/testsuite-23.units/testsuite-23-specifier-j-depends-wants.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-depends-wants.service similarity index 100% rename from test/testsuite-23.units/testsuite-23-specifier-j-depends-wants.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-depends-wants.service diff --git a/test/testsuite-23.units/testsuite-23-specifier-j-wants.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-wants.service similarity index 65% rename from test/testsuite-23.units/testsuite-23-specifier-j-wants.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-wants.service index 9abb257df4..5aeee9f8d6 100644 --- a/test/testsuite-23.units/testsuite-23-specifier-j-wants.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-specifier-j-wants.service @@ -1,8 +1,8 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] Description=Wants with percent-j specifier -Wants=testsuite-23-specifier-j-depends-%j.service -After=testsuite-23-specifier-j-depends-%j.service +Wants=TEST-23-UNIT-FILE-specifier-j-depends-%j.service +After=TEST-23-UNIT-FILE-specifier-j-depends-%j.service [Service] Type=oneshot diff --git a/test/testsuite-23.units/testsuite-23-success.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-success.service similarity index 72% rename from test/testsuite-23.units/testsuite-23-success.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-success.service index 2ace6fa370..1ae6271fcc 100644 --- a/test/testsuite-23.units/testsuite-23-success.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-success.service @@ -1,7 +1,7 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] Description=Succeeding unit -OnSuccess=testsuite-23-fail.service +OnSuccess=TEST-23-UNIT-FILE-fail.service [Service] ExecStart=true diff --git a/test/testsuite-23.units/testsuite-23-upheldby-install.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-upheldby-install.service similarity index 76% rename from test/testsuite-23.units/testsuite-23-upheldby-install.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-upheldby-install.service index bcfacd21dd..edb8fcb2e9 100644 --- a/test/testsuite-23.units/testsuite-23-upheldby-install.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-upheldby-install.service @@ -6,4 +6,4 @@ Description=Unit that sets UpheldBy= through [Install] ExecStart=sleep infinity [Install] -UpheldBy=testsuite-23-retry-uphold.service +UpheldBy=TEST-23-UNIT-FILE-retry-uphold.service diff --git a/test/testsuite-23.units/testsuite-23-uphold.service b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-uphold.service similarity index 71% rename from test/testsuite-23.units/testsuite-23-uphold.service rename to test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-uphold.service index 67f0ac8859..36c5dae7d3 100644 --- a/test/testsuite-23.units/testsuite-23-uphold.service +++ b/test/TEST-23-UNIT-FILE/TEST-23-UNIT-FILE.units/TEST-23-UNIT-FILE-uphold.service @@ -1,7 +1,7 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] Description=Upholding Unit -Upholds=testsuite-23-short-lived.service +Upholds=TEST-23-UNIT-FILE-short-lived.service [Service] ExecStart=sleep infinity diff --git a/test/TEST-23-UNIT-FILE/meson.build b/test/TEST-23-UNIT-FILE/meson.build index 8dec5f37e7..3f44662ae3 100644 --- a/test/TEST-23-UNIT-FILE/meson.build +++ b/test/TEST-23-UNIT-FILE/meson.build @@ -5,3 +5,5 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] + +testdata_subdirs += [meson.current_source_dir() / 'TEST-23-UNIT-FILE.units'] diff --git a/test/testsuite-30.units/systemd-timedated.service.d/watchdog.conf b/test/TEST-30-ONCLOCKCHANGE/TEST-30-ONCLOCKCHANGE.units/systemd-timedated.service.d/watchdog.conf similarity index 100% rename from test/testsuite-30.units/systemd-timedated.service.d/watchdog.conf rename to test/TEST-30-ONCLOCKCHANGE/TEST-30-ONCLOCKCHANGE.units/systemd-timedated.service.d/watchdog.conf diff --git a/test/TEST-30-ONCLOCKCHANGE/meson.build b/test/TEST-30-ONCLOCKCHANGE/meson.build index 8dec5f37e7..174ec42867 100644 --- a/test/TEST-30-ONCLOCKCHANGE/meson.build +++ b/test/TEST-30-ONCLOCKCHANGE/meson.build @@ -5,3 +5,5 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] + +testdata_subdirs += [meson.current_source_dir() / 'TEST-30-ONCLOCKCHANGE.units'] diff --git a/test/testsuite-52.units/test-honor-first-shutdown.service b/test/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.service similarity index 73% rename from test/testsuite-52.units/test-honor-first-shutdown.service rename to test/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.service index abcf578402..bbeac3a74e 100644 --- a/test/testsuite-52.units/test-honor-first-shutdown.service +++ b/test/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.service @@ -4,7 +4,7 @@ Description=Honor First Shutdown feature After=multi-user.target [Service] -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-52.units/%N.sh +ExecStart=/usr/lib/systemd/tests/testdata/TEST-52-HONORFIRSTSHUTDOWN.units/%N.sh ExecStop=sh -c 'kill -KILL $MAINPID' FailureAction=reboot diff --git a/test/testsuite-52.units/test-honor-first-shutdown.sh b/test/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.sh similarity index 100% rename from test/testsuite-52.units/test-honor-first-shutdown.sh rename to test/TEST-52-HONORFIRSTSHUTDOWN/TEST-52-HONORFIRSTSHUTDOWN.units/test-honor-first-shutdown.sh diff --git a/test/TEST-52-HONORFIRSTSHUTDOWN/meson.build b/test/TEST-52-HONORFIRSTSHUTDOWN/meson.build index 8dec5f37e7..08503e8822 100644 --- a/test/TEST-52-HONORFIRSTSHUTDOWN/meson.build +++ b/test/TEST-52-HONORFIRSTSHUTDOWN/meson.build @@ -5,3 +5,5 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] + +testdata_subdirs += [meson.current_source_dir() / 'TEST-52-HONORFIRSTSHUTDOWN.units'] diff --git a/test/testsuite-63.units/test63-glob.path b/test/TEST-63-PATH/TEST-63-PATH.units/test63-glob.path similarity index 100% rename from test/testsuite-63.units/test63-glob.path rename to test/TEST-63-PATH/TEST-63-PATH.units/test63-glob.path diff --git a/test/testsuite-63.units/test63-glob.service b/test/TEST-63-PATH/TEST-63-PATH.units/test63-glob.service similarity index 100% rename from test/testsuite-63.units/test63-glob.service rename to test/TEST-63-PATH/TEST-63-PATH.units/test63-glob.service diff --git a/test/testsuite-63.units/test63-issue-24577-dep.service b/test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577-dep.service similarity index 100% rename from test/testsuite-63.units/test63-issue-24577-dep.service rename to test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577-dep.service diff --git a/test/testsuite-63.units/test63-issue-24577.path b/test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.path similarity index 100% rename from test/testsuite-63.units/test63-issue-24577.path rename to test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.path diff --git a/test/testsuite-63.units/test63-issue-24577.service b/test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.service similarity index 100% rename from test/testsuite-63.units/test63-issue-24577.service rename to test/TEST-63-PATH/TEST-63-PATH.units/test63-issue-24577.service diff --git a/test/testsuite-63.units/test63-pr-30768.path b/test/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.path similarity index 100% rename from test/testsuite-63.units/test63-pr-30768.path rename to test/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.path diff --git a/test/testsuite-63.units/test63-pr-30768.service b/test/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.service similarity index 100% rename from test/testsuite-63.units/test63-pr-30768.service rename to test/TEST-63-PATH/TEST-63-PATH.units/test63-pr-30768.service diff --git a/test/testsuite-63.units/test63.path b/test/TEST-63-PATH/TEST-63-PATH.units/test63.path similarity index 100% rename from test/testsuite-63.units/test63.path rename to test/TEST-63-PATH/TEST-63-PATH.units/test63.path diff --git a/test/testsuite-63.units/test63.service b/test/TEST-63-PATH/TEST-63-PATH.units/test63.service similarity index 100% rename from test/testsuite-63.units/test63.service rename to test/TEST-63-PATH/TEST-63-PATH.units/test63.service diff --git a/test/TEST-63-PATH/meson.build b/test/TEST-63-PATH/meson.build index 8dec5f37e7..4aa3afdf7a 100644 --- a/test/TEST-63-PATH/meson.build +++ b/test/TEST-63-PATH/meson.build @@ -5,3 +5,5 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] + +testdata_subdirs += [meson.current_source_dir() / 'TEST-63-PATH.units'] diff --git a/test/testsuite-80.units/fdstore-nopin.service b/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-nopin.service similarity index 54% rename from test/testsuite-80.units/fdstore-nopin.service rename to test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-nopin.service index 29ffd23033..f65885345f 100644 --- a/test/testsuite-80.units/fdstore-nopin.service +++ b/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-nopin.service @@ -3,4 +3,4 @@ Type=notify NotifyAccess=all FileDescriptorStoreMax=10 FileDescriptorStorePreserve=restart -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-80.units/fdstore-pin.sh 0 +ExecStart=/usr/lib/systemd/tests/testdata/TEST-80-NOTIFYACCESS.units/fdstore-pin.sh 0 diff --git a/test/testsuite-80.units/fdstore-pin.service b/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.service similarity index 53% rename from test/testsuite-80.units/fdstore-pin.service rename to test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.service index 913daa2725..393b5ac681 100644 --- a/test/testsuite-80.units/fdstore-pin.service +++ b/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.service @@ -3,4 +3,4 @@ Type=notify NotifyAccess=all FileDescriptorStoreMax=10 FileDescriptorStorePreserve=yes -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-80.units/fdstore-pin.sh 1 +ExecStart=/usr/lib/systemd/tests/testdata/TEST-80-NOTIFYACCESS.units/fdstore-pin.sh 1 diff --git a/test/testsuite-80.units/fdstore-pin.sh b/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.sh similarity index 100% rename from test/testsuite-80.units/fdstore-pin.sh rename to test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.sh diff --git a/test/testsuite-80.units/fdstore-pin.target b/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/fdstore-pin.target similarity index 100% rename from test/testsuite-80.units/fdstore-pin.target rename to test/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/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/notify.service new file mode 100644 index 0000000000..5693be613d --- /dev/null +++ b/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/notify.service @@ -0,0 +1,4 @@ +[Service] +Type=notify +NotifyAccess=all +ExecStart=/usr/lib/systemd/tests/testdata/TEST-80-NOTIFYACCESS.units/test.sh diff --git a/test/testsuite-80.units/test.sh b/test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/test.sh similarity index 100% rename from test/testsuite-80.units/test.sh rename to test/TEST-80-NOTIFYACCESS/TEST-80-NOTIFYACCESS.units/test.sh diff --git a/test/TEST-80-NOTIFYACCESS/meson.build b/test/TEST-80-NOTIFYACCESS/meson.build index 8dec5f37e7..f78c6fd732 100644 --- a/test/TEST-80-NOTIFYACCESS/meson.build +++ b/test/TEST-80-NOTIFYACCESS/meson.build @@ -5,3 +5,5 @@ integration_tests += [ 'name' : fs.name(meson.current_source_dir()), }, ] + +testdata_subdirs += [meson.current_source_dir() / 'TEST-80-NOTIFYACCESS.units'] diff --git a/test/integration-test-wrapper.py b/test/integration-test-wrapper.py index c41ca8e55a..6e2c0aede7 100755 --- a/test/integration-test-wrapper.py +++ b/test/integration-test-wrapper.py @@ -43,7 +43,6 @@ def main(): parser.add_argument('--meson-source-dir', required=True, type=Path) parser.add_argument('--meson-build-dir', required=True, type=Path) parser.add_argument('--test-name', required=True) - parser.add_argument('--test-number', required=True) parser.add_argument('--storage', required=True) parser.add_argument('--firmware', required=True) parser.add_argument('--slow', action=argparse.BooleanOptionalAction) @@ -59,7 +58,7 @@ def main(): exit(77) name = args.test_name + (f"-{i}" if (i := os.getenv("MESON_TEST_ITERATION")) else "") - test_unit = f"testsuite-{args.test_number}.service" + test_unit = f"{args.test_name}.service" dropin = textwrap.dedent( """\ @@ -130,7 +129,7 @@ def main(): '--kernel-command-line-extra', ' '.join([ 'systemd.hostname=H', - f"SYSTEMD_UNIT_PATH=/usr/lib/systemd/tests/testdata/testsuite-{args.test_number}.units:/usr/lib/systemd/tests/testdata/units:", + f"SYSTEMD_UNIT_PATH=/usr/lib/systemd/tests/testdata/{args.test_name}.units:/usr/lib/systemd/tests/testdata/units:", f"systemd.unit={test_unit}", 'systemd.mask=systemd-networkd-wait-online.service', *( diff --git a/test/meson.build b/test/meson.build index 37c6a671ad..26fbd56282 100644 --- a/test/meson.build +++ b/test/meson.build @@ -1,75 +1,5 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -if install_tests - foreach subdir : [ - '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', - 'testsuite-03.units', - 'testsuite-04.units', - 'testsuite-06.units', - 'testsuite-07.units', - 'testsuite-16.units', - 'testsuite-23.units', - 'testsuite-30.units', - 'testsuite-52.units', - 'testsuite-63.units', - 'testsuite-80.units', - ] - # 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. - if meson.version().version_compare('<1.3.0') - if not rsync.found() - error('rsync is required to install the integration test data') - endif - - rsync_r = rsync.full_path() + ' -rlpt --exclude .gitattributes --exclude 25-default.link -- "@0@" "${DESTDIR:-}@1@"' - meson.add_install_script(sh, '-c', - rsync_r.format(meson.current_source_dir() / subdir, testdata_dir)) - else - install_subdir(subdir, - exclude_files : ['.gitattributes', '25-default.link'], - install_dir : testdata_dir, - follow_symlinks : false) - endif - endforeach - - # test-network/conf/25-default.link is a local symlink that becomes dangling when installed, so we - # exclude it and create the correct symlink here. - meson.add_install_script(sh, '-c', ln_s.format(networkdir / '99-default.link', - testdata_dir / 'test-network/conf/25-default.link')) - - install_data(kbd_model_map, - install_dir : testdata_dir + '/test-keymap-util') - - if conf.get('HAVE_ZSTD') == 1 and efi_arch != '' - install_subdir('test-bcd', - exclude_files : '.gitattributes', - install_dir : testdata_dir) - endif - if conf.get('ENABLE_RESOLVE') == 1 - install_subdir('test-resolve', - exclude_files : '.gitattributes', - install_dir : testdata_dir) - endif - - # The unit tests implemented as shell scripts expect to find testdata/ - # in the directory where they are stored. - meson.add_install_script(sh, '-c', ln_s.format(testdata_dir, - unittestsdir / 'testdata')) -endif - -############################################################ - if conf.get('ENABLE_SYSUSERS') == 1 test_sysusers_sh = configure_file( input : 'test-sysusers.sh.in', @@ -353,6 +283,20 @@ integration_test_template = { 'firmware' : 'linux', 'slow' : 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', @@ -423,13 +367,10 @@ foreach dirname : [ endforeach foreach integration_test : integration_tests - integration_test_number = integration_test['name'].split('-')[1] - integration_test_args = [ '--meson-source-dir', meson.project_source_root(), '--meson-build-dir', meson.project_build_root(), '--test-name', integration_test['name'], - '--test-number', integration_test_number, '--storage', integration_test['storage'], '--firmware', integration_test['firmware'], ] @@ -463,3 +404,48 @@ foreach integration_test : integration_tests suite : 'integration-tests', ) endforeach + +if install_tests + 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. + if meson.version().version_compare('<1.3.0') + if not rsync.found() + error('rsync is required to install the integration test data') + endif + + rsync_r = rsync.full_path() + ' -rlpt --exclude .gitattributes --exclude 25-default.link -- "@0@" "${DESTDIR:-}@1@"' + meson.add_install_script(sh, '-c', + rsync_r.format(meson.current_source_dir() / subdir, testdata_dir)) + else + install_subdir(subdir, + exclude_files : ['.gitattributes', '25-default.link'], + install_dir : testdata_dir, + follow_symlinks : false) + endif + endforeach + + # test-network/conf/25-default.link is a local symlink that becomes dangling when installed, so we + # exclude it and create the correct symlink here. + meson.add_install_script(sh, '-c', ln_s.format(networkdir / '99-default.link', + testdata_dir / 'test-network/conf/25-default.link')) + + install_data(kbd_model_map, + install_dir : testdata_dir + '/test-keymap-util') + + if conf.get('HAVE_ZSTD') == 1 and efi_arch != '' + install_subdir('test-bcd', + exclude_files : '.gitattributes', + install_dir : testdata_dir) + endif + if conf.get('ENABLE_RESOLVE') == 1 + install_subdir('test-resolve', + exclude_files : '.gitattributes', + install_dir : testdata_dir) + endif + + # The unit tests implemented as shell scripts expect to find testdata/ + # in the directory where they are stored. + meson.add_install_script(sh, '-c', ln_s.format(testdata_dir, + unittestsdir / 'testdata')) +endif diff --git a/test/test-functions b/test/test-functions index 6e889f838b..2168854add 100644 --- a/test/test-functions +++ b/test/test-functions @@ -146,10 +146,9 @@ if ! [[ "$TESTNAME" =~ ^TEST\-([0-9]+)\-.+$ ]]; then echo "ERROR: Test name '$TESTNAME' is not in the expected format: TEST-[0-9]+-*" >&2 exit 1 fi -TESTID="${BASH_REMATCH[1]:?}" -if [[ ! -f "$TEST_UNITS_DIR/testsuite-$TESTID.service" ]]; then - echo "ERROR: Test '$TESTNAME' is missing its service file '$TEST_UNITS_DIR/testsuite-$TESTID.service" >&2 +if [[ ! -f "$TEST_UNITS_DIR/$TESTNAME.service" ]]; then + echo "ERROR: Test '$TESTNAME' is missing its service file '$TEST_UNITS_DIR/$TESTNAME.service" >&2 exit 1 fi @@ -566,9 +565,9 @@ run_qemu() { "loglevel=2" "init=$PATH_TO_INIT" "console=$CONSOLE" - "SYSTEMD_UNIT_PATH=/usr/lib/systemd/tests/testdata/testsuite-$1.units:/usr/lib/systemd/tests/testdata/units:" + "SYSTEMD_UNIT_PATH=/usr/lib/systemd/tests/testdata/$1.units:/usr/lib/systemd/tests/testdata/units:" "systemd.unit=testsuite.target" - "systemd.wants=testsuite-$1.service" + "systemd.wants=$1.service" "noresume" "oops=panic" ${TEST_MATCH_SUBTEST:+"systemd.setenv=TEST_MATCH_SUBTEST=$TEST_MATCH_SUBTEST"} @@ -658,13 +657,13 @@ run_nspawn() { "--register=no" "--kill-signal=SIGKILL" "--directory=${1:?}" - "--setenv=SYSTEMD_UNIT_PATH=/usr/lib/systemd/tests/testdata/testsuite-$2.units:/usr/lib/systemd/tests/testdata/units:" - "--machine=TEST-$TESTID" + "--setenv=SYSTEMD_UNIT_PATH=/usr/lib/systemd/tests/testdata/$2.units:/usr/lib/systemd/tests/testdata/units:" + "--machine=$2" ) local kernel_params=( "$PATH_TO_INIT" "systemd.unit=testsuite.target" - "systemd.wants=testsuite-$2.service" + "systemd.wants=$2.service" ${TEST_MATCH_SUBTEST:+"systemd.setenv=TEST_MATCH_SUBTEST=$TEST_MATCH_SUBTEST"} ${TEST_MATCH_TESTCASE:+"systemd.setenv=TEST_MATCH_TESTCASE=$TEST_MATCH_TESTCASE"} ) @@ -1745,10 +1744,10 @@ save_journal() { dest_name="system.journal" fi - # Show messages from the testsuite-XX.service or messages with priority "warning" and higher + # Show messages from the TEST-XX-XXX.service or messages with priority "warning" and higher echo " --- $source_dir ---" "$JOURNALCTL" --all --no-pager --no-hostname -o short-monotonic -D "$source_dir" \ - _SYSTEMD_UNIT="testsuite-${TESTID:?}.service" + SYSLOG_IDENTIFIER="testsuite-$TESTID.sh" + \ + _SYSTEMD_UNIT="${TESTNAME:?}.service" + SYSLOG_IDENTIFIER="$TESTNAME.sh" + \ PRIORITY=4 + PRIORITY=3 + PRIORITY=2 + PRIORITY=1 + PRIORITY=0 if get_bool "$save"; then @@ -3325,11 +3324,11 @@ test_setup() { } test_run() { - local test_id="${1:?}" + local test_name="${1:?}" mount_initdir if ! get_bool "${TEST_NO_QEMU:=}"; then - if run_qemu "$test_id"; then + if run_qemu "$test_name"; then check_result_qemu || { echo "qemu test failed"; return 1; } else dwarn "can't run qemu, skipping" @@ -3337,7 +3336,7 @@ test_run() { fi if ! get_bool "${TEST_NO_NSPAWN:=}"; then mount_initdir - if run_nspawn "${initdir:?}" "$test_id"; then + if run_nspawn "${initdir:?}" "$test_name"; then check_result_nspawn "$initdir" || { echo "nspawn-root test failed"; return 1; } else dwarn "can't run systemd-nspawn, skipping" @@ -3345,7 +3344,7 @@ test_run() { if get_bool "${RUN_IN_UNPRIVILEGED_CONTAINER:=}"; then dir="$TESTDIR/unprivileged-nspawn-root" - if NSPAWN_ARGUMENTS="-U --private-network ${NSPAWN_ARGUMENTS:-}" run_nspawn "$dir" "$test_id"; then + if NSPAWN_ARGUMENTS="-U --private-network ${NSPAWN_ARGUMENTS:-}" run_nspawn "$dir" "$test_name"; then check_result_nspawn "$dir" || { echo "unprivileged-nspawn-root test failed"; return 1; } else dwarn "can't run systemd-nspawn, skipping" @@ -3401,7 +3400,7 @@ do_test() { case $1 in --run) echo "${testname} RUN: $TEST_DESCRIPTION" - test_run "$TESTID" + test_run "$TESTNAME" ret=$? if [ $ret -eq 0 ]; then echo "${testname} RUN: $TEST_DESCRIPTION [OK]" @@ -3433,7 +3432,7 @@ do_test() { test_setup_cleanup >"$TESTLOG" 2>&1 || ret=$? fi if [ $ret -eq 0 ]; then - test_run "$TESTID" >"$TESTLOG" 2>&1 || ret=$? + test_run "$TESTNAME" >"$TESTLOG" 2>&1 || ret=$? fi test_cleanup if [ $ret -eq 0 ]; then diff --git a/test/testsuite-23.units/testsuite-23-prop-stop-one.service b/test/testsuite-23.units/testsuite-23-prop-stop-one.service deleted file mode 100644 index 03189550a7..0000000000 --- a/test/testsuite-23.units/testsuite-23-prop-stop-one.service +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=Stop Propagation Receiver -Wants=testsuite-23-prop-stop-two.service -After=testsuite-23-prop-stop-two.service -StopPropagatedFrom=testsuite-23-prop-stop-two.service - -[Service] -ExecStart=sleep infinity -ExecStopPost=systemctl kill --kill-whom=main -sUSR2 testsuite-23.service diff --git a/test/testsuite-80.units/notify.service b/test/testsuite-80.units/notify.service deleted file mode 100644 index 196b076672..0000000000 --- a/test/testsuite-80.units/notify.service +++ /dev/null @@ -1,4 +0,0 @@ -[Service] -Type=notify -NotifyAccess=all -ExecStart=/usr/lib/systemd/tests/testdata/testsuite-80.units/test.sh diff --git a/test/units/testsuite-01.service b/test/units/TEST-01-BASIC.service similarity index 100% rename from test/units/testsuite-01.service rename to test/units/TEST-01-BASIC.service diff --git a/test/units/testsuite-01.sh b/test/units/TEST-01-BASIC.sh similarity index 100% rename from test/units/testsuite-01.sh rename to test/units/TEST-01-BASIC.sh diff --git a/test/units/testsuite-02.service b/test/units/TEST-02-UNITTESTS.service similarity index 100% rename from test/units/testsuite-02.service rename to test/units/TEST-02-UNITTESTS.service diff --git a/test/units/testsuite-02.sh b/test/units/TEST-02-UNITTESTS.sh similarity index 100% rename from test/units/testsuite-02.sh rename to test/units/TEST-02-UNITTESTS.sh diff --git a/test/units/testsuite-03.service b/test/units/TEST-03-JOBS.service similarity index 100% rename from test/units/testsuite-03.service rename to test/units/TEST-03-JOBS.service diff --git a/test/units/testsuite-03.sh b/test/units/TEST-03-JOBS.sh similarity index 100% rename from test/units/testsuite-03.sh rename to test/units/TEST-03-JOBS.sh diff --git a/test/units/testsuite-04.LogFilterPatterns.sh b/test/units/TEST-04-JOURNAL.LogFilterPatterns.sh similarity index 100% rename from test/units/testsuite-04.LogFilterPatterns.sh rename to test/units/TEST-04-JOURNAL.LogFilterPatterns.sh diff --git a/test/units/testsuite-04.SYSTEMD_JOURNAL_COMPRESS.sh b/test/units/TEST-04-JOURNAL.SYSTEMD_JOURNAL_COMPRESS.sh similarity index 100% rename from test/units/testsuite-04.SYSTEMD_JOURNAL_COMPRESS.sh rename to test/units/TEST-04-JOURNAL.SYSTEMD_JOURNAL_COMPRESS.sh diff --git a/test/units/testsuite-04.bsod.sh b/test/units/TEST-04-JOURNAL.bsod.sh similarity index 100% rename from test/units/testsuite-04.bsod.sh rename to test/units/TEST-04-JOURNAL.bsod.sh diff --git a/test/units/testsuite-04.cat.sh b/test/units/TEST-04-JOURNAL.cat.sh similarity index 100% rename from test/units/testsuite-04.cat.sh rename to test/units/TEST-04-JOURNAL.cat.sh diff --git a/test/units/testsuite-04.corrupted-journals.sh b/test/units/TEST-04-JOURNAL.corrupted-journals.sh similarity index 100% rename from test/units/testsuite-04.corrupted-journals.sh rename to test/units/TEST-04-JOURNAL.corrupted-journals.sh diff --git a/test/units/testsuite-04.fss.sh b/test/units/TEST-04-JOURNAL.fss.sh similarity index 100% rename from test/units/testsuite-04.fss.sh rename to test/units/TEST-04-JOURNAL.fss.sh diff --git a/test/units/testsuite-04.journal-append.sh b/test/units/TEST-04-JOURNAL.journal-append.sh similarity index 100% rename from test/units/testsuite-04.journal-append.sh rename to test/units/TEST-04-JOURNAL.journal-append.sh diff --git a/test/units/testsuite-04.journal-corrupt.sh b/test/units/TEST-04-JOURNAL.journal-corrupt.sh similarity index 100% rename from test/units/testsuite-04.journal-corrupt.sh rename to test/units/TEST-04-JOURNAL.journal-corrupt.sh diff --git a/test/units/testsuite-04.journal-gatewayd.sh b/test/units/TEST-04-JOURNAL.journal-gatewayd.sh similarity index 100% rename from test/units/testsuite-04.journal-gatewayd.sh rename to test/units/TEST-04-JOURNAL.journal-gatewayd.sh diff --git a/test/units/testsuite-04.journal-remote.sh b/test/units/TEST-04-JOURNAL.journal-remote.sh similarity index 100% rename from test/units/testsuite-04.journal-remote.sh rename to test/units/TEST-04-JOURNAL.journal-remote.sh diff --git a/test/units/testsuite-04.journal.sh b/test/units/TEST-04-JOURNAL.journal.sh similarity index 100% rename from test/units/testsuite-04.journal.sh rename to test/units/TEST-04-JOURNAL.journal.sh diff --git a/test/units/testsuite-04.service b/test/units/TEST-04-JOURNAL.service similarity index 100% rename from test/units/testsuite-04.service rename to test/units/TEST-04-JOURNAL.service diff --git a/test/units/testsuite-04.sh b/test/units/TEST-04-JOURNAL.sh similarity index 100% rename from test/units/testsuite-04.sh rename to test/units/TEST-04-JOURNAL.sh diff --git a/test/units/testsuite-05.effective-limit.sh b/test/units/TEST-05-RLIMITS.effective-limit.sh similarity index 100% rename from test/units/testsuite-05.effective-limit.sh rename to test/units/TEST-05-RLIMITS.effective-limit.sh diff --git a/test/units/testsuite-05.rlimit.sh b/test/units/TEST-05-RLIMITS.rlimit.sh similarity index 77% rename from test/units/testsuite-05.rlimit.sh rename to test/units/TEST-05-RLIMITS.rlimit.sh index bbf3adbe65..6b425d4081 100755 --- a/test/units/testsuite-05.rlimit.sh +++ b/test/units/TEST-05-RLIMITS.rlimit.sh @@ -16,8 +16,8 @@ systemctl daemon-reload [[ "$(systemctl show -P DefaultLimitNOFILESoft)" = "10000" ]] [[ "$(systemctl show -P DefaultLimitNOFILE)" = "16384" ]] -[[ "$(systemctl show -P LimitNOFILESoft testsuite-05.service)" = "10000" ]] -[[ "$(systemctl show -P LimitNOFILE testsuite-05.service)" = "16384" ]] +[[ "$(systemctl show -P LimitNOFILESoft TEST-05-RLIMITS.service)" = "10000" ]] +[[ "$(systemctl show -P LimitNOFILE TEST-05-RLIMITS.service)" = "16384" ]] # shellcheck disable=SC2016 systemd-run --wait -t bash -c '[[ "$(ulimit -n -S)" = "10000" ]]' diff --git a/test/units/testsuite-19.service b/test/units/TEST-05-RLIMITS.service similarity index 85% rename from test/units/testsuite-19.service rename to test/units/TEST-05-RLIMITS.service index 9ee5fc97d2..ab72d8fe27 100644 --- a/test/units/testsuite-19.service +++ b/test/units/TEST-05-RLIMITS.service @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] -Description=TEST-19-DELEGATE +Description=TEST-05-RLIMITS [Service] ExecStartPre=rm -f /failed /testok diff --git a/test/units/testsuite-05.sh b/test/units/TEST-05-RLIMITS.sh similarity index 100% rename from test/units/testsuite-05.sh rename to test/units/TEST-05-RLIMITS.sh diff --git a/test/units/testsuite-06.service b/test/units/TEST-06-SELINUX.service similarity index 100% rename from test/units/testsuite-06.service rename to test/units/TEST-06-SELINUX.service diff --git a/test/units/testsuite-06.sh b/test/units/TEST-06-SELINUX.sh similarity index 100% rename from test/units/testsuite-06.sh rename to test/units/TEST-06-SELINUX.sh diff --git a/test/units/testsuite-07.aux-scope.sh b/test/units/TEST-07-PID1.aux-scope.sh similarity index 100% rename from test/units/testsuite-07.aux-scope.sh rename to test/units/TEST-07-PID1.aux-scope.sh diff --git a/test/units/testsuite-07.exec-context.sh b/test/units/TEST-07-PID1.exec-context.sh similarity index 100% rename from test/units/testsuite-07.exec-context.sh rename to test/units/TEST-07-PID1.exec-context.sh diff --git a/test/units/testsuite-07.exec-deserialization.sh b/test/units/TEST-07-PID1.exec-deserialization.sh similarity index 100% rename from test/units/testsuite-07.exec-deserialization.sh rename to test/units/TEST-07-PID1.exec-deserialization.sh diff --git a/test/units/testsuite-07.exec-timestamps.sh b/test/units/TEST-07-PID1.exec-timestamps.sh similarity index 100% rename from test/units/testsuite-07.exec-timestamps.sh rename to test/units/TEST-07-PID1.exec-timestamps.sh diff --git a/test/units/testsuite-07.issue-14566.sh b/test/units/TEST-07-PID1.issue-14566.sh similarity index 100% rename from test/units/testsuite-07.issue-14566.sh rename to test/units/TEST-07-PID1.issue-14566.sh diff --git a/test/units/testsuite-07.issue-16115.sh b/test/units/TEST-07-PID1.issue-16115.sh similarity index 100% rename from test/units/testsuite-07.issue-16115.sh rename to test/units/TEST-07-PID1.issue-16115.sh diff --git a/test/units/testsuite-07.issue-1981.sh b/test/units/TEST-07-PID1.issue-1981.sh similarity index 100% rename from test/units/testsuite-07.issue-1981.sh rename to test/units/TEST-07-PID1.issue-1981.sh diff --git a/test/units/testsuite-07.issue-2467.sh b/test/units/TEST-07-PID1.issue-2467.sh similarity index 100% rename from test/units/testsuite-07.issue-2467.sh rename to test/units/TEST-07-PID1.issue-2467.sh diff --git a/test/units/testsuite-07.issue-27953.sh b/test/units/TEST-07-PID1.issue-27953.sh similarity index 100% rename from test/units/testsuite-07.issue-27953.sh rename to test/units/TEST-07-PID1.issue-27953.sh diff --git a/test/units/testsuite-07.issue-30412.sh b/test/units/TEST-07-PID1.issue-30412.sh similarity index 100% rename from test/units/testsuite-07.issue-30412.sh rename to test/units/TEST-07-PID1.issue-30412.sh diff --git a/test/units/testsuite-07.issue-3166.sh b/test/units/TEST-07-PID1.issue-3166.sh similarity index 100% rename from test/units/testsuite-07.issue-3166.sh rename to test/units/TEST-07-PID1.issue-3166.sh diff --git a/test/units/testsuite-07.issue-3171.sh b/test/units/TEST-07-PID1.issue-3171.sh similarity index 100% rename from test/units/testsuite-07.issue-3171.sh rename to test/units/TEST-07-PID1.issue-3171.sh diff --git a/test/units/testsuite-07.main-PID-change.sh b/test/units/TEST-07-PID1.main-PID-change.sh similarity index 88% rename from test/units/testsuite-07.main-PID-change.sh rename to test/units/TEST-07-PID1.main-PID-change.sh index bd1144c6f2..16f3510e5e 100755 --- a/test/units/testsuite-07.main-PID-change.sh +++ b/test/units/TEST-07-PID1.main-PID-change.sh @@ -10,7 +10,7 @@ set -o pipefail # The main service PID should be the parent bash process MAINPID="${PPID:?}" -test "$(systemctl show -P MainPID testsuite-07.service)" -eq "$MAINPID" +test "$(systemctl show -P MainPID TEST-07-PID1.service)" -eq "$MAINPID" # Start a test process inside of our own cgroup sleep infinity & @@ -23,41 +23,41 @@ EXTERNALPID="$(systemctl show -P MainPID test-sleep.service)" # Update our own main PID to the external test PID, this should work systemd-notify MAINPID="$EXTERNALPID" -test "$(systemctl show -P MainPID testsuite-07.service)" -eq "$EXTERNALPID" +test "$(systemctl show -P MainPID TEST-07-PID1.service)" -eq "$EXTERNALPID" # Update our own main PID to the internal test PID, this should work, too systemd-notify MAINPID=$INTERNALPID -test "$(systemctl show -P MainPID testsuite-07.service)" -eq "$INTERNALPID" +test "$(systemctl show -P MainPID TEST-07-PID1.service)" -eq "$INTERNALPID" # Update it back to our own PID, this should also work systemd-notify MAINPID="$MAINPID" -test "$(systemctl show -P MainPID testsuite-07.service)" -eq "$MAINPID" +test "$(systemctl show -P MainPID TEST-07-PID1.service)" -eq "$MAINPID" # Try to set it to PID 1, which it should ignore, because that's the manager systemd-notify MAINPID=1 -test "$(systemctl show -P MainPID testsuite-07.service)" -eq "$MAINPID" +test "$(systemctl show -P MainPID TEST-07-PID1.service)" -eq "$MAINPID" # Try to set it to PID 0, which is invalid and should be ignored systemd-notify MAINPID=0 -test "$(systemctl show -P MainPID testsuite-07.service)" -eq "$MAINPID" +test "$(systemctl show -P MainPID TEST-07-PID1.service)" -eq "$MAINPID" # Try to set it to a valid but non-existing PID, which should be ignored. (Note # that we set the PID to a value well above any known /proc/sys/kernel/pid_max, # which means we can be pretty sure it doesn't exist by coincidence) systemd-notify MAINPID=1073741824 -test "$(systemctl show -P MainPID testsuite-07.service)" -eq "$MAINPID" +test "$(systemctl show -P MainPID TEST-07-PID1.service)" -eq "$MAINPID" # Change it again to the external PID, without privileges this time. This should be ignored, because the PID is from outside of our cgroup and we lack privileges. systemd-notify --uid=1000 MAINPID="$EXTERNALPID" -test "$(systemctl show -P MainPID testsuite-07.service)" -eq "$MAINPID" +test "$(systemctl show -P MainPID TEST-07-PID1.service)" -eq "$MAINPID" # Change it again to the internal PID, without privileges this time. This should work, as the process is on our cgroup, and that's enough even if we lack privileges. systemd-notify --uid=1000 MAINPID="$INTERNALPID" -test "$(systemctl show -P MainPID testsuite-07.service)" -eq "$INTERNALPID" +test "$(systemctl show -P MainPID TEST-07-PID1.service)" -eq "$INTERNALPID" # Update it back to our own PID, this should also work systemd-notify --uid=1000 MAINPID="$MAINPID" -test "$(systemctl show -P MainPID testsuite-07.service)" -eq "$MAINPID" +test "$(systemctl show -P MainPID TEST-07-PID1.service)" -eq "$MAINPID" cat >/tmp/test-mainpid.sh <<\EOF #!/usr/bin/env bash diff --git a/test/units/testsuite-07.mount-invalid-chars.sh b/test/units/TEST-07-PID1.mount-invalid-chars.sh similarity index 100% rename from test/units/testsuite-07.mount-invalid-chars.sh rename to test/units/TEST-07-PID1.mount-invalid-chars.sh diff --git a/test/units/testsuite-07.poll-limit.sh b/test/units/TEST-07-PID1.poll-limit.sh similarity index 100% rename from test/units/testsuite-07.poll-limit.sh rename to test/units/TEST-07-PID1.poll-limit.sh diff --git a/test/units/testsuite-07.pr-31351.sh b/test/units/TEST-07-PID1.pr-31351.sh similarity index 100% rename from test/units/testsuite-07.pr-31351.sh rename to test/units/TEST-07-PID1.pr-31351.sh diff --git a/test/units/testsuite-07.private-network.sh b/test/units/TEST-07-PID1.private-network.sh similarity index 100% rename from test/units/testsuite-07.private-network.sh rename to test/units/TEST-07-PID1.private-network.sh diff --git a/test/units/testsuite-07.service b/test/units/TEST-07-PID1.service similarity index 100% rename from test/units/testsuite-07.service rename to test/units/TEST-07-PID1.service diff --git a/test/units/testsuite-07.sh b/test/units/TEST-07-PID1.sh similarity index 100% rename from test/units/testsuite-07.sh rename to test/units/TEST-07-PID1.sh diff --git a/test/units/testsuite-07.socket-pass-fds.sh b/test/units/TEST-07-PID1.socket-pass-fds.sh similarity index 100% rename from test/units/testsuite-07.socket-pass-fds.sh rename to test/units/TEST-07-PID1.socket-pass-fds.sh diff --git a/test/units/testsuite-07.type-exec-parallel.sh b/test/units/TEST-07-PID1.type-exec-parallel.sh similarity index 100% rename from test/units/testsuite-07.type-exec-parallel.sh rename to test/units/TEST-07-PID1.type-exec-parallel.sh diff --git a/test/units/testsuite-08.service b/test/units/TEST-08-INITRD.service similarity index 100% rename from test/units/testsuite-08.service rename to test/units/TEST-08-INITRD.service diff --git a/test/units/testsuite-08.sh b/test/units/TEST-08-INITRD.sh similarity index 100% rename from test/units/testsuite-08.sh rename to test/units/TEST-08-INITRD.sh diff --git a/test/units/testsuite-09.journal.sh b/test/units/TEST-09-REBOOT.journal.sh similarity index 100% rename from test/units/testsuite-09.journal.sh rename to test/units/TEST-09-REBOOT.journal.sh diff --git a/test/units/testsuite-09.service b/test/units/TEST-09-REBOOT.service similarity index 100% rename from test/units/testsuite-09.service rename to test/units/TEST-09-REBOOT.service diff --git a/test/units/testsuite-09.sh b/test/units/TEST-09-REBOOT.sh similarity index 100% rename from test/units/testsuite-09.sh rename to test/units/TEST-09-REBOOT.sh diff --git a/test/units/testsuite-13.importctl.sh b/test/units/TEST-13-NSPAWN.importctl.sh similarity index 100% rename from test/units/testsuite-13.importctl.sh rename to test/units/TEST-13-NSPAWN.importctl.sh diff --git a/test/units/testsuite-13.machinectl.sh b/test/units/TEST-13-NSPAWN.machinectl.sh similarity index 100% rename from test/units/testsuite-13.machinectl.sh rename to test/units/TEST-13-NSPAWN.machinectl.sh diff --git a/test/units/testsuite-13.nspawn-oci.sh b/test/units/TEST-13-NSPAWN.nspawn-oci.sh similarity index 99% rename from test/units/testsuite-13.nspawn-oci.sh rename to test/units/TEST-13-NSPAWN.nspawn-oci.sh index b8a76fa172..65dcc96b59 100755 --- a/test/units/testsuite-13.nspawn-oci.sh +++ b/test/units/TEST-13-NSPAWN.nspawn-oci.sh @@ -34,7 +34,7 @@ NETNS="$(mktemp /var/tmp/netns.XXX)" mount --bind /proc/self/ns/net "$NETNS" TMPDIR="$(mktemp -d)" touch "$TMPDIR/hello" -OCI="$(mktemp -d /var/lib/machines/testsuite-13.oci-bundle.XXX)" +OCI="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.oci-bundle.XXX)" create_dummy_container "$OCI/rootfs" mkdir -p "$OCI/rootfs/opt/var" mkdir -p "$OCI/rootfs/opt/readonly" diff --git a/test/units/testsuite-13.nspawn.sh b/test/units/TEST-13-NSPAWN.nspawn.sh similarity index 96% rename from test/units/testsuite-13.nspawn.sh rename to test/units/TEST-13-NSPAWN.nspawn.sh index 026ed23fcd..7901e9877b 100755 --- a/test/units/testsuite-13.nspawn.sh +++ b/test/units/TEST-13-NSPAWN.nspawn.sh @@ -82,7 +82,7 @@ testcase_sanity() { template="$(mktemp -d /tmp/nspawn-template.XXX)" create_dummy_container "$template" # Create a simple image from the just created container template - image="$(mktemp /var/lib/machines/testsuite-13.image-XXX.img)" + image="$(mktemp /var/lib/machines/TEST-13-NSPAWN.image-XXX.img)" dd if=/dev/zero of="$image" bs=1M count=256 mkfs.ext4 "$image" mkdir -p /mnt @@ -94,7 +94,7 @@ testcase_sanity() { systemd-nspawn --version # --template= - root="$(mktemp -u -d /var/lib/machines/testsuite-13.sanity.XXX)" + root="$(mktemp -u -d /var/lib/machines/TEST-13-NSPAWN.sanity.XXX)" coverage_create_nspawn_dropin "$root" (! systemd-nspawn --directory="$root" bash -xec 'echo hello') # Initialize $root from $template (the $root directory must not exist, hence @@ -342,7 +342,7 @@ testcase_nspawn_settings() { local root container dev private_users wlan_names mkdir -p /run/systemd/nspawn - root="$(mktemp -d /var/lib/machines/testsuite-13.nspawn-settings.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.nspawn-settings.XXX)" container="$(basename "$root")" create_dummy_container "$root" rm -f "/etc/systemd/nspawn/$container.nspawn" @@ -505,7 +505,7 @@ bind_user_cleanup() { testcase_bind_user() { local root - root="$(mktemp -d /var/lib/machines/testsuite-13.bind-user.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.bind-user.XXX)" create_dummy_container "$root" useradd --create-home --user-group nspawn-bind-user-1 useradd --create-home --user-group nspawn-bind-user-2 @@ -554,7 +554,7 @@ testcase_bind_tmp_path() { # https://github.com/systemd/systemd/issues/4789 local root - root="$(mktemp -d /var/lib/machines/testsuite-13.bind-tmp-path.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.bind-tmp-path.XXX)" create_dummy_container "$root" : >/tmp/bind systemd-nspawn --register=no \ @@ -569,7 +569,7 @@ testcase_norbind() { # https://github.com/systemd/systemd/issues/13170 local root - root="$(mktemp -d /var/lib/machines/testsuite-13.norbind-path.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.norbind-path.XXX)" mkdir -p /tmp/binddir/subdir echo -n "outer" >/tmp/binddir/subdir/file mount -t tmpfs tmpfs /tmp/binddir/subdir @@ -596,7 +596,7 @@ testcase_rootidmap() { local root cmd permissions local owner=1000 - root="$(mktemp -d /var/lib/machines/testsuite-13.rootidmap-path.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.rootidmap-path.XXX)" # Create ext4 image, as ext4 supports idmapped-mounts. mkdir -p /tmp/rootidmap/bind dd if=/dev/zero of=/tmp/rootidmap/ext4.img bs=4k count=2048 @@ -640,7 +640,7 @@ testcase_owneridmap() { local root cmd permissions local owner=1000 - root="$(mktemp -d /var/lib/machines/testsuite-13.owneridmap-path.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.owneridmap-path.XXX)" # Create ext4 image, as ext4 supports idmapped-mounts. mkdir -p /tmp/owneridmap/bind dd if=/dev/zero of=/tmp/owneridmap/ext4.img bs=4k count=2048 @@ -704,7 +704,7 @@ testcase_notification_socket() { local root local cmd='echo a | nc -U -u -w 1 /run/host/notify' - root="$(mktemp -d /var/lib/machines/testsuite-13.check_notification_socket.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.check_notification_socket.XXX)" create_dummy_container "$root" systemd-nspawn --register=no --directory="$root" bash -x -c "$cmd" @@ -716,7 +716,7 @@ testcase_notification_socket() { testcase_os_release() { local root entrypoint os_release_source - root="$(mktemp -d /var/lib/machines/testsuite-13.os-release.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.os-release.XXX)" create_dummy_container "$root" entrypoint="$root/entrypoint.sh" cat >"$entrypoint" <<\EOF @@ -758,7 +758,7 @@ testcase_machinectl_bind() { local service_path service_name root container_name ec local cmd='for i in $(seq 1 20); do if test -f /tmp/marker; then exit 0; fi; sleep .5; done; exit 1;' - root="$(mktemp -d /var/lib/machines/testsuite-13.machinectl-bind.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.machinectl-bind.XXX)" create_dummy_container "$root" container_name="$(basename "$root")" @@ -793,7 +793,7 @@ testcase_selinux() { local root - root="$(mktemp -d /var/lib/machines/testsuite-13.selinux.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.selinux.XXX)" create_dummy_container "$root" chcon -R -t container_t "$root" @@ -810,7 +810,7 @@ testcase_ephemeral_config() { # https://github.com/systemd/systemd/issues/13297 local root container_name - root="$(mktemp -d /var/lib/machines/testsuite-13.ephemeral-config.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.ephemeral-config.XXX)" create_dummy_container "$root" container_name="$(basename "$root")" @@ -853,7 +853,7 @@ matrix_run_one() { return 0 fi - root="$(mktemp -d "/var/lib/machines/testsuite-13.unified-$1-cgns-$2-api-vfs-writable-$3.XXX")" + root="$(mktemp -d "/var/lib/machines/TEST-13-NSPAWN.unified-$1-cgns-$2-api-vfs-writable-$3.XXX")" create_dummy_container "$root" SYSTEMD_NSPAWN_UNIFIED_HIERARCHY="$cgroupsv2" SYSTEMD_NSPAWN_USE_CGNS="$use_cgns" SYSTEMD_NSPAWN_API_VFS_WRITABLE="$api_vfs_writable" \ @@ -941,8 +941,8 @@ testcase_check_os_release() { # https://github.com/systemd/systemd/issues/29185 local base common_opts root - base="$(mktemp -d /var/lib/machines/testsuite-13.check_os_release_base.XXX)" - root="$(mktemp -d /var/lib/machines/testsuite-13.check_os_release.XXX)" + base="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.check_os_release_base.XXX)" + root="$(mktemp -d /var/lib/machines/TEST-13-NSPAWN.check_os_release.XXX)" create_dummy_container "$base" cp -d "$base"/{bin,sbin,lib,lib64} "$root/" common_opts=( diff --git a/test/units/testsuite-13.nss-mymachines.sh b/test/units/TEST-13-NSPAWN.nss-mymachines.sh similarity index 100% rename from test/units/testsuite-13.nss-mymachines.sh rename to test/units/TEST-13-NSPAWN.nss-mymachines.sh diff --git a/test/units/testsuite-13.service b/test/units/TEST-13-NSPAWN.service similarity index 100% rename from test/units/testsuite-13.service rename to test/units/TEST-13-NSPAWN.service diff --git a/test/units/testsuite-13.sh b/test/units/TEST-13-NSPAWN.sh similarity index 100% rename from test/units/testsuite-13.sh rename to test/units/TEST-13-NSPAWN.sh diff --git a/test/units/testsuite-15.service b/test/units/TEST-15-DROPIN.service similarity index 100% rename from test/units/testsuite-15.service rename to test/units/TEST-15-DROPIN.service diff --git a/test/units/testsuite-15.sh b/test/units/TEST-15-DROPIN.sh similarity index 98% rename from test/units/testsuite-15.sh rename to test/units/TEST-15-DROPIN.sh index 7143a1597a..f5bd8d8af4 100755 --- a/test/units/testsuite-15.sh +++ b/test/units/TEST-15-DROPIN.sh @@ -694,15 +694,15 @@ testcase_symlink_dropin_directory() { echo "Testing symlink drop-in directory..." create_services test15-a rmdir /{etc,run,usr/lib}/systemd/system/test15-a.service.d - mkdir -p /tmp/testsuite-15-test15-a-dropin-directory - ln -s /tmp/testsuite-15-test15-a-dropin-directory /etc/systemd/system/test15-a.service.d - cat >/tmp/testsuite-15-test15-a-dropin-directory/override.conf </tmp/TEST-15-DROPIN-test15-a-dropin-directory/override.conf </tmp/TEST-23-UNIT-FILE.counter + +if [ "$counter" -eq 5 ] ; then + systemctl kill --kill-whom=main -sUSR1 TEST-23-UNIT-FILE.service +fi + +exec sleep 1.5 diff --git a/test/units/testsuite-23.ExecReload.sh b/test/units/TEST-23-UNIT-FILE.ExecReload.sh similarity index 100% rename from test/units/testsuite-23.ExecReload.sh rename to test/units/TEST-23-UNIT-FILE.ExecReload.sh diff --git a/test/units/testsuite-23.ExecStopPost.sh b/test/units/TEST-23-UNIT-FILE.ExecStopPost.sh similarity index 100% rename from test/units/testsuite-23.ExecStopPost.sh rename to test/units/TEST-23-UNIT-FILE.ExecStopPost.sh diff --git a/test/units/TEST-23-UNIT-FILE.JoinsNamespaceOf.sh b/test/units/TEST-23-UNIT-FILE.JoinsNamespaceOf.sh new file mode 100755 index 0000000000..4fd68d8b84 --- /dev/null +++ b/test/units/TEST-23-UNIT-FILE.JoinsNamespaceOf.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: LGPL-2.1-or-later + +set -eux +set -o pipefail + +# Test JoinsNamespaceOf= with PrivateTmp=yes + +systemd-analyze log-level debug +systemd-analyze log-target journal + +# simple case +systemctl start TEST-23-UNIT-FILE-joins-namespace-of-1.service +systemctl start TEST-23-UNIT-FILE-joins-namespace-of-2.service +systemctl start TEST-23-UNIT-FILE-joins-namespace-of-3.service +systemctl stop TEST-23-UNIT-FILE-joins-namespace-of-1.service + +# inverse dependency +systemctl start TEST-23-UNIT-FILE-joins-namespace-of-4.service +systemctl start TEST-23-UNIT-FILE-joins-namespace-of-5.service +systemctl stop TEST-23-UNIT-FILE-joins-namespace-of-4.service + +# transitive dependency +systemctl start TEST-23-UNIT-FILE-joins-namespace-of-6.service +systemctl start TEST-23-UNIT-FILE-joins-namespace-of-7.service +systemctl start TEST-23-UNIT-FILE-joins-namespace-of-8.service +systemctl start TEST-23-UNIT-FILE-joins-namespace-of-9.service +systemctl stop TEST-23-UNIT-FILE-joins-namespace-of-6.service +systemctl stop TEST-23-UNIT-FILE-joins-namespace-of-8.service + +systemd-analyze log-level info diff --git a/test/units/testsuite-23.RuntimeDirectoryPreserve.sh b/test/units/TEST-23-UNIT-FILE.RuntimeDirectoryPreserve.sh similarity index 100% rename from test/units/testsuite-23.RuntimeDirectoryPreserve.sh rename to test/units/TEST-23-UNIT-FILE.RuntimeDirectoryPreserve.sh diff --git a/test/units/testsuite-23.StandardOutput.sh b/test/units/TEST-23-UNIT-FILE.StandardOutput.sh similarity index 80% rename from test/units/testsuite-23.StandardOutput.sh rename to test/units/TEST-23-UNIT-FILE.StandardOutput.sh index 50b9ac2a2b..a951b13b46 100755 --- a/test/units/testsuite-23.StandardOutput.sh +++ b/test/units/TEST-23-UNIT-FILE.StandardOutput.sh @@ -7,7 +7,7 @@ set -o pipefail systemd-analyze log-level debug -systemd-run --wait --unit=testsuite-23-standard-output-one \ +systemd-run --wait --unit=TEST-23-UNIT-FILE-standard-output-one \ -p StandardOutput=file:/tmp/stdout \ -p StandardError=file:/tmp/stderr \ -p Type=exec \ @@ -19,7 +19,7 @@ cmp /tmp/stderr <"/run/systemd/system/$UNIT_NAME" </run/TEST-23-UNIT-FILE-marker-fixed +mkdir /run/inaccessible + +systemctl start TEST-23-UNIT-FILE-namespaced.service + +# Ensure that inaccessible paths aren't bypassed by the runtime setup, +(! systemctl bind --mkdir TEST-23-UNIT-FILE-namespaced.service /run/TEST-23-UNIT-FILE-marker-fixed /run/inaccessible/testfile-marker-fixed) + +echo "MARKER_WRONG" >/run/TEST-23-UNIT-FILE-marker-wrong +echo "MARKER_RUNTIME" >/run/TEST-23-UNIT-FILE-marker-runtime + +# Mount twice to exercise mount-beneath (on kernel 6.5+, on older kernels it will just overmount) +systemctl bind --mkdir TEST-23-UNIT-FILE-namespaced.service /run/TEST-23-UNIT-FILE-marker-wrong /tmp/testfile-marker-runtime +test "$(systemctl show -P SubState TEST-23-UNIT-FILE-namespaced.service)" = "running" +systemctl bind --mkdir TEST-23-UNIT-FILE-namespaced.service /run/TEST-23-UNIT-FILE-marker-runtime /tmp/testfile-marker-runtime + +timeout 10 bash -xec 'while [[ "$(systemctl show -P SubState TEST-23-UNIT-FILE-namespaced.service)" == running ]]; do sleep .5; done' +systemctl is-active TEST-23-UNIT-FILE-namespaced.service + +# Now test that systemctl bind fails when attempted on a non-namespaced unit +systemctl start TEST-23-UNIT-FILE-non-namespaced.service + +(! systemctl bind --mkdir TEST-23-UNIT-FILE-non-namespaced.service /run/TEST-23-UNIT-FILE-marker-runtime /tmp/testfile-marker-runtime) + +timeout 10 bash -xec 'while [[ "$(systemctl show -P SubState TEST-23-UNIT-FILE-non-namespaced.service)" == running ]]; do sleep .5; done' +(! systemctl is-active TEST-23-UNIT-FILE-non-namespaced.service) diff --git a/test/units/testsuite-23.service b/test/units/TEST-23-UNIT-FILE.service similarity index 84% rename from test/units/testsuite-23.service rename to test/units/TEST-23-UNIT-FILE.service index 26f5226cd4..e45435b84a 100644 --- a/test/units/testsuite-23.service +++ b/test/units/TEST-23-UNIT-FILE.service @@ -1,6 +1,6 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] -Description=TEST-23-TYPE-EXEC +Description=TEST-23-UNIT-FILE [Service] ExecStartPre=rm -f /failed /testok diff --git a/test/units/testsuite-23.sh b/test/units/TEST-23-UNIT-FILE.sh similarity index 100% rename from test/units/testsuite-23.sh rename to test/units/TEST-23-UNIT-FILE.sh diff --git a/test/units/TEST-23-UNIT-FILE.start-stop-no-reload.sh b/test/units/TEST-23-UNIT-FILE.start-stop-no-reload.sh new file mode 100755 index 0000000000..61a6592cb6 --- /dev/null +++ b/test/units/TEST-23-UNIT-FILE.start-stop-no-reload.sh @@ -0,0 +1,93 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: LGPL-2.1-or-later +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh +set -eux +set -o pipefail + +# Test start & stop operations without daemon-reload + +at_exit() { + set +e + + rm -f /run/systemd/system/TEST-23-UNIT-FILE-no-reload.{service,target} +} + +trap at_exit EXIT + +cat >/run/systemd/system/TEST-23-UNIT-FILE-no-reload.target </run/systemd/system/TEST-23-UNIT-FILE-no-reload.service </run/systemd/system/TEST-23-UNIT-FILE-no-reload.service </run/systemd/system/TEST-23-UNIT-FILE-no-reload.target </run/systemd/system/TEST-23-UNIT-FILE-no-reload.service </run/systemd/system/testsuite-55-testbloat.service.d/override.conf </run/systemd/system/TEST-55-OOMD-testbloat.service.d/override.conf </dev/null && echo thisshouldnotbehere; done" diff --git a/test/units/testsuite-66.sh b/test/units/TEST-66-DEVICE-ISOLATION.sh similarity index 64% rename from test/units/testsuite-66.sh rename to test/units/TEST-66-DEVICE-ISOLATION.sh index 147335a7af..ccdfcb274c 100755 --- a/test/units/testsuite-66.sh +++ b/test/units/TEST-66-DEVICE-ISOLATION.sh @@ -3,11 +3,11 @@ set -eux set -o pipefail -RESULTS_FILE=/tmp/testsuite66serviceresults +RESULTS_FILE=/tmp/TEST-66-DEVICE-ISOLATION.serviceresults systemd-analyze log-level debug -systemctl start testsuite-66-deviceisolation.service +systemctl start TEST-66-DEVICE-ISOLATION-device-isolation.service sleep 5 grep -q "Operation not permitted" "$RESULTS_FILE" @@ -15,7 +15,7 @@ grep -q "Operation not permitted" "$RESULTS_FILE" systemctl daemon-reload systemctl daemon-reexec -systemctl stop testsuite-66-deviceisolation.service +systemctl stop TEST-66-DEVICE-ISOLATION-device-isolation.service grep -q "thisshouldnotbehere" "$RESULTS_FILE" && exit 42 diff --git a/test/units/TEST-66-DEVICEISOLATION.service b/test/units/TEST-66-DEVICEISOLATION.service new file mode 100644 index 0000000000..61cd0abfb5 --- /dev/null +++ b/test/units/TEST-66-DEVICEISOLATION.service @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[Unit] +Description=TEST-66-DEVICEISOLATION + +[Service] +ExecStartPre=rm -f /failed /testok +ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh +Type=oneshot diff --git a/test/units/testsuite-67.service b/test/units/TEST-67-INTEGRITY.service similarity index 100% rename from test/units/testsuite-67.service rename to test/units/TEST-67-INTEGRITY.service diff --git a/test/units/testsuite-67.sh b/test/units/TEST-67-INTEGRITY.sh similarity index 100% rename from test/units/testsuite-67.sh rename to test/units/TEST-67-INTEGRITY.sh diff --git a/test/units/testsuite-68.service b/test/units/TEST-68-PROPAGATE-EXIT-STATUS.service similarity index 100% rename from test/units/testsuite-68.service rename to test/units/TEST-68-PROPAGATE-EXIT-STATUS.service diff --git a/test/units/testsuite-68.sh b/test/units/TEST-68-PROPAGATE-EXIT-STATUS.sh similarity index 100% rename from test/units/testsuite-68.sh rename to test/units/TEST-68-PROPAGATE-EXIT-STATUS.sh diff --git a/test/units/testsuite-69.service b/test/units/TEST-69-SHUTDOWN.service similarity index 100% rename from test/units/testsuite-69.service rename to test/units/TEST-69-SHUTDOWN.service diff --git a/test/units/testsuite-70.creds.sh b/test/units/TEST-70-TPM2.creds.sh similarity index 100% rename from test/units/testsuite-70.creds.sh rename to test/units/TEST-70-TPM2.creds.sh diff --git a/test/units/testsuite-70.cryptenroll.sh b/test/units/TEST-70-TPM2.cryptenroll.sh similarity index 100% rename from test/units/testsuite-70.cryptenroll.sh rename to test/units/TEST-70-TPM2.cryptenroll.sh diff --git a/test/units/testsuite-70.cryptsetup.sh b/test/units/TEST-70-TPM2.cryptsetup.sh similarity index 100% rename from test/units/testsuite-70.cryptsetup.sh rename to test/units/TEST-70-TPM2.cryptsetup.sh diff --git a/test/units/testsuite-70.measure.sh b/test/units/TEST-70-TPM2.measure.sh similarity index 100% rename from test/units/testsuite-70.measure.sh rename to test/units/TEST-70-TPM2.measure.sh diff --git a/test/units/testsuite-70.pcrextend.sh b/test/units/TEST-70-TPM2.pcrextend.sh similarity index 100% rename from test/units/testsuite-70.pcrextend.sh rename to test/units/TEST-70-TPM2.pcrextend.sh diff --git a/test/units/testsuite-70.pcrlock.sh b/test/units/TEST-70-TPM2.pcrlock.sh similarity index 100% rename from test/units/testsuite-70.pcrlock.sh rename to test/units/TEST-70-TPM2.pcrlock.sh diff --git a/test/units/testsuite-70.service b/test/units/TEST-70-TPM2.service similarity index 100% rename from test/units/testsuite-70.service rename to test/units/TEST-70-TPM2.service diff --git a/test/units/testsuite-70.sh b/test/units/TEST-70-TPM2.sh similarity index 100% rename from test/units/testsuite-70.sh rename to test/units/TEST-70-TPM2.sh diff --git a/test/units/testsuite-70.tpm2-setup.sh b/test/units/TEST-70-TPM2.tpm2-setup.sh similarity index 100% rename from test/units/testsuite-70.tpm2-setup.sh rename to test/units/TEST-70-TPM2.tpm2-setup.sh diff --git a/test/units/testsuite-71.service b/test/units/TEST-71-HOSTNAME.service similarity index 100% rename from test/units/testsuite-71.service rename to test/units/TEST-71-HOSTNAME.service diff --git a/test/units/testsuite-71.sh b/test/units/TEST-71-HOSTNAME.sh similarity index 100% rename from test/units/testsuite-71.sh rename to test/units/TEST-71-HOSTNAME.sh diff --git a/test/units/testsuite-72.service b/test/units/TEST-72-SYSUPDATE.service similarity index 100% rename from test/units/testsuite-72.service rename to test/units/TEST-72-SYSUPDATE.service diff --git a/test/units/testsuite-72.sh b/test/units/TEST-72-SYSUPDATE.sh similarity index 100% rename from test/units/testsuite-72.sh rename to test/units/TEST-72-SYSUPDATE.sh diff --git a/test/units/testsuite-73.service b/test/units/TEST-73-LOCALE.service similarity index 100% rename from test/units/testsuite-73.service rename to test/units/TEST-73-LOCALE.service diff --git a/test/units/testsuite-73.sh b/test/units/TEST-73-LOCALE.sh similarity index 100% rename from test/units/testsuite-73.sh rename to test/units/TEST-73-LOCALE.sh diff --git a/test/units/testsuite-74.battery-check.sh b/test/units/TEST-74-AUX-UTILS.battery-check.sh similarity index 100% rename from test/units/testsuite-74.battery-check.sh rename to test/units/TEST-74-AUX-UTILS.battery-check.sh diff --git a/test/units/testsuite-74.bootctl.sh b/test/units/TEST-74-AUX-UTILS.bootctl.sh similarity index 100% rename from test/units/testsuite-74.bootctl.sh rename to test/units/TEST-74-AUX-UTILS.bootctl.sh diff --git a/test/units/testsuite-74.busctl.sh b/test/units/TEST-74-AUX-UTILS.busctl.sh similarity index 100% rename from test/units/testsuite-74.busctl.sh rename to test/units/TEST-74-AUX-UTILS.busctl.sh diff --git a/test/units/testsuite-74.capsule.sh b/test/units/TEST-74-AUX-UTILS.capsule.sh similarity index 100% rename from test/units/testsuite-74.capsule.sh rename to test/units/TEST-74-AUX-UTILS.capsule.sh diff --git a/test/units/testsuite-74.cgls.sh b/test/units/TEST-74-AUX-UTILS.cgls.sh similarity index 100% rename from test/units/testsuite-74.cgls.sh rename to test/units/TEST-74-AUX-UTILS.cgls.sh diff --git a/test/units/testsuite-74.cgtop.sh b/test/units/TEST-74-AUX-UTILS.cgtop.sh similarity index 100% rename from test/units/testsuite-74.cgtop.sh rename to test/units/TEST-74-AUX-UTILS.cgtop.sh diff --git a/test/units/testsuite-74.coredump.sh b/test/units/TEST-74-AUX-UTILS.coredump.sh similarity index 99% rename from test/units/testsuite-74.coredump.sh rename to test/units/TEST-74-AUX-UTILS.coredump.sh index f48607c0db..3f3571639e 100755 --- a/test/units/testsuite-74.coredump.sh +++ b/test/units/TEST-74-AUX-UTILS.coredump.sh @@ -79,7 +79,7 @@ timeout 30 bash -c "while [[ \$(coredumpctl list -q --no-legend $CORE_TEST_BIN | if cgroupfs_supports_user_xattrs; then # Make sure we can forward crashes back to containers - CONTAINER="testsuite-74-container" + CONTAINER="TEST-74-AUX-UTILS-container" mkdir -p "/var/lib/machines/$CONTAINER" mkdir -p "/run/systemd/system/systemd-nspawn@$CONTAINER.service.d" diff --git a/test/units/testsuite-74.delta.sh b/test/units/TEST-74-AUX-UTILS.delta.sh similarity index 100% rename from test/units/testsuite-74.delta.sh rename to test/units/TEST-74-AUX-UTILS.delta.sh diff --git a/test/units/testsuite-74.escape.sh b/test/units/TEST-74-AUX-UTILS.escape.sh similarity index 100% rename from test/units/testsuite-74.escape.sh rename to test/units/TEST-74-AUX-UTILS.escape.sh diff --git a/test/units/testsuite-74.firstboot.sh b/test/units/TEST-74-AUX-UTILS.firstboot.sh similarity index 100% rename from test/units/testsuite-74.firstboot.sh rename to test/units/TEST-74-AUX-UTILS.firstboot.sh diff --git a/test/units/testsuite-74.id128.sh b/test/units/TEST-74-AUX-UTILS.id128.sh similarity index 100% rename from test/units/testsuite-74.id128.sh rename to test/units/TEST-74-AUX-UTILS.id128.sh diff --git a/test/units/testsuite-74.machine-id-setup.sh b/test/units/TEST-74-AUX-UTILS.machine-id-setup.sh similarity index 100% rename from test/units/testsuite-74.machine-id-setup.sh rename to test/units/TEST-74-AUX-UTILS.machine-id-setup.sh diff --git a/test/units/testsuite-74.modules-load.sh b/test/units/TEST-74-AUX-UTILS.modules-load.sh similarity index 100% rename from test/units/testsuite-74.modules-load.sh rename to test/units/TEST-74-AUX-UTILS.modules-load.sh diff --git a/test/units/testsuite-74.mount.sh b/test/units/TEST-74-AUX-UTILS.mount.sh similarity index 100% rename from test/units/testsuite-74.mount.sh rename to test/units/TEST-74-AUX-UTILS.mount.sh diff --git a/test/units/testsuite-74.network-generator.sh b/test/units/TEST-74-AUX-UTILS.network-generator.sh similarity index 100% rename from test/units/testsuite-74.network-generator.sh rename to test/units/TEST-74-AUX-UTILS.network-generator.sh diff --git a/test/units/testsuite-74.networkctl.sh b/test/units/TEST-74-AUX-UTILS.networkctl.sh similarity index 100% rename from test/units/testsuite-74.networkctl.sh rename to test/units/TEST-74-AUX-UTILS.networkctl.sh diff --git a/test/units/testsuite-74.path.sh b/test/units/TEST-74-AUX-UTILS.path.sh similarity index 100% rename from test/units/testsuite-74.path.sh rename to test/units/TEST-74-AUX-UTILS.path.sh diff --git a/test/units/testsuite-74.pstore.sh b/test/units/TEST-74-AUX-UTILS.pstore.sh similarity index 100% rename from test/units/testsuite-74.pstore.sh rename to test/units/TEST-74-AUX-UTILS.pstore.sh diff --git a/test/units/testsuite-74.run.sh b/test/units/TEST-74-AUX-UTILS.run.sh similarity index 100% rename from test/units/testsuite-74.run.sh rename to test/units/TEST-74-AUX-UTILS.run.sh diff --git a/test/units/testsuite-74.service b/test/units/TEST-74-AUX-UTILS.service similarity index 100% rename from test/units/testsuite-74.service rename to test/units/TEST-74-AUX-UTILS.service diff --git a/test/units/testsuite-74.sh b/test/units/TEST-74-AUX-UTILS.sh similarity index 100% rename from test/units/testsuite-74.sh rename to test/units/TEST-74-AUX-UTILS.sh diff --git a/test/units/testsuite-74.socket.sh b/test/units/TEST-74-AUX-UTILS.socket.sh similarity index 100% rename from test/units/testsuite-74.socket.sh rename to test/units/TEST-74-AUX-UTILS.socket.sh diff --git a/test/units/testsuite-74.ssh.sh b/test/units/TEST-74-AUX-UTILS.ssh.sh similarity index 100% rename from test/units/testsuite-74.ssh.sh rename to test/units/TEST-74-AUX-UTILS.ssh.sh diff --git a/test/units/testsuite-74.varlinkctl.sh b/test/units/TEST-74-AUX-UTILS.varlinkctl.sh similarity index 100% rename from test/units/testsuite-74.varlinkctl.sh rename to test/units/TEST-74-AUX-UTILS.varlinkctl.sh diff --git a/test/units/testsuite-74.vpick.sh b/test/units/TEST-74-AUX-UTILS.vpick.sh similarity index 100% rename from test/units/testsuite-74.vpick.sh rename to test/units/TEST-74-AUX-UTILS.vpick.sh diff --git a/test/units/TEST-75-RESOLVED.service b/test/units/TEST-75-RESOLVED.service new file mode 100644 index 0000000000..3368e04b99 --- /dev/null +++ b/test/units/TEST-75-RESOLVED.service @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[Unit] +Description=TEST-75-RESOLVED + +[Service] +ExecStartPre=rm -f /failed /testok +ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh +Type=oneshot diff --git a/test/units/testsuite-75.sh b/test/units/TEST-75-RESOLVED.sh similarity index 100% rename from test/units/testsuite-75.sh rename to test/units/TEST-75-RESOLVED.sh diff --git a/test/units/testsuite-76.service b/test/units/TEST-76-SYSCTL.service similarity index 100% rename from test/units/testsuite-76.service rename to test/units/TEST-76-SYSCTL.service diff --git a/test/units/testsuite-76.sh b/test/units/TEST-76-SYSCTL.sh similarity index 100% rename from test/units/testsuite-76.sh rename to test/units/TEST-76-SYSCTL.sh diff --git a/test/units/testsuite-78.service b/test/units/TEST-78-SIGQUEUE.service similarity index 100% rename from test/units/testsuite-78.service rename to test/units/TEST-78-SIGQUEUE.service diff --git a/test/units/testsuite-78.sh b/test/units/TEST-78-SIGQUEUE.sh similarity index 100% rename from test/units/testsuite-78.sh rename to test/units/TEST-78-SIGQUEUE.sh diff --git a/test/units/testsuite-79.service b/test/units/TEST-79-MEMPRESS.service similarity index 100% rename from test/units/testsuite-79.service rename to test/units/TEST-79-MEMPRESS.service diff --git a/test/units/testsuite-79.sh b/test/units/TEST-79-MEMPRESS.sh similarity index 94% rename from test/units/testsuite-79.sh rename to test/units/TEST-79-MEMPRESS.sh index 205f7f3da3..4ce73d4c29 100755 --- a/test/units/testsuite-79.sh +++ b/test/units/TEST-79-MEMPRESS.sh @@ -15,7 +15,7 @@ fi systemd-analyze log-level debug -CGROUP=/sys/fs/cgroup/"$(systemctl show testsuite-79.service -P ControlGroup)" +CGROUP=/sys/fs/cgroup/"$(systemctl show TEST-79-MEMPRESS.service -P ControlGroup)" test -d "$CGROUP" if ! test -f "$CGROUP"/memory.pressure ; then diff --git a/test/units/testsuite-80.service b/test/units/TEST-80-NOTIFYACCESS.service similarity index 100% rename from test/units/testsuite-80.service rename to test/units/TEST-80-NOTIFYACCESS.service diff --git a/test/units/testsuite-80.sh b/test/units/TEST-80-NOTIFYACCESS.sh similarity index 100% rename from test/units/testsuite-80.sh rename to test/units/TEST-80-NOTIFYACCESS.sh diff --git a/test/units/testsuite-81.debug-generator.sh b/test/units/TEST-81-GENERATORS.debug-generator.sh similarity index 100% rename from test/units/testsuite-81.debug-generator.sh rename to test/units/TEST-81-GENERATORS.debug-generator.sh diff --git a/test/units/testsuite-81.environment-d-generator.sh b/test/units/TEST-81-GENERATORS.environment-d-generator.sh similarity index 100% rename from test/units/testsuite-81.environment-d-generator.sh rename to test/units/TEST-81-GENERATORS.environment-d-generator.sh diff --git a/test/units/testsuite-81.fstab-generator.sh b/test/units/TEST-81-GENERATORS.fstab-generator.sh similarity index 100% rename from test/units/testsuite-81.fstab-generator.sh rename to test/units/TEST-81-GENERATORS.fstab-generator.sh diff --git a/test/units/testsuite-81.getty-generator.sh b/test/units/TEST-81-GENERATORS.getty-generator.sh similarity index 100% rename from test/units/testsuite-81.getty-generator.sh rename to test/units/TEST-81-GENERATORS.getty-generator.sh diff --git a/test/units/testsuite-81.run-generator.sh b/test/units/TEST-81-GENERATORS.run-generator.sh similarity index 100% rename from test/units/testsuite-81.run-generator.sh rename to test/units/TEST-81-GENERATORS.run-generator.sh diff --git a/test/units/testsuite-81.service b/test/units/TEST-81-GENERATORS.service similarity index 100% rename from test/units/testsuite-81.service rename to test/units/TEST-81-GENERATORS.service diff --git a/test/units/testsuite-81.sh b/test/units/TEST-81-GENERATORS.sh similarity index 100% rename from test/units/testsuite-81.sh rename to test/units/TEST-81-GENERATORS.sh diff --git a/test/units/testsuite-81.system-update-generator.sh b/test/units/TEST-81-GENERATORS.system-update-generator.sh similarity index 100% rename from test/units/testsuite-81.system-update-generator.sh rename to test/units/TEST-81-GENERATORS.system-update-generator.sh diff --git a/test/units/testsuite-82.service b/test/units/TEST-82-SOFTREBOOT.service similarity index 100% rename from test/units/testsuite-82.service rename to test/units/TEST-82-SOFTREBOOT.service diff --git a/test/units/testsuite-82.sh b/test/units/TEST-82-SOFTREBOOT.sh similarity index 79% rename from test/units/testsuite-82.sh rename to test/units/TEST-82-SOFTREBOOT.sh index 9747602d19..7a1d8a9221 100755 --- a/test/units/testsuite-82.sh +++ b/test/units/TEST-82-SOFTREBOOT.sh @@ -23,13 +23,13 @@ systemd-analyze log-level debug export SYSTEMD_LOG_LEVEL=debug -if [ -f /run/testsuite82.touch3 ]; then +if [ -f /run/TEST-82-SOFTREBOOT.touch3 ]; then echo "This is the fourth boot!" systemd-notify --status="Fourth Boot" test "$(busctl -j get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager SoftRebootsCount | jq -r '.data')" -eq 3 - rm /run/testsuite82.touch3 + rm /run/TEST-82-SOFTREBOOT.touch3 mount rmdir /original-root /run/nextroot @@ -39,10 +39,10 @@ if [ -f /run/testsuite82.touch3 ]; then test "$x" = "oinkoink" # Check that the surviving services are still around - test "$(systemctl show -P ActiveState testsuite-82-survive.service)" = "active" - test "$(systemctl show -P ActiveState testsuite-82-survive-argv.service)" = "active" - test "$(systemctl show -P ActiveState testsuite-82-nosurvive-sigterm.service)" != "active" - test "$(systemctl show -P ActiveState testsuite-82-nosurvive.service)" != "active" + test "$(systemctl show -P ActiveState TEST-82-SOFTREBOOT-survive.service)" = "active" + test "$(systemctl show -P ActiveState TEST-82-SOFTREBOOT-survive-argv.service)" = "active" + test "$(systemctl show -P ActiveState TEST-82-SOFTREBOOT-nosurvive-sigterm.service)" != "active" + test "$(systemctl show -P ActiveState TEST-82-SOFTREBOOT-nosurvive.service)" != "active" # Check journals journalctl -o short-monotonic --no-hostname --grep '(will soft-reboot|KILL|corrupt)' @@ -50,13 +50,13 @@ if [ -f /run/testsuite82.touch3 ]; then # All succeeded, exit cleanly now -elif [ -f /run/testsuite82.touch2 ]; then +elif [ -f /run/TEST-82-SOFTREBOOT.touch2 ]; then echo "This is the third boot!" systemd-notify --status="Third Boot" test "$(busctl -j get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager SoftRebootsCount | jq -r '.data')" -eq 2 - rm /run/testsuite82.touch2 + rm /run/TEST-82-SOFTREBOOT.touch2 # Check that the fdstore entry still exists test "$LISTEN_FDS" -eq 2 @@ -70,10 +70,10 @@ elif [ -f /run/testsuite82.touch2 ]; then rm "$T" # Check that the surviving services are still around - test "$(systemctl show -P ActiveState testsuite-82-survive.service)" = "active" - test "$(systemctl show -P ActiveState testsuite-82-survive-argv.service)" = "active" - test "$(systemctl show -P ActiveState testsuite-82-nosurvive-sigterm.service)" != "active" - test "$(systemctl show -P ActiveState testsuite-82-nosurvive.service)" != "active" + test "$(systemctl show -P ActiveState TEST-82-SOFTREBOOT-survive.service)" = "active" + test "$(systemctl show -P ActiveState TEST-82-SOFTREBOOT-survive-argv.service)" = "active" + test "$(systemctl show -P ActiveState TEST-82-SOFTREBOOT-nosurvive-sigterm.service)" != "active" + test "$(systemctl show -P ActiveState TEST-82-SOFTREBOOT-nosurvive.service)" != "active" # Test that we really are in the new overlayfs root fs read -r x ..sh) +# Run all subtests (i.e. files named as $TESTNAME..sh) run_subtests() { local subtests=("${0%.sh}".*.sh) local subtest diff --git a/test/units/testsuite-23-short-lived.sh b/test/units/testsuite-23-short-lived.sh deleted file mode 100755 index 4a12c7f498..0000000000 --- a/test/units/testsuite-23-short-lived.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: LGPL-2.1-or-later -set -ex - -if [ -f /tmp/testsuite-23.counter ] ; then - read -r counter < /tmp/testsuite-23.counter - counter=$((counter + 1)) -else - counter=0 -fi - -echo "$counter" >/tmp/testsuite-23.counter - -if [ "$counter" -eq 5 ] ; then - systemctl kill --kill-whom=main -sUSR1 testsuite-23.service -fi - -exec sleep 1.5 diff --git a/test/units/testsuite-23.JoinsNamespaceOf.sh b/test/units/testsuite-23.JoinsNamespaceOf.sh deleted file mode 100755 index 68ba465072..0000000000 --- a/test/units/testsuite-23.JoinsNamespaceOf.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: LGPL-2.1-or-later - -set -eux -set -o pipefail - -# Test JoinsNamespaceOf= with PrivateTmp=yes - -systemd-analyze log-level debug -systemd-analyze log-target journal - -# simple case -systemctl start testsuite-23-joins-namespace-of-1.service -systemctl start testsuite-23-joins-namespace-of-2.service -systemctl start testsuite-23-joins-namespace-of-3.service -systemctl stop testsuite-23-joins-namespace-of-1.service - -# inverse dependency -systemctl start testsuite-23-joins-namespace-of-4.service -systemctl start testsuite-23-joins-namespace-of-5.service -systemctl stop testsuite-23-joins-namespace-of-4.service - -# transitive dependency -systemctl start testsuite-23-joins-namespace-of-6.service -systemctl start testsuite-23-joins-namespace-of-7.service -systemctl start testsuite-23-joins-namespace-of-8.service -systemctl start testsuite-23-joins-namespace-of-9.service -systemctl stop testsuite-23-joins-namespace-of-6.service -systemctl stop testsuite-23-joins-namespace-of-8.service - -systemd-analyze log-level info diff --git a/test/units/testsuite-23.Upholds.sh b/test/units/testsuite-23.Upholds.sh deleted file mode 100755 index e62f9c64de..0000000000 --- a/test/units/testsuite-23.Upholds.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: LGPL-2.1-or-later - -set -eux -set -o pipefail - -# Test OnSuccess= + Uphold= + PropagatesStopTo= + BindsTo= - -systemd-analyze log-level debug -systemd-analyze log-target journal - -# Idea is this: -# 1. we start testsuite-23-success.service -# 2. which through OnSuccess= starts testsuite-23-fail.service, -# 3. which through OnFailure= starts testsuite-23-uphold.service, -# 4. which through Uphold= starts/keeps testsuite-23-short-lived.service running, -# 5. which will sleep 1s when invoked, and on the 5th invocation send us a SIGUSR1 -# 6. once we got that we finish cleanly - -sigusr1=0 -trap sigusr1=1 SIGUSR1 - -trap -p SIGUSR1 - -systemctl start testsuite-23-success.service - -while [ "$sigusr1" -eq 0 ] ; do - sleep .5 -done - -systemctl stop testsuite-23-uphold.service - -systemctl enable testsuite-23-upheldby-install.service - -# Idea is this: -# 1. we start testsuite-23-retry-uphold.service -# 2. which through Uphold= starts testsuite-23-retry-upheld.service -# 3. which through Requires= starts testsuite-23-retry-fail.service -# 4. which fails as /tmp/testsuite-23-retry-fail does not exist, so testsuite-23-retry-upheld.service -# is no longer restarted -# 5. we create /tmp/testsuite-23-retry-fail -# 6. now testsuite-23-retry-upheld.service will be restarted since upheld, and its dependency will -# be satisfied - -rm -f /tmp/testsuite-23-retry-fail -systemctl start testsuite-23-retry-uphold.service -systemctl is-active testsuite-23-upheldby-install.service - -until systemctl is-failed testsuite-23-retry-fail.service ; do - sleep .5 -done - -(! systemctl is-active testsuite-23-retry-upheld.service) - -touch /tmp/testsuite-23-retry-fail - -until systemctl is-active testsuite-23-retry-upheld.service ; do - sleep .5 -done - -systemctl stop testsuite-23-retry-uphold.service testsuite-23-retry-fail.service testsuite-23-retry-upheld.service - -# Idea is this: -# 1. we start testsuite-23-prop-stop-one.service -# 2. which through Wants=/After= pulls in testsuite-23-prop-stop-two.service as well -# 3. testsuite-23-prop-stop-one.service then sleeps indefinitely -# 4. testsuite-23-prop-stop-two.service sleeps a short time and exits -# 5. the StopPropagatedFrom= dependency between the two should ensure *both* will exit as result -# 6. an ExecStopPost= line on testsuite-23-prop-stop-one.service will send us a SIGUSR2 -# 7. once we got that we finish cleanly - -sigusr2=0 -trap sigusr2=1 SIGUSR2 - -systemctl start testsuite-23-prop-stop-one.service - -while [ "$sigusr2" -eq 0 ] ; do - sleep .5 -done - - -# Idea is this: -# 1. we start testsuite-23-binds-to.service -# 2. which through BindsTo=/After= pulls in testsuite-23-bound-by.service as well -# 3. testsuite-23-bound-by.service suddenly dies -# 4. testsuite-23-binds-to.service should then also be pulled down (it otherwise just hangs) -# 6. an ExecStopPost= line on testsuite-23-binds-to.service will send us a SIGRTMIN1+1 -# 7. once we got that we finish cleanly - -sigrtmin1=0 -trap sigrtmin1=1 SIGRTMIN+1 - -systemctl start testsuite-23-binds-to.service - -while [ "$sigrtmin1" -eq 0 ] ; do - sleep .5 -done - -systemd-analyze log-level info diff --git a/test/units/testsuite-23.runtime-bind-paths.sh b/test/units/testsuite-23.runtime-bind-paths.sh deleted file mode 100755 index 65c2dbf41d..0000000000 --- a/test/units/testsuite-23.runtime-bind-paths.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: LGPL-2.1-or-later -# shellcheck disable=SC2016 -set -eux -set -o pipefail - -# Test adding new BindPaths while unit is already running - -at_exit() { - set +e - - rm -f /run/testsuite-23-marker-{fixed,runtime} - rm -fr /run/inaccessible -} - -trap at_exit EXIT - -echo "MARKER_FIXED" >/run/testsuite-23-marker-fixed -mkdir /run/inaccessible - -systemctl start testsuite-23-namespaced.service - -# Ensure that inaccessible paths aren't bypassed by the runtime setup, -(! systemctl bind --mkdir testsuite-23-namespaced.service /run/testsuite-23-marker-fixed /run/inaccessible/testfile-marker-fixed) - -echo "MARKER_WRONG" >/run/testsuite-23-marker-wrong -echo "MARKER_RUNTIME" >/run/testsuite-23-marker-runtime - -# Mount twice to exercise mount-beneath (on kernel 6.5+, on older kernels it will just overmount) -systemctl bind --mkdir testsuite-23-namespaced.service /run/testsuite-23-marker-wrong /tmp/testfile-marker-runtime -test "$(systemctl show -P SubState testsuite-23-namespaced.service)" = "running" -systemctl bind --mkdir testsuite-23-namespaced.service /run/testsuite-23-marker-runtime /tmp/testfile-marker-runtime - -timeout 10 bash -xec 'while [[ "$(systemctl show -P SubState testsuite-23-namespaced.service)" == running ]]; do sleep .5; done' -systemctl is-active testsuite-23-namespaced.service - -# Now test that systemctl bind fails when attempted on a non-namespaced unit -systemctl start testsuite-23-non-namespaced.service - -(! systemctl bind --mkdir testsuite-49-non-namespaced.service /run/testsuite-23-marker-runtime /tmp/testfile-marker-runtime) - -timeout 10 bash -xec 'while [[ "$(systemctl show -P SubState testsuite-23-non-namespaced.service)" == running ]]; do sleep .5; done' -(! systemctl is-active testsuite-23-non-namespaced.service) diff --git a/test/units/testsuite-23.start-stop-no-reload.sh b/test/units/testsuite-23.start-stop-no-reload.sh deleted file mode 100755 index e40990bdbb..0000000000 --- a/test/units/testsuite-23.start-stop-no-reload.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: LGPL-2.1-or-later -# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- -# ex: ts=8 sw=4 sts=4 et filetype=sh -set -eux -set -o pipefail - -# Test start & stop operations without daemon-reload - -at_exit() { - set +e - - rm -f /run/systemd/system/testsuite-23-no-reload.{service,target} -} - -trap at_exit EXIT - -cat >/run/systemd/system/testsuite-23-no-reload.target </run/systemd/system/testsuite-23-no-reload.service </run/systemd/system/testsuite-23-no-reload.service </run/systemd/system/testsuite-23-no-reload.target </run/systemd/system/testsuite-23-no-reload.service <&2 "Missing container template, probably not running in TEST-13-NSPAWN?" exit 1 fi mkdir -p "$root" - cp -a /usr/share/testsuite-13-container-template/* "$root" + cp -a /usr/share/TEST-13-NSPAWN-container-template/* "$root" coverage_create_nspawn_dropin "$root" } From f483e083139af72fc478f51422c97d6a0b96ce42 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sat, 11 May 2024 19:40:03 +0200 Subject: [PATCH 05/21] test: Simplify argument/variable names --- test/integration-test-wrapper.py | 18 +++++++++--------- test/meson.build | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/test/integration-test-wrapper.py b/test/integration-test-wrapper.py index 6e2c0aede7..c762cc7ab7 100755 --- a/test/integration-test-wrapper.py +++ b/test/integration-test-wrapper.py @@ -42,7 +42,7 @@ def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('--meson-source-dir', required=True, type=Path) parser.add_argument('--meson-build-dir', required=True, type=Path) - parser.add_argument('--test-name', required=True) + parser.add_argument('--name', required=True) parser.add_argument('--storage', required=True) parser.add_argument('--firmware', required=True) parser.add_argument('--slow', action=argparse.BooleanOptionalAction) @@ -50,15 +50,15 @@ def main(): args = parser.parse_args() if not bool(int(os.getenv("SYSTEMD_INTEGRATION_TESTS", "0"))): - print(f"SYSTEMD_INTEGRATION_TESTS=1 not found in environment, skipping {args.test_name}", file=sys.stderr) + print(f"SYSTEMD_INTEGRATION_TESTS=1 not found in environment, skipping {args.name}", file=sys.stderr) exit(77) if args.slow and not bool(int(os.getenv("SYSTEMD_SLOW_TESTS", "0"))): - print(f"SYSTEMD_SLOW_TESTS=1 not found in environment, skipping {args.test_name}", file=sys.stderr) + print(f"SYSTEMD_SLOW_TESTS=1 not found in environment, skipping {args.name}", file=sys.stderr) exit(77) - name = args.test_name + (f"-{i}" if (i := os.getenv("MESON_TEST_ITERATION")) else "") - test_unit = f"{args.test_name}.service" + name = args.name + (f"-{i}" if (i := os.getenv("MESON_TEST_ITERATION")) else "") + unit = f"{args.name}.service" dropin = textwrap.dedent( """\ @@ -121,7 +121,7 @@ def main(): else [] ), '--credential', - f"systemd.unit-dropin.{test_unit}={shlex.quote(dropin)}", + f"systemd.unit-dropin.{unit}={shlex.quote(dropin)}", '--runtime-network=none', '--runtime-scratch=no', '--append', @@ -129,8 +129,8 @@ def main(): '--kernel-command-line-extra', ' '.join([ 'systemd.hostname=H', - f"SYSTEMD_UNIT_PATH=/usr/lib/systemd/tests/testdata/{args.test_name}.units:/usr/lib/systemd/tests/testdata/units:", - f"systemd.unit={test_unit}", + f"SYSTEMD_UNIT_PATH=/usr/lib/systemd/tests/testdata/{args.name}.units:/usr/lib/systemd/tests/testdata/units:", + f"systemd.unit={unit}", 'systemd.mask=systemd-networkd-wait-online.service', *( [ @@ -183,7 +183,7 @@ def main(): ops += [f"gh run download {id} --name {artifact} -D ci/{artifact}"] journal_file = Path(f"ci/{artifact}/test/journal/{name}.journal") - ops += [f"journalctl --file {journal_file} --no-hostname -o short-monotonic -u {test_unit} -p info"] + ops += [f"journalctl --file {journal_file} --no-hostname -o short-monotonic -u {unit} -p info"] print("Test failed, relevant logs can be viewed with: \n\n" f"{(' && '.join(ops))}\n", file=sys.stderr) diff --git a/test/meson.build b/test/meson.build index 26fbd56282..73b72281ca 100644 --- a/test/meson.build +++ b/test/meson.build @@ -370,7 +370,7 @@ foreach integration_test : integration_tests integration_test_args = [ '--meson-source-dir', meson.project_source_root(), '--meson-build-dir', meson.project_build_root(), - '--test-name', integration_test['name'], + '--name', integration_test['name'], '--storage', integration_test['storage'], '--firmware', integration_test['firmware'], ] From 4ce12c393396401398210cd4002f32ad236995b2 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sat, 11 May 2024 20:22:10 +0200 Subject: [PATCH 06/21] test: Disable tests via 'enabled' field This allows doing other stuff with the test without actually defining the test, such as generating a service unit automatically. --- test/TEST-08-INITRD/meson.build | 8 ++++++++ test/TEST-24-CRYPTSETUP/meson.build | 8 ++++++++ test/TEST-54-CREDS/meson.build | 8 ++++++++ test/TEST-64-UDEV-STORAGE/meson.build | 8 ++++++++ test/TEST-69-SHUTDOWN/meson.build | 8 ++++++++ test/TEST-82-SOFTREBOOT/meson.build | 8 ++++++++ test/meson.build | 17 +++++++++++------ 7 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 test/TEST-08-INITRD/meson.build create mode 100644 test/TEST-24-CRYPTSETUP/meson.build create mode 100644 test/TEST-54-CREDS/meson.build create mode 100644 test/TEST-64-UDEV-STORAGE/meson.build create mode 100644 test/TEST-69-SHUTDOWN/meson.build create mode 100644 test/TEST-82-SOFTREBOOT/meson.build diff --git a/test/TEST-08-INITRD/meson.build b/test/TEST-08-INITRD/meson.build new file mode 100644 index 0000000000..d53dbe562c --- /dev/null +++ b/test/TEST-08-INITRD/meson.build @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'enabled' : false, + }, +] diff --git a/test/TEST-24-CRYPTSETUP/meson.build b/test/TEST-24-CRYPTSETUP/meson.build new file mode 100644 index 0000000000..d53dbe562c --- /dev/null +++ b/test/TEST-24-CRYPTSETUP/meson.build @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'enabled' : false, + }, +] diff --git a/test/TEST-54-CREDS/meson.build b/test/TEST-54-CREDS/meson.build new file mode 100644 index 0000000000..d53dbe562c --- /dev/null +++ b/test/TEST-54-CREDS/meson.build @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'enabled' : false, + }, +] diff --git a/test/TEST-64-UDEV-STORAGE/meson.build b/test/TEST-64-UDEV-STORAGE/meson.build new file mode 100644 index 0000000000..d53dbe562c --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/meson.build @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'enabled' : false, + }, +] diff --git a/test/TEST-69-SHUTDOWN/meson.build b/test/TEST-69-SHUTDOWN/meson.build new file mode 100644 index 0000000000..d53dbe562c --- /dev/null +++ b/test/TEST-69-SHUTDOWN/meson.build @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'enabled' : false, + }, +] diff --git a/test/TEST-82-SOFTREBOOT/meson.build b/test/TEST-82-SOFTREBOOT/meson.build new file mode 100644 index 0000000000..d53dbe562c --- /dev/null +++ b/test/TEST-82-SOFTREBOOT/meson.build @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +integration_tests += [ + integration_test_template + { + 'name' : fs.name(meson.current_source_dir()), + 'enabled' : false, + }, +] diff --git a/test/meson.build b/test/meson.build index 73b72281ca..4a7931ab1e 100644 --- a/test/meson.build +++ b/test/meson.build @@ -282,6 +282,7 @@ integration_test_template = { 'priority' : 0, 'firmware' : 'linux', 'slow' : false, + 'enabled' : true, } testdata_subdirs = [ 'auxv', @@ -306,7 +307,7 @@ foreach dirname : [ 'TEST-05-RLIMITS', 'TEST-06-SELINUX', 'TEST-07-PID1', - # 'TEST-08-INITRD', + 'TEST-08-INITRD', 'TEST-09-REBOOT', 'TEST-13-NSPAWN', 'TEST-15-DROPIN', @@ -317,7 +318,7 @@ foreach dirname : [ 'TEST-21-DFUZZER', 'TEST-22-TMPFILES', 'TEST-23-UNIT-FILE', - # 'TEST-24-CRYPTSETUP', + 'TEST-24-CRYPTSETUP', 'TEST-25-IMPORT', 'TEST-26-SYSTEMCTL', 'TEST-29-PORTABLE', @@ -335,19 +336,19 @@ foreach dirname : [ 'TEST-50-DISSECT', 'TEST-52-HONORFIRSTSHUTDOWN', 'TEST-53-ISSUE-16347', - # 'TEST-54-CREDS', + '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-64-UDEV-STORAGE', 'TEST-65-ANALYZE', 'TEST-66-DEVICE-ISOLATION', 'TEST-67-INTEGRITY', 'TEST-68-PROPAGATE-EXIT-STATUS', - # 'TEST-69-SHUTDOWN', + 'TEST-69-SHUTDOWN', 'TEST-70-TPM2', 'TEST-71-HOSTNAME', 'TEST-72-SYSUPDATE', @@ -359,7 +360,7 @@ foreach dirname : [ 'TEST-79-MEMPRESS', 'TEST-80-NOTIFYACCESS', 'TEST-81-GENERATORS', - # 'TEST-82-SOFTREBOOT', + 'TEST-82-SOFTREBOOT', 'TEST-83-BTRFS', 'TEST-84-STORAGETM', ] @@ -391,6 +392,10 @@ foreach integration_test : integration_tests integration_test_env += {'SYSTEMD_SLOW_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. From c87e243fef196f7e44fd597169f45269e9a0ccc7 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sun, 12 May 2024 22:01:19 +0200 Subject: [PATCH 07/21] test: Rename mkosi_args to mkosi-args --- test/TEST-02-UNITTESTS/meson.build | 2 +- test/TEST-06-SELINUX/meson.build | 2 +- test/TEST-53-ISSUE-16347/meson.build | 2 +- test/TEST-55-OOMD/meson.build | 2 +- test/meson.build | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/TEST-02-UNITTESTS/meson.build b/test/TEST-02-UNITTESTS/meson.build index 89a3edf2ad..8da5555842 100644 --- a/test/TEST-02-UNITTESTS/meson.build +++ b/test/TEST-02-UNITTESTS/meson.build @@ -3,7 +3,7 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), - 'mkosi_args' : integration_test_template['mkosi_args'] + [ + 'mkosi-args' : integration_test_template['mkosi-args'] + [ '''--kernel-command-line-extra= frobnicate! diff --git a/test/TEST-06-SELINUX/meson.build b/test/TEST-06-SELINUX/meson.build index e3cf0030c5..5376f943c2 100644 --- a/test/TEST-06-SELINUX/meson.build +++ b/test/TEST-06-SELINUX/meson.build @@ -3,7 +3,7 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), - 'mkosi_args' : integration_test_template['mkosi_args'] + [ + 'mkosi-args' : integration_test_template['mkosi-args'] + [ '--kernel-command-line-extra=apparmor=0 selinux=1 enforcing=0 lsm=selinux systemd.wants=autorelabel.service systemd.wants=firstboot-autorelabel.service' ], # FIXME; Figure out why reboot sometimes hangs with 'linux' firmware. diff --git a/test/TEST-53-ISSUE-16347/meson.build b/test/TEST-53-ISSUE-16347/meson.build index 91b6f42274..8d6df66cb0 100644 --- a/test/TEST-53-ISSUE-16347/meson.build +++ b/test/TEST-53-ISSUE-16347/meson.build @@ -3,7 +3,7 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), - 'mkosi_args' : integration_test_template['mkosi_args'] + [ + 'mkosi-args' : integration_test_template['mkosi-args'] + [ '--configure-script', meson.current_source_dir() / 'mkosi.configure', ], }, diff --git a/test/TEST-55-OOMD/meson.build b/test/TEST-55-OOMD/meson.build index 132a6b3080..9aef9165cf 100644 --- a/test/TEST-55-OOMD/meson.build +++ b/test/TEST-55-OOMD/meson.build @@ -3,7 +3,7 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), - 'mkosi_args' : integration_test_template['mkosi_args'] + [ + 'mkosi-args' : integration_test_template['mkosi-args'] + [ '--credential=@0@'.format(meson.current_source_dir() / 'systemd.unit-dropin.init.scope') ] }, diff --git a/test/meson.build b/test/meson.build index 4a7931ab1e..6cf431904e 100644 --- a/test/meson.build +++ b/test/meson.build @@ -276,7 +276,7 @@ endif integration_test_wrapper = find_program('integration-test-wrapper.py') integration_tests = [] integration_test_template = { - 'mkosi_args' : [], + 'mkosi-args' : [], 'timeout' : 1800, 'storage' : 'volatile', 'priority' : 0, @@ -380,7 +380,7 @@ foreach integration_test : integration_tests integration_test_args += ['--slow'] endif - integration_test_args += ['--'] + integration_test['mkosi_args'] + integration_test_args += ['--'] + integration_test['mkosi-args'] integration_test_env = {} From f6af2976aa267d762da5a1dc0f6cfa1059f879e9 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Mon, 13 May 2024 12:36:40 +0200 Subject: [PATCH 08/21] TEST-06-SELINUX: Simplify auto-relabeling Let's ship a .autorelabel file so we can get rid of firstboot-autorelabel.service. --- mkosi.images/system/mkosi.extra/.autorelabel | 1 + .../lib/systemd/system-preset/00-mkosi.preset | 3 +++ test/TEST-06-SELINUX/meson.build | 2 +- test/units/autorelabel.service | 13 ++++-------- test/units/firstboot-autorelabel.service | 20 ------------------- 5 files changed, 9 insertions(+), 30 deletions(-) create mode 100644 mkosi.images/system/mkosi.extra/.autorelabel delete mode 100644 test/units/firstboot-autorelabel.service diff --git a/mkosi.images/system/mkosi.extra/.autorelabel b/mkosi.images/system/mkosi.extra/.autorelabel new file mode 100644 index 0000000000..bd4fba4dfe --- /dev/null +++ b/mkosi.images/system/mkosi.extra/.autorelabel @@ -0,0 +1 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later diff --git a/mkosi.images/system/mkosi.extra/usr/lib/systemd/system-preset/00-mkosi.preset b/mkosi.images/system/mkosi.extra/usr/lib/systemd/system-preset/00-mkosi.preset index fb82f3608f..aea1b5eea0 100644 --- a/mkosi.images/system/mkosi.extra/usr/lib/systemd/system-preset/00-mkosi.preset +++ b/mkosi.images/system/mkosi.extra/usr/lib/systemd/system-preset/00-mkosi.preset @@ -31,3 +31,6 @@ disable auditd.service # systemd-timesyncd is not enabled by default in the default systemd preset so enable it here instead. enable systemd-timesyncd.service + +# Skipped if selinux is not enabled, required for TEST-06-SELINUX. +enable autorelabel.service diff --git a/test/TEST-06-SELINUX/meson.build b/test/TEST-06-SELINUX/meson.build index 5376f943c2..ec4b502b94 100644 --- a/test/TEST-06-SELINUX/meson.build +++ b/test/TEST-06-SELINUX/meson.build @@ -4,7 +4,7 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), 'mkosi-args' : integration_test_template['mkosi-args'] + [ - '--kernel-command-line-extra=apparmor=0 selinux=1 enforcing=0 lsm=selinux systemd.wants=autorelabel.service systemd.wants=firstboot-autorelabel.service' + '--kernel-command-line-extra=selinux=1 lsm=selinux' ], # FIXME; Figure out why reboot sometimes hangs with 'linux' firmware. 'firmware' : 'uefi', diff --git a/test/units/autorelabel.service b/test/units/autorelabel.service index fd652225d9..5f8386ee85 100644 --- a/test/units/autorelabel.service +++ b/test/units/autorelabel.service @@ -5,20 +5,15 @@ DefaultDependencies=no Requires=local-fs.target After=local-fs.target Conflicts=shutdown.target -Before=shutdown.target -Before=multi-user.target -# Needs to access /var, which may not have been populated yet -After=systemd-tmpfiles-setup.service -# Must wait for systemd-machine-id-commit or firstboot-autorelabel will reactivate autorelabel -After=systemd-machine-id-commit.service +Before=shutdown.target basic.target ConditionSecurity=selinux ConditionPathExists=|/.autorelabel +SuccessAction=reboot [Service] -ExecStart=sh -xec 'echo 0 >/sys/fs/selinux/enforce; fixfiles -f -F relabel; rm /.autorelabel; systemctl --force reboot' +ExecStart=sh -xec 'echo 0 >/sys/fs/selinux/enforce; fixfiles -f -F relabel; rm /.autorelabel;' Type=oneshot TimeoutSec=infinity -RemainAfterExit=yes [Install] -WantedBy=multi-user.target +WantedBy=basic.target diff --git a/test/units/firstboot-autorelabel.service b/test/units/firstboot-autorelabel.service deleted file mode 100644 index b69dcf72a3..0000000000 --- a/test/units/firstboot-autorelabel.service +++ /dev/null @@ -1,20 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=Activate relabelling on firstboot only -DefaultDependencies=no -Wants=first-boot-complete.target -Requires=local-fs.target -After=local-fs.target -Conflicts=shutdown.target -Before=shutdown.target -Before=first-boot-complete.target sysinit.target autorelabel.service -ConditionPathIsReadWrite=/etc -ConditionFirstBoot=yes - -[Service] -ExecStart=touch /.autorelabel -Type=oneshot -RemainAfterExit=yes - -[Install] -WantedBy=sysinit.target From 20e94309a741fe542997d751fbc058f296fd6676 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Tue, 14 May 2024 09:20:21 +0200 Subject: [PATCH 09/21] TEST-46-HOMED: Simplify service unit Let's remove the unneeded NotifyAccess=all and start the socket and service in the test itself instead of via the service unit. This makes the test unit identical to the other test units which will allow us to autogenerate it in a later commit. --- test/units/TEST-46-HOMED.service | 3 --- test/units/TEST-46-HOMED.sh | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/test/units/TEST-46-HOMED.service b/test/units/TEST-46-HOMED.service index 5efb9cc383..8fe6575834 100644 --- a/test/units/TEST-46-HOMED.service +++ b/test/units/TEST-46-HOMED.service @@ -3,11 +3,8 @@ Description=TEST-46-HOMED Wants=getty-pre.target Before=getty-pre.target -Requires=systemd-homed.service systemd-userdbd.socket -After=systemd-homed.service systemd-userdbd.socket [Service] ExecStartPre=rm -f /failed /testok ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh Type=oneshot -NotifyAccess=all diff --git a/test/units/TEST-46-HOMED.sh b/test/units/TEST-46-HOMED.sh index 5dc00f4862..ea718fa37c 100755 --- a/test/units/TEST-46-HOMED.sh +++ b/test/units/TEST-46-HOMED.sh @@ -35,6 +35,8 @@ wait_for_state() { FSTYPE="$(stat --file-system --format "%T" /)" +systemctl start systemd-homed.service systemd-userdbd.socket + systemd-analyze log-level debug systemctl service-log-level systemd-homed debug From 348f5017a40a518b041df0ed7071da8d5482ce5c Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sun, 12 May 2024 10:50:47 +0200 Subject: [PATCH 10/21] test: Generate basic testsuite services with meson Most of these are identical, let's just generate from a meson template. --- .../TEST-07-PID1.service | 3 +++ test/TEST-07-PID1/meson.build | 1 + .../TEST-16-EXTEND-TIMEOUT.service | 4 ++++ test/TEST-16-EXTEND-TIMEOUT/meson.build | 1 + test/TEST-32-OOMPOLICY/meson.build | 3 +++ .../TEST-44-LOG-NAMESPACE.service | 5 ++--- test/TEST-44-LOG-NAMESPACE/meson.build | 1 + .../TEST-69-SHUTDOWN.service | 3 +++ test/TEST-69-SHUTDOWN/meson.build | 1 + test/TEST-79-MEMPRESS/meson.build | 3 +++ .../TEST-82-SOFTREBOOT.service | 2 ++ test/TEST-82-SOFTREBOOT/meson.build | 1 + test/integration-test-wrapper.py | 10 ++++------ test/meson.build | 19 +++++++++++++++++++ test/test-functions | 5 ----- test/test.service.in | 12 ++++++++++++ test/units/TEST-01-BASIC.service | 10 ---------- test/units/TEST-02-UNITTESTS.service | 8 -------- test/units/TEST-03-JOBS.service | 9 --------- test/units/TEST-04-JOURNAL.service | 8 -------- test/units/TEST-05-RLIMITS.service | 8 -------- test/units/TEST-06-SELINUX.service | 8 -------- test/units/TEST-08-INITRD.service | 9 --------- test/units/TEST-09-REBOOT.service | 9 --------- test/units/TEST-13-NSPAWN.service | 8 -------- test/units/TEST-15-DROPIN.service | 8 -------- test/units/TEST-17-UDEV.service | 8 -------- test/units/TEST-18-FAILUREACTION.service | 8 -------- test/units/TEST-19-CGROUP.service | 8 -------- test/units/TEST-21-DFUZZERE.service | 10 ---------- test/units/TEST-22-TMPFILES.service | 11 ----------- test/units/TEST-23-UNIT-FILE.service | 8 -------- test/units/TEST-24-CRYPTSETUP.service | 9 --------- test/units/TEST-25-IMPORT.service | 8 -------- test/units/TEST-26-SYSTEMCTL.service | 8 -------- test/units/TEST-29-PORTABLE.service | 8 -------- test/units/TEST-30-ONCLOCKCHANGE.service | 8 -------- test/units/TEST-31-DEVICE-ENUMERATION.service | 8 -------- test/units/TEST-32-OOMPOLICY.service | 9 --------- test/units/TEST-34-DYNAMICUSERMIGRATE.service | 8 -------- test/units/TEST-35-LOGIN.service | 8 -------- test/units/TEST-36-NUMAPOLICY.service | 8 -------- test/units/TEST-38-FREEZER.service | 7 ------- test/units/TEST-43-PRIVATEUSER-UNPRIV.service | 10 ---------- test/units/TEST-45-TIMEDATE.service | 8 -------- test/units/TEST-46-HOMED.service | 10 ---------- test/units/TEST-50-DISSECT.service | 8 -------- test/units/TEST-52-HONORFIRSTSHUTDOWN.service | 7 ------- test/units/TEST-53-ISSUE-16347.service | 8 -------- test/units/TEST-54-CREDS.service | 8 -------- test/units/TEST-55-OOMD.service | 10 ---------- test/units/TEST-58-REPART.service | 7 ------- test/units/TEST-59-RELOADING-RESTART.service | 7 ------- test/units/TEST-60-MOUNT-RATELIMIT.service | 8 -------- test/units/TEST-62-RESTRICT-IFACES.service | 8 -------- test/units/TEST-63-PATH.service | 8 -------- test/units/TEST-64-UDEV-STORAGE.service | 8 -------- test/units/TEST-65-ANALYZE.service | 8 -------- test/units/TEST-66-DEVICEISOLATION.service | 8 -------- test/units/TEST-67-INTEGRITY.service | 9 --------- .../TEST-68-PROPAGATE-EXIT-STATUS.service | 7 ------- test/units/TEST-70-TPM2.service | 9 --------- test/units/TEST-71-HOSTNAME.service | 8 -------- test/units/TEST-72-SYSUPDATE.service | 8 -------- test/units/TEST-73-LOCALE.service | 8 -------- test/units/TEST-74-AUX-UTILS.service | 8 -------- test/units/TEST-75-RESOLVED.service | 8 -------- test/units/TEST-76-SYSCTL.service | 8 -------- test/units/TEST-78-SIGQUEUE.service | 7 ------- test/units/TEST-79-MEMPRESS.service | 8 -------- test/units/TEST-80-NOTIFYACCESS.service | 8 -------- test/units/TEST-81-GENERATORS.service | 8 -------- test/units/TEST-83-BTRFS.service | 8 -------- test/units/TEST-84-STORAGETM.service | 9 --------- 74 files changed, 60 insertions(+), 493 deletions(-) rename test/{units => TEST-07-PID1}/TEST-07-PID1.service (80%) rename test/{units => TEST-16-EXTEND-TIMEOUT}/TEST-16-EXTEND-TIMEOUT.service (86%) rename test/{units => TEST-44-LOG-NAMESPACE}/TEST-44-LOG-NAMESPACE.service (53%) rename test/{units => TEST-69-SHUTDOWN}/TEST-69-SHUTDOWN.service (60%) rename test/{units => TEST-82-SOFTREBOOT}/TEST-82-SOFTREBOOT.service (80%) create mode 100644 test/test.service.in delete mode 100644 test/units/TEST-01-BASIC.service delete mode 100644 test/units/TEST-02-UNITTESTS.service delete mode 100644 test/units/TEST-03-JOBS.service delete mode 100644 test/units/TEST-04-JOURNAL.service delete mode 100644 test/units/TEST-05-RLIMITS.service delete mode 100644 test/units/TEST-06-SELINUX.service delete mode 100644 test/units/TEST-08-INITRD.service delete mode 100644 test/units/TEST-09-REBOOT.service delete mode 100644 test/units/TEST-13-NSPAWN.service delete mode 100644 test/units/TEST-15-DROPIN.service delete mode 100644 test/units/TEST-17-UDEV.service delete mode 100644 test/units/TEST-18-FAILUREACTION.service delete mode 100644 test/units/TEST-19-CGROUP.service delete mode 100644 test/units/TEST-21-DFUZZERE.service delete mode 100644 test/units/TEST-22-TMPFILES.service delete mode 100644 test/units/TEST-23-UNIT-FILE.service delete mode 100644 test/units/TEST-24-CRYPTSETUP.service delete mode 100644 test/units/TEST-25-IMPORT.service delete mode 100644 test/units/TEST-26-SYSTEMCTL.service delete mode 100644 test/units/TEST-29-PORTABLE.service delete mode 100644 test/units/TEST-30-ONCLOCKCHANGE.service delete mode 100644 test/units/TEST-31-DEVICE-ENUMERATION.service delete mode 100644 test/units/TEST-32-OOMPOLICY.service delete mode 100644 test/units/TEST-34-DYNAMICUSERMIGRATE.service delete mode 100644 test/units/TEST-35-LOGIN.service delete mode 100644 test/units/TEST-36-NUMAPOLICY.service delete mode 100644 test/units/TEST-38-FREEZER.service delete mode 100644 test/units/TEST-43-PRIVATEUSER-UNPRIV.service delete mode 100644 test/units/TEST-45-TIMEDATE.service delete mode 100644 test/units/TEST-46-HOMED.service delete mode 100644 test/units/TEST-50-DISSECT.service delete mode 100644 test/units/TEST-52-HONORFIRSTSHUTDOWN.service delete mode 100644 test/units/TEST-53-ISSUE-16347.service delete mode 100644 test/units/TEST-54-CREDS.service delete mode 100644 test/units/TEST-55-OOMD.service delete mode 100644 test/units/TEST-58-REPART.service delete mode 100644 test/units/TEST-59-RELOADING-RESTART.service delete mode 100644 test/units/TEST-60-MOUNT-RATELIMIT.service delete mode 100644 test/units/TEST-62-RESTRICT-IFACES.service delete mode 100644 test/units/TEST-63-PATH.service delete mode 100644 test/units/TEST-64-UDEV-STORAGE.service delete mode 100644 test/units/TEST-65-ANALYZE.service delete mode 100644 test/units/TEST-66-DEVICEISOLATION.service delete mode 100644 test/units/TEST-67-INTEGRITY.service delete mode 100644 test/units/TEST-68-PROPAGATE-EXIT-STATUS.service delete mode 100644 test/units/TEST-70-TPM2.service delete mode 100644 test/units/TEST-71-HOSTNAME.service delete mode 100644 test/units/TEST-72-SYSUPDATE.service delete mode 100644 test/units/TEST-73-LOCALE.service delete mode 100644 test/units/TEST-74-AUX-UTILS.service delete mode 100644 test/units/TEST-75-RESOLVED.service delete mode 100644 test/units/TEST-76-SYSCTL.service delete mode 100644 test/units/TEST-78-SIGQUEUE.service delete mode 100644 test/units/TEST-79-MEMPRESS.service delete mode 100644 test/units/TEST-80-NOTIFYACCESS.service delete mode 100644 test/units/TEST-81-GENERATORS.service delete mode 100644 test/units/TEST-83-BTRFS.service delete mode 100644 test/units/TEST-84-STORAGETM.service diff --git a/test/units/TEST-07-PID1.service b/test/TEST-07-PID1/TEST-07-PID1.service similarity index 80% rename from test/units/TEST-07-PID1.service rename to test/TEST-07-PID1/TEST-07-PID1.service index 92302bfabb..53dd54cc45 100644 --- a/test/units/TEST-07-PID1.service +++ b/test/TEST-07-PID1/TEST-07-PID1.service @@ -1,6 +1,9 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] Description=TEST-07-PID1 +Wants=basic.target multi-user.target +After=basic.target +Before=getty-pre.target [Service] Type=oneshot diff --git a/test/TEST-07-PID1/meson.build b/test/TEST-07-PID1/meson.build index 76ed3e7581..311860dc89 100644 --- a/test/TEST-07-PID1/meson.build +++ b/test/TEST-07-PID1/meson.build @@ -3,6 +3,7 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), + 'unit' : files('TEST-07-PID1.service'), }, ] diff --git a/test/units/TEST-16-EXTEND-TIMEOUT.service b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.service similarity index 86% rename from test/units/TEST-16-EXTEND-TIMEOUT.service rename to test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.service index d5494ae931..9e4675808d 100644 --- a/test/units/TEST-16-EXTEND-TIMEOUT.service +++ b/test/TEST-16-EXTEND-TIMEOUT/TEST-16-EXTEND-TIMEOUT.service @@ -3,6 +3,10 @@ Description=TEST-16-EXTEND-TIMEOUT # Testsuite: Assess all other testsuite-*.services worked as expected +Wants=basic.target multi-user.target +After=basic.target +Before=getty-pre.target + Wants=success-all.service Wants=success-start.service Wants=success-runtime.service diff --git a/test/TEST-16-EXTEND-TIMEOUT/meson.build b/test/TEST-16-EXTEND-TIMEOUT/meson.build index 75cf2029f9..15986acfb4 100644 --- a/test/TEST-16-EXTEND-TIMEOUT/meson.build +++ b/test/TEST-16-EXTEND-TIMEOUT/meson.build @@ -3,6 +3,7 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), + 'unit' : files('TEST-16-EXTEND-TIMEOUT.service'), }, ] diff --git a/test/TEST-32-OOMPOLICY/meson.build b/test/TEST-32-OOMPOLICY/meson.build index 8dec5f37e7..2b832a8f6d 100644 --- a/test/TEST-32-OOMPOLICY/meson.build +++ b/test/TEST-32-OOMPOLICY/meson.build @@ -3,5 +3,8 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), + 'configuration' : integration_test_template['configuration'] + { + 'memory-accounting' : 'yes', + }, }, ] diff --git a/test/units/TEST-44-LOG-NAMESPACE.service b/test/TEST-44-LOG-NAMESPACE/TEST-44-LOG-NAMESPACE.service similarity index 53% rename from test/units/TEST-44-LOG-NAMESPACE.service rename to test/TEST-44-LOG-NAMESPACE/TEST-44-LOG-NAMESPACE.service index 6189d3afa0..1b1dd98418 100644 --- a/test/units/TEST-44-LOG-NAMESPACE.service +++ b/test/TEST-44-LOG-NAMESPACE/TEST-44-LOG-NAMESPACE.service @@ -1,10 +1,9 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] Description=TEST-44-LOG-NAMESPACE +Wants=basic.target multi-user.target systemd-journald@foobar.socket systemd-journald-varlink@foobar.socket +After=basic.target systemd-journald@foobar.socket systemd-journald-varlink@foobar.socket Before=getty-pre.target -Wants=getty-pre.target -Wants=systemd-journald@foobar.socket systemd-journald-varlink@foobar.socket -After=systemd-journald@foobar.socket systemd-journald-varlink@foobar.socket [Service] ExecStartPre=rm -f /failed /testok diff --git a/test/TEST-44-LOG-NAMESPACE/meson.build b/test/TEST-44-LOG-NAMESPACE/meson.build index 8dec5f37e7..555ba7befd 100644 --- a/test/TEST-44-LOG-NAMESPACE/meson.build +++ b/test/TEST-44-LOG-NAMESPACE/meson.build @@ -3,5 +3,6 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), + 'unit' : files('TEST-44-LOG-NAMESPACE.service'), }, ] diff --git a/test/units/TEST-69-SHUTDOWN.service b/test/TEST-69-SHUTDOWN/TEST-69-SHUTDOWN.service similarity index 60% rename from test/units/TEST-69-SHUTDOWN.service rename to test/TEST-69-SHUTDOWN/TEST-69-SHUTDOWN.service index 3910369c0f..5ff2842698 100644 --- a/test/units/TEST-69-SHUTDOWN.service +++ b/test/TEST-69-SHUTDOWN/TEST-69-SHUTDOWN.service @@ -1,6 +1,9 @@ # SPDX-License-Identifier: LGPL-2.1-or-later [Unit] Description=TEST-69-SHUTDOWN +Wants=basic.target multi-user.target +After=basic.target +Before=getty-pre.target [Service] Type=oneshot diff --git a/test/TEST-69-SHUTDOWN/meson.build b/test/TEST-69-SHUTDOWN/meson.build index d53dbe562c..ab4a38b13e 100644 --- a/test/TEST-69-SHUTDOWN/meson.build +++ b/test/TEST-69-SHUTDOWN/meson.build @@ -4,5 +4,6 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), 'enabled' : false, + 'unit' : files('TEST-69-SHUTDOWN.service'), }, ] diff --git a/test/TEST-79-MEMPRESS/meson.build b/test/TEST-79-MEMPRESS/meson.build index 8dec5f37e7..2b832a8f6d 100644 --- a/test/TEST-79-MEMPRESS/meson.build +++ b/test/TEST-79-MEMPRESS/meson.build @@ -3,5 +3,8 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), + 'configuration' : integration_test_template['configuration'] + { + 'memory-accounting' : 'yes', + }, }, ] diff --git a/test/units/TEST-82-SOFTREBOOT.service b/test/TEST-82-SOFTREBOOT/TEST-82-SOFTREBOOT.service similarity index 80% rename from test/units/TEST-82-SOFTREBOOT.service rename to test/TEST-82-SOFTREBOOT/TEST-82-SOFTREBOOT.service index a8fc4f9cc7..f3892a7777 100644 --- a/test/units/TEST-82-SOFTREBOOT.service +++ b/test/TEST-82-SOFTREBOOT/TEST-82-SOFTREBOOT.service @@ -2,7 +2,9 @@ [Unit] Description=TEST-82-SOFTREBOOT DefaultDependencies=no +Wants=basic.target multi-user.target After=basic.target +Before=getty-pre.target [Service] Type=oneshot diff --git a/test/TEST-82-SOFTREBOOT/meson.build b/test/TEST-82-SOFTREBOOT/meson.build index d53dbe562c..575ada9851 100644 --- a/test/TEST-82-SOFTREBOOT/meson.build +++ b/test/TEST-82-SOFTREBOOT/meson.build @@ -4,5 +4,6 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), 'enabled' : false, + 'unit' : files('TEST-82-SOFTREBOOT.service'), }, ] diff --git a/test/integration-test-wrapper.py b/test/integration-test-wrapper.py index c762cc7ab7..14afc0f9c5 100755 --- a/test/integration-test-wrapper.py +++ b/test/integration-test-wrapper.py @@ -43,6 +43,7 @@ def main(): parser.add_argument('--meson-source-dir', required=True, type=Path) parser.add_argument('--meson-build-dir', required=True, type=Path) parser.add_argument('--name', required=True) + parser.add_argument('--unit', required=True) parser.add_argument('--storage', required=True) parser.add_argument('--firmware', required=True) parser.add_argument('--slow', action=argparse.BooleanOptionalAction) @@ -58,13 +59,10 @@ def main(): exit(77) name = args.name + (f"-{i}" if (i := os.getenv("MESON_TEST_ITERATION")) else "") - unit = f"{args.name}.service" dropin = textwrap.dedent( """\ [Unit] - After=multi-user.target network.target - Requires=multi-user.target SuccessAction=exit SuccessActionExitStatus=123 @@ -121,7 +119,7 @@ def main(): else [] ), '--credential', - f"systemd.unit-dropin.{unit}={shlex.quote(dropin)}", + f"systemd.unit-dropin.{args.unit}={shlex.quote(dropin)}", '--runtime-network=none', '--runtime-scratch=no', '--append', @@ -130,7 +128,7 @@ def main(): ' '.join([ 'systemd.hostname=H', f"SYSTEMD_UNIT_PATH=/usr/lib/systemd/tests/testdata/{args.name}.units:/usr/lib/systemd/tests/testdata/units:", - f"systemd.unit={unit}", + f"systemd.unit={args.unit}", 'systemd.mask=systemd-networkd-wait-online.service', *( [ @@ -183,7 +181,7 @@ def main(): ops += [f"gh run download {id} --name {artifact} -D ci/{artifact}"] journal_file = Path(f"ci/{artifact}/test/journal/{name}.journal") - ops += [f"journalctl --file {journal_file} --no-hostname -o short-monotonic -u {unit} -p info"] + ops += [f"journalctl --file {journal_file} --no-hostname -o short-monotonic -u {args.unit} -p info"] print("Test failed, relevant logs can be viewed with: \n\n" f"{(' && '.join(ops))}\n", file=sys.stderr) diff --git a/test/meson.build b/test/meson.build index 6cf431904e..fab802a66d 100644 --- a/test/meson.build +++ b/test/meson.build @@ -283,6 +283,10 @@ integration_test_template = { 'firmware' : 'linux', 'slow' : false, 'enabled' : true, + 'configuration' : { + 'memory-accounting' : 'no', + 'command' : testdata_dir / 'units/%N.sh', + }, } testdata_subdirs = [ 'auxv', @@ -376,6 +380,21 @@ foreach integration_test : integration_tests '--firmware', integration_test['firmware'], ] + if 'unit' in integration_test + integration_test_unit = integration_test['unit'] + else + integration_test_unit = configure_file( + input : 'test.service.in', + output : '@0@.service'.format(integration_test['name']), + configuration : integration_test['configuration'], + ) + 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['slow'] integration_test_args += ['--slow'] endif diff --git a/test/test-functions b/test/test-functions index 2168854add..e1f65e26a1 100644 --- a/test/test-functions +++ b/test/test-functions @@ -147,11 +147,6 @@ if ! [[ "$TESTNAME" =~ ^TEST\-([0-9]+)\-.+$ ]]; then exit 1 fi -if [[ ! -f "$TEST_UNITS_DIR/$TESTNAME.service" ]]; then - echo "ERROR: Test '$TESTNAME' is missing its service file '$TEST_UNITS_DIR/$TESTNAME.service" >&2 - exit 1 -fi - BASICTOOLS=( awk base64 diff --git a/test/test.service.in b/test/test.service.in new file mode 100644 index 0000000000..71e3618ec3 --- /dev/null +++ b/test/test.service.in @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[Unit] +Description=%N +Wants=basic.target network.target tpm2.target multi-user.target user@4711.service +After=basic.target network.target tpm2.target user@4711.service +Before=getty-pre.target + +[Service] +ExecStartPre=rm -f /failed /testok +ExecStart=@command@ +Type=oneshot +MemoryAccounting=@memory-accounting@ diff --git a/test/units/TEST-01-BASIC.service b/test/units/TEST-01-BASIC.service deleted file mode 100644 index 9074e0968f..0000000000 --- a/test/units/TEST-01-BASIC.service +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-01-BASIC -After=multi-user.target -Wants=systemd-resolved.service systemd-networkd.service - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-02-UNITTESTS.service b/test/units/TEST-02-UNITTESTS.service deleted file mode 100644 index dea2c4f501..0000000000 --- a/test/units/TEST-02-UNITTESTS.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-02-UNITTESTS - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-03-JOBS.service b/test/units/TEST-03-JOBS.service deleted file mode 100644 index 836f9621de..0000000000 --- a/test/units/TEST-03-JOBS.service +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-03-JOBS -After=multi-user.target - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-04-JOURNAL.service b/test/units/TEST-04-JOURNAL.service deleted file mode 100644 index 63a010417e..0000000000 --- a/test/units/TEST-04-JOURNAL.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-04-JOURNAL - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-05-RLIMITS.service b/test/units/TEST-05-RLIMITS.service deleted file mode 100644 index ab72d8fe27..0000000000 --- a/test/units/TEST-05-RLIMITS.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-05-RLIMITS - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-06-SELINUX.service b/test/units/TEST-06-SELINUX.service deleted file mode 100644 index c4c1d87fed..0000000000 --- a/test/units/TEST-06-SELINUX.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-06-SELINUX - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-08-INITRD.service b/test/units/TEST-08-INITRD.service deleted file mode 100644 index 2db35cf5b0..0000000000 --- a/test/units/TEST-08-INITRD.service +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-08-INITRD -After=multi-user.target - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-09-REBOOT.service b/test/units/TEST-09-REBOOT.service deleted file mode 100644 index 6c957ecbd1..0000000000 --- a/test/units/TEST-09-REBOOT.service +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-09-REBOOT -After=multi-user.target - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-13-NSPAWN.service b/test/units/TEST-13-NSPAWN.service deleted file mode 100644 index 95c9a02fe1..0000000000 --- a/test/units/TEST-13-NSPAWN.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-13-NSPAWN - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-15-DROPIN.service b/test/units/TEST-15-DROPIN.service deleted file mode 100644 index 10af93f0f7..0000000000 --- a/test/units/TEST-15-DROPIN.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-15-DROPIN - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-17-UDEV.service b/test/units/TEST-17-UDEV.service deleted file mode 100644 index d218d7266f..0000000000 --- a/test/units/TEST-17-UDEV.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-17-UDEV - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-18-FAILUREACTION.service b/test/units/TEST-18-FAILUREACTION.service deleted file mode 100644 index 16d90a12c2..0000000000 --- a/test/units/TEST-18-FAILUREACTION.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-18-FAILUREACTION - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-19-CGROUP.service b/test/units/TEST-19-CGROUP.service deleted file mode 100644 index 2094a126e1..0000000000 --- a/test/units/TEST-19-CGROUP.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-19-CGROUP - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-21-DFUZZERE.service b/test/units/TEST-21-DFUZZERE.service deleted file mode 100644 index a5f77d07b4..0000000000 --- a/test/units/TEST-21-DFUZZERE.service +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=Fuzz our D-Bus interfaces with dfuzzer -After=dbus.service multi-user.target -Wants=dbus.service multi-user.target - -[Service] -ExecStartPre=rm -f /failed /skipped /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-22-TMPFILES.service b/test/units/TEST-22-TMPFILES.service deleted file mode 100644 index a5ed660c62..0000000000 --- a/test/units/TEST-22-TMPFILES.service +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-22-TMPFILES -After=systemd-tmpfiles-setup.service -Before=getty-pre.target -Wants=getty-pre.target - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-23-UNIT-FILE.service b/test/units/TEST-23-UNIT-FILE.service deleted file mode 100644 index e45435b84a..0000000000 --- a/test/units/TEST-23-UNIT-FILE.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-23-UNIT-FILE - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-24-CRYPTSETUP.service b/test/units/TEST-24-CRYPTSETUP.service deleted file mode 100644 index e192d1ccad..0000000000 --- a/test/units/TEST-24-CRYPTSETUP.service +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-24-CRYPTSETUP -After=multi-user.target - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-25-IMPORT.service b/test/units/TEST-25-IMPORT.service deleted file mode 100644 index 503eabbe07..0000000000 --- a/test/units/TEST-25-IMPORT.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-25-IMPORT - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-26-SYSTEMCTL.service b/test/units/TEST-26-SYSTEMCTL.service deleted file mode 100644 index d8fdaffb06..0000000000 --- a/test/units/TEST-26-SYSTEMCTL.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-26-SYSTEMCTL - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-29-PORTABLE.service b/test/units/TEST-29-PORTABLE.service deleted file mode 100644 index 035c6bf4ef..0000000000 --- a/test/units/TEST-29-PORTABLE.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-29-PORTABLE - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-30-ONCLOCKCHANGE.service b/test/units/TEST-30-ONCLOCKCHANGE.service deleted file mode 100644 index 253f7b51d4..0000000000 --- a/test/units/TEST-30-ONCLOCKCHANGE.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-30-ONCLOCKCHANGE - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-31-DEVICE-ENUMERATION.service b/test/units/TEST-31-DEVICE-ENUMERATION.service deleted file mode 100644 index f0e78a9d01..0000000000 --- a/test/units/TEST-31-DEVICE-ENUMERATION.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-31-DEVICE-ENUMERATION - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-32-OOMPOLICY.service b/test/units/TEST-32-OOMPOLICY.service deleted file mode 100644 index 50f5823d31..0000000000 --- a/test/units/TEST-32-OOMPOLICY.service +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-32-OOMPOLICY - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot -MemoryAccounting=yes diff --git a/test/units/TEST-34-DYNAMICUSERMIGRATE.service b/test/units/TEST-34-DYNAMICUSERMIGRATE.service deleted file mode 100644 index 6917afe448..0000000000 --- a/test/units/TEST-34-DYNAMICUSERMIGRATE.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-34-DYNAMICUSERMIGRATE - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-35-LOGIN.service b/test/units/TEST-35-LOGIN.service deleted file mode 100644 index 0599f6104e..0000000000 --- a/test/units/TEST-35-LOGIN.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-35-LOGIN - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-36-NUMAPOLICY.service b/test/units/TEST-36-NUMAPOLICY.service deleted file mode 100644 index 5746dc1ca8..0000000000 --- a/test/units/TEST-36-NUMAPOLICY.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-36-NUMAPOLICY - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-38-FREEZER.service b/test/units/TEST-38-FREEZER.service deleted file mode 100644 index ac77836986..0000000000 --- a/test/units/TEST-38-FREEZER.service +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-38-FREEZER - -[Service] -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-43-PRIVATEUSER-UNPRIV.service b/test/units/TEST-43-PRIVATEUSER-UNPRIV.service deleted file mode 100644 index e36afea418..0000000000 --- a/test/units/TEST-43-PRIVATEUSER-UNPRIV.service +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-43-PRIVATEUSER-UNPRIV -After=systemd-logind.service user@4711.service -Wants=user@4711.service - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-45-TIMEDATE.service b/test/units/TEST-45-TIMEDATE.service deleted file mode 100644 index b16ce9933f..0000000000 --- a/test/units/TEST-45-TIMEDATE.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-45-TIMEDATE - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-46-HOMED.service b/test/units/TEST-46-HOMED.service deleted file mode 100644 index 8fe6575834..0000000000 --- a/test/units/TEST-46-HOMED.service +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-46-HOMED -Wants=getty-pre.target -Before=getty-pre.target - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-50-DISSECT.service b/test/units/TEST-50-DISSECT.service deleted file mode 100644 index bcafe6e0ba..0000000000 --- a/test/units/TEST-50-DISSECT.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-50-DISSECT - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-52-HONORFIRSTSHUTDOWN.service b/test/units/TEST-52-HONORFIRSTSHUTDOWN.service deleted file mode 100644 index 966b9b6a1b..0000000000 --- a/test/units/TEST-52-HONORFIRSTSHUTDOWN.service +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-52-HONORFIRSTSHUTDOWN - -[Service] -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-53-ISSUE-16347.service b/test/units/TEST-53-ISSUE-16347.service deleted file mode 100644 index cf3adbbe61..0000000000 --- a/test/units/TEST-53-ISSUE-16347.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-53-ISSUE-16347 - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-54-CREDS.service b/test/units/TEST-54-CREDS.service deleted file mode 100644 index 94bf2b7645..0000000000 --- a/test/units/TEST-54-CREDS.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-54-CREDS - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-55-OOMD.service b/test/units/TEST-55-OOMD.service deleted file mode 100644 index 1b6b8b818f..0000000000 --- a/test/units/TEST-55-OOMD.service +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-55-OOMD -After=user@4711.service -Wants=user@4711.service - -[Service] -ExecStartPre=rm -f /failed /skipped /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-58-REPART.service b/test/units/TEST-58-REPART.service deleted file mode 100644 index f843527aca..0000000000 --- a/test/units/TEST-58-REPART.service +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-58-REPART - -[Service] -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-59-RELOADING-RESTART.service b/test/units/TEST-59-RELOADING-RESTART.service deleted file mode 100644 index f85cfab084..0000000000 --- a/test/units/TEST-59-RELOADING-RESTART.service +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-59-RELOADING-RESTART - -[Service] -Type=oneshot -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh diff --git a/test/units/TEST-60-MOUNT-RATELIMIT.service b/test/units/TEST-60-MOUNT-RATELIMIT.service deleted file mode 100644 index 1a929e4fd9..0000000000 --- a/test/units/TEST-60-MOUNT-RATELIMIT.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-60-MOUNT-RATELIMIT - -[Service] -Type=oneshot -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh diff --git a/test/units/TEST-62-RESTRICT-IFACES.service b/test/units/TEST-62-RESTRICT-IFACES.service deleted file mode 100644 index 5c3f94d860..0000000000 --- a/test/units/TEST-62-RESTRICT-IFACES.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-62-RESTRICT-IFACES - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-63-PATH.service b/test/units/TEST-63-PATH.service deleted file mode 100644 index 483c6a859b..0000000000 --- a/test/units/TEST-63-PATH.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-63-PATH - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-64-UDEV-STORAGE.service b/test/units/TEST-64-UDEV-STORAGE.service deleted file mode 100644 index b7626bbf94..0000000000 --- a/test/units/TEST-64-UDEV-STORAGE.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-64-UDEV-STORAGE - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-65-ANALYZE.service b/test/units/TEST-65-ANALYZE.service deleted file mode 100644 index 3610bafde2..0000000000 --- a/test/units/TEST-65-ANALYZE.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-65-ANALYZE - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-66-DEVICEISOLATION.service b/test/units/TEST-66-DEVICEISOLATION.service deleted file mode 100644 index 61cd0abfb5..0000000000 --- a/test/units/TEST-66-DEVICEISOLATION.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-66-DEVICEISOLATION - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-67-INTEGRITY.service b/test/units/TEST-67-INTEGRITY.service deleted file mode 100644 index 82f998e24c..0000000000 --- a/test/units/TEST-67-INTEGRITY.service +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-67-INTEGRITY -After=multi-user.target - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-68-PROPAGATE-EXIT-STATUS.service b/test/units/TEST-68-PROPAGATE-EXIT-STATUS.service deleted file mode 100644 index 2d86e1fedc..0000000000 --- a/test/units/TEST-68-PROPAGATE-EXIT-STATUS.service +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-68-PROPAGATE-EXIT-STATUS - -[Service] -Type=oneshot -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh diff --git a/test/units/TEST-70-TPM2.service b/test/units/TEST-70-TPM2.service deleted file mode 100644 index a9c15429d4..0000000000 --- a/test/units/TEST-70-TPM2.service +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-70-TPM2 -Wants=tpm2.target -After=tpm2.target - -[Service] -Type=oneshot -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh diff --git a/test/units/TEST-71-HOSTNAME.service b/test/units/TEST-71-HOSTNAME.service deleted file mode 100644 index 1718629c05..0000000000 --- a/test/units/TEST-71-HOSTNAME.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-71-HOSTNAME - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-72-SYSUPDATE.service b/test/units/TEST-72-SYSUPDATE.service deleted file mode 100644 index 1640350578..0000000000 --- a/test/units/TEST-72-SYSUPDATE.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-72-SYSUPDATE - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-73-LOCALE.service b/test/units/TEST-73-LOCALE.service deleted file mode 100644 index 3ebd24da18..0000000000 --- a/test/units/TEST-73-LOCALE.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-73-LOCALE - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-74-AUX-UTILS.service b/test/units/TEST-74-AUX-UTILS.service deleted file mode 100644 index f782132a92..0000000000 --- a/test/units/TEST-74-AUX-UTILS.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-74-AUX-UTILS - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-75-RESOLVED.service b/test/units/TEST-75-RESOLVED.service deleted file mode 100644 index 3368e04b99..0000000000 --- a/test/units/TEST-75-RESOLVED.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-75-RESOLVED - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-76-SYSCTL.service b/test/units/TEST-76-SYSCTL.service deleted file mode 100644 index 3c8a9e867f..0000000000 --- a/test/units/TEST-76-SYSCTL.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-76-SYSCTL - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-78-SIGQUEUE.service b/test/units/TEST-78-SIGQUEUE.service deleted file mode 100644 index 05f3effdb6..0000000000 --- a/test/units/TEST-78-SIGQUEUE.service +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-78-SIGQUEUE - -[Service] -Type=oneshot -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh diff --git a/test/units/TEST-79-MEMPRESS.service b/test/units/TEST-79-MEMPRESS.service deleted file mode 100644 index f2d24df9cf..0000000000 --- a/test/units/TEST-79-MEMPRESS.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-79-MEMPRESS - -[Service] -Type=oneshot -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -MemoryAccounting=1 diff --git a/test/units/TEST-80-NOTIFYACCESS.service b/test/units/TEST-80-NOTIFYACCESS.service deleted file mode 100644 index 4c7f5d5ebd..0000000000 --- a/test/units/TEST-80-NOTIFYACCESS.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-80-NOTIFYACCESS - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-81-GENERATORS.service b/test/units/TEST-81-GENERATORS.service deleted file mode 100644 index 3b697b3cff..0000000000 --- a/test/units/TEST-81-GENERATORS.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-81-GENERATORS - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-83-BTRFS.service b/test/units/TEST-83-BTRFS.service deleted file mode 100644 index 55ebb45730..0000000000 --- a/test/units/TEST-83-BTRFS.service +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-83-BTRFS - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot diff --git a/test/units/TEST-84-STORAGETM.service b/test/units/TEST-84-STORAGETM.service deleted file mode 100644 index 2c2577019c..0000000000 --- a/test/units/TEST-84-STORAGETM.service +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later -[Unit] -Description=TEST-84-STORAGETM -After=multi-user.target - -[Service] -ExecStartPre=rm -f /failed /testok -ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh -Type=oneshot From 31c797e03d2f24b9b84f1c95cc43aa8c5f35e04a Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sun, 12 May 2024 11:13:58 +0200 Subject: [PATCH 11/21] test: Add cmdline field to configure extra kernel command line args Configuring extra cmdline arguments as a list is much nicer than having to pass the --kernel-command-line-extra argument manually. --- test/TEST-02-UNITTESTS/meson.build | 11 +++++------ test/TEST-06-SELINUX/meson.build | 4 +--- test/meson.build | 11 ++++++++++- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/test/TEST-02-UNITTESTS/meson.build b/test/TEST-02-UNITTESTS/meson.build index 8da5555842..b0003391b5 100644 --- a/test/TEST-02-UNITTESTS/meson.build +++ b/test/TEST-02-UNITTESTS/meson.build @@ -3,15 +3,14 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), - 'mkosi-args' : integration_test_template['mkosi-args'] + [ - '''--kernel-command-line-extra= - -frobnicate! + 'cmdline' : integration_test_template['cmdline'] + [ + ''' systemd.setenv=TEST_CMDLINE_NEWLINE=foo + ''', + ''' systemd.setenv=TEST_CMDLINE_NEWLINE=bar - -''', + ''', ], }, ] diff --git a/test/TEST-06-SELINUX/meson.build b/test/TEST-06-SELINUX/meson.build index ec4b502b94..dd1dfb0baf 100644 --- a/test/TEST-06-SELINUX/meson.build +++ b/test/TEST-06-SELINUX/meson.build @@ -3,9 +3,7 @@ integration_tests += [ integration_test_template + { 'name' : fs.name(meson.current_source_dir()), - 'mkosi-args' : integration_test_template['mkosi-args'] + [ - '--kernel-command-line-extra=selinux=1 lsm=selinux' - ], + 'cmdline' : integration_test_template['cmdline'] + ['selinux=1', 'lsm=selinux'], # FIXME; Figure out why reboot sometimes hangs with 'linux' firmware. 'firmware' : 'uefi', }, diff --git a/test/meson.build b/test/meson.build index fab802a66d..61aa01089a 100644 --- a/test/meson.build +++ b/test/meson.build @@ -287,6 +287,7 @@ integration_test_template = { 'memory-accounting' : 'no', 'command' : testdata_dir / 'units/%N.sh', }, + 'cmdline' : [], } testdata_subdirs = [ 'auxv', @@ -399,7 +400,15 @@ foreach integration_test : integration_tests integration_test_args += ['--slow'] endif - integration_test_args += ['--'] + integration_test['mkosi-args'] + integration_test_args += ['--'] + + if integration_test['cmdline'].length() > 0 + integration_test_args += [ + '--kernel-command-line-extra=@0@'.format(' '.join(integration_test['cmdline'])) + ] + endif + + integration_test_args += integration_test['mkosi-args'] integration_test_env = {} From eb4c962aa433c3ae0f67dc1b5557a3984f34f312 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sun, 12 May 2024 15:16:37 +0200 Subject: [PATCH 12/21] test: Ignore configure scripts in minimal images These are always aimed at the system image so ignore any specified configure scripts in the minimal images. --- mkosi.images/minimal-0/mkosi.conf | 1 + mkosi.images/minimal-1/mkosi.conf | 1 + mkosi.images/minimal-base/mkosi.conf | 3 +++ test/integration-test-wrapper.py | 2 +- 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mkosi.images/minimal-0/mkosi.conf b/mkosi.images/minimal-0/mkosi.conf index 3315d4b4a9..a929fb6eea 100644 --- a/mkosi.images/minimal-0/mkosi.conf +++ b/mkosi.images/minimal-0/mkosi.conf @@ -2,6 +2,7 @@ [Config] Dependencies=minimal-base +ConfigureScripts= [Distribution] CacheOnly=always diff --git a/mkosi.images/minimal-1/mkosi.conf b/mkosi.images/minimal-1/mkosi.conf index 3315d4b4a9..a929fb6eea 100644 --- a/mkosi.images/minimal-1/mkosi.conf +++ b/mkosi.images/minimal-1/mkosi.conf @@ -2,6 +2,7 @@ [Config] Dependencies=minimal-base +ConfigureScripts= [Distribution] CacheOnly=always diff --git a/mkosi.images/minimal-base/mkosi.conf b/mkosi.images/minimal-base/mkosi.conf index 477db6150f..7eb147379f 100644 --- a/mkosi.images/minimal-base/mkosi.conf +++ b/mkosi.images/minimal-base/mkosi.conf @@ -1,5 +1,8 @@ # SPDX-License-Identifier: LGPL-2.1-or-later +[Config] +ConfigureScripts= + [Output] Format=directory diff --git a/test/integration-test-wrapper.py b/test/integration-test-wrapper.py index 14afc0f9c5..55ea4ff0d8 100755 --- a/test/integration-test-wrapper.py +++ b/test/integration-test-wrapper.py @@ -122,6 +122,7 @@ def main(): f"systemd.unit-dropin.{args.unit}={shlex.quote(dropin)}", '--runtime-network=none', '--runtime-scratch=no', + *args.mkosi_args, '--append', '--qemu-firmware', args.firmware, '--kernel-command-line-extra', @@ -142,7 +143,6 @@ def main(): ), ]), '--credential', f"journal.storage={'persistent' if sys.stderr.isatty() else args.storage}", - *args.mkosi_args, 'qemu', ] From f41b6394d5bb76b6c1fd3498091c642f765b5ba2 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sun, 12 May 2024 21:26:41 +0200 Subject: [PATCH 13/21] TEST-64-UDEV-STORAGE: Use ID based paths --- test/units/TEST-64-UDEV-STORAGE.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/test/units/TEST-64-UDEV-STORAGE.sh b/test/units/TEST-64-UDEV-STORAGE.sh index 120b5f3671..dcd73dd2f4 100755 --- a/test/units/TEST-64-UDEV-STORAGE.sh +++ b/test/units/TEST-64-UDEV-STORAGE.sh @@ -240,7 +240,6 @@ testcase_nvme_subsystem() { testcase_virtio_scsi_identically_named_partitions() { local num_part num_disk i j - local alphabet='abcdefghijklmnopqrstuvwxyz' if [[ -v ASAN_OPTIONS || "$(systemd-detect-virt -v)" == "qemu" ]]; then num_part=4 @@ -251,7 +250,7 @@ testcase_virtio_scsi_identically_named_partitions() { fi for ((i = 0; i < num_disk; i++)); do - sfdisk "/dev/sd${alphabet:$i:1}" < Date: Mon, 13 May 2024 15:04:16 +0200 Subject: [PATCH 14/21] TEST-64-UDEV-STORAGE: Use virtio-scsi-pci instead of ahci The debian cloud kernel does not support ahci, so let's use virtio-scsi-pci everywhere instead. --- test/TEST-64-UDEV-STORAGE/test.sh | 20 ++++++++++---------- test/units/TEST-64-UDEV-STORAGE.sh | 26 +++++++++++++------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/test/TEST-64-UDEV-STORAGE/test.sh b/test/TEST-64-UDEV-STORAGE/test.sh index 9d4c90f88e..ddcb938588 100755 --- a/test/TEST-64-UDEV-STORAGE/test.sh +++ b/test/TEST-64-UDEV-STORAGE/test.sh @@ -369,7 +369,7 @@ testcase_lvm_basic() { return 77 fi - local qemu_opts=("-device ahci,id=ahci0") + local qemu_opts=("-device virtio-scsi-pci,id=scsi0") local diskpath i # Attach 4 SATA disks to the VM (and set their model and serial fields @@ -378,7 +378,7 @@ testcase_lvm_basic() { diskpath="${TESTDIR:?}/lvmbasic${i}.img" dd if=/dev/zero of="$diskpath" bs=1M count=32 qemu_opts+=( - "-device ide-hd,bus=ahci0.$i,drive=drive$i,model=foobar,serial=deadbeeflvm$i" + "-device scsi-hd,drive=drive$i,vendor=systemd,product=foobar,serial=deadbeeflvm$i" "-drive format=raw,cache=unsafe,file=$diskpath,if=none,id=drive$i" ) done @@ -396,7 +396,7 @@ testcase_btrfs_basic() { return 77 fi - local qemu_opts=("-device ahci,id=ahci0") + local qemu_opts=("-device virtio-scsi-pci,id=scsi0") local diskpath i size for i in {0..3}; do @@ -406,7 +406,7 @@ testcase_btrfs_basic() { dd if=/dev/zero of="$diskpath" bs=1M count="$size" qemu_opts+=( - "-device ide-hd,bus=ahci0.$i,drive=drive$i,model=foobar,serial=deadbeefbtrfs$i" + "-device scsi-hd,drive=drive$i,vendor=systemd,product=foobar,serial=deadbeefbtrfs$i" "-drive format=raw,cache=unsafe,file=$diskpath,if=none,id=drive$i" ) done @@ -424,7 +424,7 @@ testcase_iscsi_lvm() { return 77 fi - local qemu_opts=("-device ahci,id=ahci0") + local qemu_opts=("-device virtio-scsi-pci,id=scsi0") local diskpath i size for i in {0..3}; do @@ -435,7 +435,7 @@ testcase_iscsi_lvm() { dd if=/dev/zero of="$diskpath" bs=1M count="$size" qemu_opts+=( - "-device ide-hd,bus=ahci0.$i,drive=drive$i,model=foobar,serial=deadbeefiscsi$i" + "-device scsi-hd,drive=drive$i,vendor=systemd,product=foobar,serial=deadbeefiscsi$i" "-drive format=raw,cache=unsafe,file=$diskpath,if=none,id=drive$i" ) done @@ -479,7 +479,7 @@ testcase_mdadm_basic() { return 77 fi - local qemu_opts=("-device ahci,id=ahci0") + local qemu_opts=("-device virtio-scsi-pci,id=scsi0") local diskpath i size for i in {0..4}; do @@ -487,7 +487,7 @@ testcase_mdadm_basic() { dd if=/dev/zero of="$diskpath" bs=1M count=64 qemu_opts+=( - "-device ide-hd,bus=ahci0.$i,drive=drive$i,model=foobar,serial=deadbeefmdadm$i" + "-device scsi-hd,drive=drive$i,vendor=systemd,product=foobar,serial=deadbeefmdadm$i" "-drive format=raw,cache=unsafe,file=$diskpath,if=none,id=drive$i" ) done @@ -505,7 +505,7 @@ testcase_mdadm_lvm() { return 77 fi - local qemu_opts=("-device ahci,id=ahci0") + local qemu_opts=("-device virtio-scsi-pci,id=scsi0") local diskpath i size for i in {0..4}; do @@ -513,7 +513,7 @@ testcase_mdadm_lvm() { dd if=/dev/zero of="$diskpath" bs=1M count=64 qemu_opts+=( - "-device ide-hd,bus=ahci0.$i,drive=drive$i,model=foobar,serial=deadbeefmdadmlvm$i" + "-device scsi-hd,drive=drive$i,vendor=systemd,product=foobar,serial=deadbeefmdadmlvm$i" "-drive format=raw,cache=unsafe,file=$diskpath,if=none,id=drive$i" ) done diff --git a/test/units/TEST-64-UDEV-STORAGE.sh b/test/units/TEST-64-UDEV-STORAGE.sh index dcd73dd2f4..cdef07f533 100755 --- a/test/units/TEST-64-UDEV-STORAGE.sh +++ b/test/units/TEST-64-UDEV-STORAGE.sh @@ -541,7 +541,7 @@ testcase_lvm_basic() { local i iterations partitions part timeout local vgroup="MyTestGroup$RANDOM" local devices=( - /dev/disk/by-id/ata-foobar_deadbeeflvm{0..3} + /dev/disk/by-id/scsi-0systemd_foobar_deadbeeflvm{0..3} ) if [[ -v ASAN_OPTIONS || "$(systemd-detect-virt -v)" == "qemu" ]]; then @@ -713,7 +713,7 @@ testcase_lvm_basic() { testcase_btrfs_basic() { local dev_stub i label mpoint uuid local devices=( - /dev/disk/by-id/ata-foobar_deadbeefbtrfs{0..3} + /dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs{0..3} ) ls -l "${devices[@]}" @@ -751,10 +751,10 @@ EOF uuid="deadbeef-dead-dead-beef-000000000002" label="btrfs_mdisk" udevadm lock \ - --device=/dev/disk/by-id/ata-foobar_deadbeefbtrfs0 \ - --device=/dev/disk/by-id/ata-foobar_deadbeefbtrfs1 \ - --device=/dev/disk/by-id/ata-foobar_deadbeefbtrfs2 \ - --device=/dev/disk/by-id/ata-foobar_deadbeefbtrfs3 \ + --device=/dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs0 \ + --device=/dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs1 \ + --device=/dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs2 \ + --device=/dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs3 \ mkfs.btrfs -f -M -d raid10 -m raid10 -L "$label" -U "$uuid" "${devices[@]}" udevadm wait --settle --timeout=30 "/dev/disk/by-uuid/$uuid" "/dev/disk/by-label/$label" btrfs filesystem show @@ -844,7 +844,7 @@ testcase_iscsi_lvm() { local vgroup="iscsi_lvm$RANDOM" local expected_symlinks=() local devices=( - /dev/disk/by-id/ata-foobar_deadbeefiscsi{0..3} + /dev/disk/by-id/scsi-0systemd_foobar_deadbeefiscsi{0..3} ) ls -l "${devices[@]}" @@ -1022,7 +1022,7 @@ testcase_mdadm_basic() { local i part_name raid_name raid_dev uuid local expected_symlinks=() local devices=( - /dev/disk/by-id/ata-foobar_deadbeefmdadm{0..4} + /dev/disk/by-id/scsi-0systemd_foobar_deadbeefmdadm{0..4} ) ls -l "${devices[@]}" @@ -1039,7 +1039,7 @@ testcase_mdadm_basic() { "/dev/disk/by-label/$part_name" # ext4 partition ) # Create a simple RAID 1 with an ext4 filesystem - echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadm{0..1} -v -f --level=1 --raid-devices=2 + echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/scsi-0systemd_foobar_deadbeefmdadm{0..1} -v -f --level=1 --raid-devices=2 udevadm wait --settle --timeout=30 "$raid_dev" mkfs.ext4 -L "$part_name" "$raid_dev" udevadm wait --settle --timeout=30 "${expected_symlinks[@]}" @@ -1068,7 +1068,7 @@ testcase_mdadm_basic() { "/dev/disk/by-label/$part_name" # ext4 partition ) # Create a simple RAID 5 with an ext4 filesystem - echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadm{0..2} -v -f --level=5 --raid-devices=3 + echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/scsi-0systemd_foobar_deadbeefmdadm{0..2} -v -f --level=5 --raid-devices=3 udevadm wait --settle --timeout=30 "$raid_dev" mkfs.ext4 -L "$part_name" "$raid_dev" udevadm wait --settle --timeout=30 "${expected_symlinks[@]}" @@ -1108,7 +1108,7 @@ testcase_mdadm_basic() { "/dev/disk/by-id/md-uuid-$uuid-part3" ) # Create a simple RAID 10 with an ext4 filesystem - echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadm{0..3} -v -f --level=10 --raid-devices=4 + echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/scsi-0systemd_foobar_deadbeefmdadm{0..3} -v -f --level=10 --raid-devices=4 udevadm wait --settle --timeout=30 "$raid_dev" # Partition the raid device # Here, 'udevadm lock' is meaningless, as udevd does not lock MD devices. @@ -1142,7 +1142,7 @@ testcase_mdadm_lvm() { local part_name raid_name raid_dev uuid vgroup local expected_symlinks=() local devices=( - /dev/disk/by-id/ata-foobar_deadbeefmdadmlvm{0..4} + /dev/disk/by-id/scsi-0systemd_foobar_deadbeefmdadmlvm{0..4} ) ls -l "${devices[@]}" @@ -1161,7 +1161,7 @@ testcase_mdadm_lvm() { "/dev/disk/by-label/$part_name" # ext4 partition ) # Create a RAID 10 with LVM + ext4 - echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadmlvm{0..3} -v -f --level=10 --raid-devices=4 + echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/scsi-0systemd_foobar_deadbeefmdadmlvm{0..3} -v -f --level=10 --raid-devices=4 udevadm wait --settle --timeout=30 "$raid_dev" # Create an LVM on the MD lvm pvcreate -y "$raid_dev" From 3e550801e773ebe874e854985b36789283f26045 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Mon, 13 May 2024 15:06:50 +0200 Subject: [PATCH 15/21] TEST-64-UDEV-STORAGE: Add missing udevadm settle Otherwise we try to do the check before the udev queue is empty which will make it fail. --- test/units/TEST-64-UDEV-STORAGE.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/test/units/TEST-64-UDEV-STORAGE.sh b/test/units/TEST-64-UDEV-STORAGE.sh index cdef07f533..728d57cb3f 100755 --- a/test/units/TEST-64-UDEV-STORAGE.sh +++ b/test/units/TEST-64-UDEV-STORAGE.sh @@ -257,6 +257,7 @@ $(for ((j = 1; j <= num_part; j++)); do echo 'name="Hello world", size=2M'; done EOF done + udevadm settle lsblk --noheadings -a -o NAME,PARTLABEL [[ "$(lsblk --noheadings -a -o NAME,PARTLABEL | grep -c "Hello world")" -eq "$((num_part * num_disk))" ]] } From d760e2a8c3908bf2fc980bf7fb9a200ab4641669 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Mon, 13 May 2024 15:08:07 +0200 Subject: [PATCH 16/21] TEST-64-UDEV-STORAGE: Check for tgt and tgtd services On Debian/Ubuntu, the unit is named tgt.service instead of tgtd.service, so let's make sure we take that into account. On CentOS, tgtd.service is not available, so let's skip the test if we can't find the service. --- test/units/TEST-64-UDEV-STORAGE.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/test/units/TEST-64-UDEV-STORAGE.sh b/test/units/TEST-64-UDEV-STORAGE.sh index 728d57cb3f..aed322fe85 100755 --- a/test/units/TEST-64-UDEV-STORAGE.sh +++ b/test/units/TEST-64-UDEV-STORAGE.sh @@ -850,9 +850,17 @@ testcase_iscsi_lvm() { ls -l "${devices[@]}" - # Start the target daemon - systemctl start tgtd - systemctl status tgtd + # Start the target daemon (debian names it tgt.service so make sure we handle that) + if systemctl list-unit-files tgt.service; then + systemctl start tgt + systemctl status tgt + elif systemctl list-unit-files tgtd.service; then + systemctl start tgtd + systemctl status tgtd + else + echo "This test requires tgtd but it is not installed, skipping ..." | tee --append /skipped + exit 77 + fi echo "iSCSI LUNs backed by devices" # See RFC3721 and RFC7143 From 6c2d47d6d3ad25ffd7527c7f4de31457ee1b25d8 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Mon, 13 May 2024 16:58:23 +0200 Subject: [PATCH 17/21] TEST-64-UDEV-STORAGE: Skip btrfs_basic if btrfs module is not available --- test/units/TEST-64-UDEV-STORAGE.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/units/TEST-64-UDEV-STORAGE.sh b/test/units/TEST-64-UDEV-STORAGE.sh index aed322fe85..13e23af173 100755 --- a/test/units/TEST-64-UDEV-STORAGE.sh +++ b/test/units/TEST-64-UDEV-STORAGE.sh @@ -717,6 +717,11 @@ testcase_btrfs_basic() { /dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs{0..3} ) + if ! modinfo btrfs; then + echo "This test requires the btrfs kernel module but it is not installed, skipping the test" | tee --append /skipped + exit 77 + fi + ls -l "${devices[@]}" echo "Single device: default settings" From 2cf6f55b72d08298d39079f44ea1510bffcce0ef Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Mon, 13 May 2024 17:00:11 +0200 Subject: [PATCH 18/21] TEST-64-UDEV-STORAGE: Bump timeout for testcase_simultaneous_events_1 The timeout is reliably hit when running tests in mkosi. --- test/units/TEST-64-UDEV-STORAGE.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/units/TEST-64-UDEV-STORAGE.sh b/test/units/TEST-64-UDEV-STORAGE.sh index 13e23af173..fe40c2eed8 100755 --- a/test/units/TEST-64-UDEV-STORAGE.sh +++ b/test/units/TEST-64-UDEV-STORAGE.sh @@ -383,7 +383,7 @@ testcase_simultaneous_events_1() { else num_part=10 iterations=100 - timeout=30 + timeout=60 fi for disk in {0..9}; do From f2c6afa6c0dacd086605b53a79c9b53a43988803 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Mon, 13 May 2024 19:08:42 +0200 Subject: [PATCH 19/21] TEST-64-UDEV-STORAGE: Skip LVM subtests on Ubuntu These fail for unknown reasons on Ubuntu. Until someone from Ubuntu who cares can figure out why, let's skip these tests on Ubuntu. --- test/units/TEST-64-UDEV-STORAGE.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/units/TEST-64-UDEV-STORAGE.sh b/test/units/TEST-64-UDEV-STORAGE.sh index fe40c2eed8..3450813dff 100755 --- a/test/units/TEST-64-UDEV-STORAGE.sh +++ b/test/units/TEST-64-UDEV-STORAGE.sh @@ -545,6 +545,12 @@ testcase_lvm_basic() { /dev/disk/by-id/scsi-0systemd_foobar_deadbeeflvm{0..3} ) + . /etc/os-release + if [[ "$ID" == "ubuntu" ]]; then + echo "LVM on Ubuntu is broken, skipping the test" | tee --append /skipped + exit 77 + fi + if [[ -v ASAN_OPTIONS || "$(systemd-detect-virt -v)" == "qemu" ]]; then timeout=180 else @@ -853,6 +859,12 @@ testcase_iscsi_lvm() { /dev/disk/by-id/scsi-0systemd_foobar_deadbeefiscsi{0..3} ) + . /etc/os-release + if [[ "$ID" == "ubuntu" ]]; then + echo "LVM on Ubuntu is broken, skipping the test" | tee --append /skipped + exit 77 + fi + ls -l "${devices[@]}" # Start the target daemon (debian names it tgt.service so make sure we handle that) From 8e8a1b832d19ee1ffacf0dc5e46d11043439e28c Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Tue, 14 May 2024 09:11:51 +0200 Subject: [PATCH 20/21] mkosi: Mask mdmonitor and isc-dhcp-server services They always fail and do not ship with proper units so we can't disable them with presets so we mask them instead. --- mkosi.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mkosi.conf b/mkosi.conf index 6ed10d6292..9d23f4f8b2 100644 --- a/mkosi.conf +++ b/mkosi.conf @@ -40,6 +40,9 @@ KernelCommandLine=systemd.crash_shell panic=-1 softlockup_panic=1 panic_on_warn=1 + # These don't ship proper units with [Install] directives so we have to mask them instead. + systemd.mask=isc-dhcp-server.service + systemd.mask=mdmonitor.service [Host] Credentials=journal.storage=persistent From 5692f87160fb99cd0d76a3c95414d9aca0101980 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Sun, 12 May 2024 21:27:58 +0200 Subject: [PATCH 21/21] test: Run TEST-64-UDEV-STORAGE with mkosi We add a configure script for each subtest to add the required qemu arguments. Co-authored-by: Richard Maw --- mkosi.images/system/mkosi.conf | 2 + .../system/mkosi.conf.d/10-arch/mkosi.conf | 3 ++ .../mkosi.conf.d/10-centos-fedora/mkosi.conf | 4 ++ .../system/mkosi.conf.d/10-centos/mkosi.conf | 1 - .../mkosi.conf.d/10-debian-ubuntu/mkosi.conf | 3 ++ .../system/mkosi.conf.d/10-debian/mkosi.conf | 4 ++ .../10-debian/mkosi.conf.d/amd64.conf | 8 ---- .../10-debian/mkosi.conf.d/arm64.conf | 8 ---- .../system/mkosi.conf.d/10-fedora/mkosi.conf | 3 +- .../mkosi.conf.d/10-opensuse/mkosi.conf | 3 ++ .../system/mkosi.extra/etc/iscsi/iscsid.conf | 3 ++ .../systemd/system/isc-dhcp-server.service | 0 .../btrfs_basic.configure | 26 ++++++++++++ test/TEST-64-UDEV-STORAGE/iscsi_lvm.configure | 26 ++++++++++++ .../long_sysfs_path.configure | 32 ++++++++++++++ test/TEST-64-UDEV-STORAGE/lvm_basic.configure | 25 +++++++++++ .../mdadm_basic.configure | 25 +++++++++++ test/TEST-64-UDEV-STORAGE/mdadm_lvm.configure | 25 +++++++++++ .../megasas2_basic.configure | 36 ++++++++++++++++ test/TEST-64-UDEV-STORAGE/meson.build | 39 ++++++++++++++--- .../multipath_basic_failover.configure | 31 ++++++++++++++ .../TEST-64-UDEV-STORAGE/nvme_basic.configure | 42 +++++++++++++++++++ .../nvme_subsystem.configure | 39 +++++++++++++++++ .../simultaneous_events.configure | 21 ++++++++++ ...csi_identically_named_partitions.configure | 33 +++++++++++++++ 25 files changed, 419 insertions(+), 23 deletions(-) delete mode 100644 mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf.d/amd64.conf delete mode 100644 mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf.d/arm64.conf create mode 100644 mkosi.images/system/mkosi.extra/etc/iscsi/iscsid.conf delete mode 100644 mkosi.images/system/mkosi.extra/usr/lib/systemd/system/isc-dhcp-server.service create mode 100755 test/TEST-64-UDEV-STORAGE/btrfs_basic.configure create mode 100755 test/TEST-64-UDEV-STORAGE/iscsi_lvm.configure create mode 100755 test/TEST-64-UDEV-STORAGE/long_sysfs_path.configure create mode 100755 test/TEST-64-UDEV-STORAGE/lvm_basic.configure create mode 100755 test/TEST-64-UDEV-STORAGE/mdadm_basic.configure create mode 100755 test/TEST-64-UDEV-STORAGE/mdadm_lvm.configure create mode 100755 test/TEST-64-UDEV-STORAGE/megasas2_basic.configure create mode 100755 test/TEST-64-UDEV-STORAGE/multipath_basic_failover.configure create mode 100755 test/TEST-64-UDEV-STORAGE/nvme_basic.configure create mode 100755 test/TEST-64-UDEV-STORAGE/nvme_subsystem.configure create mode 100755 test/TEST-64-UDEV-STORAGE/simultaneous_events.configure create mode 100755 test/TEST-64-UDEV-STORAGE/virtio_scsi_identically_named_partitions.configure diff --git a/mkosi.images/system/mkosi.conf b/mkosi.images/system/mkosi.conf index 7f1c5f571e..4d3d2d9aa1 100644 --- a/mkosi.images/system/mkosi.conf +++ b/mkosi.images/system/mkosi.conf @@ -42,7 +42,9 @@ Packages= kmod knot less + lvm2 man + mdadm mtools nano nftables diff --git a/mkosi.images/system/mkosi.conf.d/10-arch/mkosi.conf b/mkosi.images/system/mkosi.conf.d/10-arch/mkosi.conf index 0a91f6e226..ee1f02cfae 100644 --- a/mkosi.images/system/mkosi.conf.d/10-arch/mkosi.conf +++ b/mkosi.images/system/mkosi.conf.d/10-arch/mkosi.conf @@ -30,6 +30,8 @@ Packages= iputils linux man-db + multipath-tools + open-iscsi openbsd-netcat openssh openssl @@ -44,6 +46,7 @@ Packages= shadow squashfs-tools stress + tgt tpm2-tools tpm2-tss vim diff --git a/mkosi.images/system/mkosi.conf.d/10-centos-fedora/mkosi.conf b/mkosi.images/system/mkosi.conf.d/10-centos-fedora/mkosi.conf index 37211b0cab..4efa2b440e 100644 --- a/mkosi.images/system/mkosi.conf.d/10-centos-fedora/mkosi.conf +++ b/mkosi.images/system/mkosi.conf.d/10-centos-fedora/mkosi.conf @@ -24,6 +24,8 @@ Packages= bind-utils bpftool cryptsetup + device-mapper-event + device-mapper-multipath dfuzzer dhcp-server dnf @@ -35,7 +37,9 @@ Packages= iproute iproute-tc iputils + iscsi-initiator-utils kernel-core + kernel-modules # For squashfs and megasas2 libasan libcap-ng-utils libubsan diff --git a/mkosi.images/system/mkosi.conf.d/10-centos/mkosi.conf b/mkosi.images/system/mkosi.conf.d/10-centos/mkosi.conf index 54f8f1c1bd..60ea1cb6a3 100644 --- a/mkosi.images/system/mkosi.conf.d/10-centos/mkosi.conf +++ b/mkosi.images/system/mkosi.conf.d/10-centos/mkosi.conf @@ -9,4 +9,3 @@ RepartDirectories=mkosi.repart [Content] Packages= rpmautospec-rpm-macros - kernel-modules # For squashfs diff --git a/mkosi.images/system/mkosi.conf.d/10-debian-ubuntu/mkosi.conf b/mkosi.images/system/mkosi.conf.d/10-debian-ubuntu/mkosi.conf index c80cd2b839..1e70a1b579 100644 --- a/mkosi.images/system/mkosi.conf.d/10-debian-ubuntu/mkosi.conf +++ b/mkosi.images/system/mkosi.conf.d/10-debian-ubuntu/mkosi.conf @@ -54,7 +54,9 @@ Packages= libtss2-tcti-device0 locales man-db + multipath-tools netcat-openbsd + open-iscsi openssh-client openssh-server passwd @@ -66,6 +68,7 @@ Packages= sbsigntool squashfs-tools stress + tgt tpm2-tools tzdata xxd diff --git a/mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf b/mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf index c6b6155dda..6441096322 100644 --- a/mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf +++ b/mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf @@ -2,3 +2,7 @@ [Match] Distribution=debian + +[Content] +Packages= + linux-image-generic diff --git a/mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf.d/amd64.conf b/mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf.d/amd64.conf deleted file mode 100644 index 615de52499..0000000000 --- a/mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf.d/amd64.conf +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later - -[Match] -Architecture=x86-64 - -[Content] -Packages= - linux-image-cloud-amd64 diff --git a/mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf.d/arm64.conf b/mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf.d/arm64.conf deleted file mode 100644 index af923fa442..0000000000 --- a/mkosi.images/system/mkosi.conf.d/10-debian/mkosi.conf.d/arm64.conf +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: LGPL-2.1-or-later - -[Match] -Architecture=arm64 - -[Content] -Packages= - linux-image-cloud-arm64 diff --git a/mkosi.images/system/mkosi.conf.d/10-fedora/mkosi.conf b/mkosi.images/system/mkosi.conf.d/10-fedora/mkosi.conf index 838c8314c4..75d2e400ce 100644 --- a/mkosi.images/system/mkosi.conf.d/10-fedora/mkosi.conf +++ b/mkosi.images/system/mkosi.conf.d/10-fedora/mkosi.conf @@ -7,8 +7,9 @@ Distribution=fedora Packages= btrfs-progs compsize - f2fs-tools dnf5 + f2fs-tools + scsi-target-utils InitrdPackages= btrfs-progs diff --git a/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.conf b/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.conf index 10cbd21a8f..33d3fe6950 100644 --- a/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.conf +++ b/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.conf @@ -50,6 +50,8 @@ Packages= libasan8 libkmod2 libubsan1 + multipath-tools + open-iscsi openssh-clients openssh-server pam @@ -65,6 +67,7 @@ Packages= sed shadow squashfs + tgt timezone tpm2.0-tools user(bin) diff --git a/mkosi.images/system/mkosi.extra/etc/iscsi/iscsid.conf b/mkosi.images/system/mkosi.extra/etc/iscsi/iscsid.conf new file mode 100644 index 0000000000..fcf4cd9cdc --- /dev/null +++ b/mkosi.images/system/mkosi.extra/etc/iscsi/iscsid.conf @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +iscsid.startup = /usr/bin/systemctl start iscsid.socket diff --git a/mkosi.images/system/mkosi.extra/usr/lib/systemd/system/isc-dhcp-server.service b/mkosi.images/system/mkosi.extra/usr/lib/systemd/system/isc-dhcp-server.service deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/test/TEST-64-UDEV-STORAGE/btrfs_basic.configure b/test/TEST-64-UDEV-STORAGE/btrfs_basic.configure new file mode 100755 index 0000000000..8ef58a9fdd --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/btrfs_basic.configure @@ -0,0 +1,26 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import sys + + +config = json.load(sys.stdin) + +config["QemuArgs"] += ["-device", "virtio-scsi-pci,id=scsi0"] + +for i in range(4): + id = f"drivebtrfsbasic{i}" + config["QemuDrives"] += [ + { + "Id": id, + "Size": "350M" if i == 0 else "128M", + "Options": "cache=unsafe", + } + ] + config["QemuArgs"] += [ + "-device", + f"scsi-hd,drive={id},vendor=systemd,product=foobar,serial=deadbeefbtrfs{i}", + ] + +json.dump(config, sys.stdout) diff --git a/test/TEST-64-UDEV-STORAGE/iscsi_lvm.configure b/test/TEST-64-UDEV-STORAGE/iscsi_lvm.configure new file mode 100755 index 0000000000..ca23e33858 --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/iscsi_lvm.configure @@ -0,0 +1,26 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import sys + + +config = json.load(sys.stdin) + +config["QemuArgs"] += ["-device", "virtio-scsi-pci,id=scsi0"] + +for i in range(4): + id = f"driveiscsibasic{i}" + config["QemuDrives"] += [ + { + "Id": id, + "Size": "150M" if i == 0 else "70M", + "Options": "cache=unsafe", + } + ] + config["QemuArgs"] += [ + "-device", + f"scsi-hd,drive={id},vendor=systemd,product=foobar,serial=deadbeefiscsi{i}", + ] + +json.dump(config, sys.stdout) diff --git a/test/TEST-64-UDEV-STORAGE/long_sysfs_path.configure b/test/TEST-64-UDEV-STORAGE/long_sysfs_path.configure new file mode 100755 index 0000000000..6108bdb981 --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/long_sysfs_path.configure @@ -0,0 +1,32 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import sys + + +config = json.load(sys.stdin) + +config["QemuDrives"] += [ + { + "Id": "drive0", + "Size": "64M", + "Options": "cache=unsafe", + } +] +config["QemuArgs"] += ["-device", "pci-bridge,id=pci_bridge0,chassis_nr=64"] + +# Create 25 additional PCI bridges, each one connected to the previous one +# (basically a really long extension cable), and attach a virtio drive to +# the last one. This should force udev into attempting to create a device +# unit with a _really_ long name. +for bridge in range(1, 26): + config["QemuArgs"] += [ + "-device", + f"pci-bridge,id=pci_bridge{bridge},bus=pci_bridge{bridge - 1}," + f"chassis_nr={64 + bridge}" + ] + +config["QemuArgs"] += ["-device", f"virtio-blk-pci,drive=drive0,scsi=off,bus=pci_bridge25"] + +json.dump(config, sys.stdout) diff --git a/test/TEST-64-UDEV-STORAGE/lvm_basic.configure b/test/TEST-64-UDEV-STORAGE/lvm_basic.configure new file mode 100755 index 0000000000..9387b8377c --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/lvm_basic.configure @@ -0,0 +1,25 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import sys + + +config = json.load(sys.stdin) + +config["QemuArgs"] += ["-device", "virtio-scsi-pci,id=scsi0"] + +for i in range(4): + id = f"drivelvmbasic{i}" + config["QemuDrives"] += [ + { + "Id": id, + "Size": "32M", + "Options": "cache=unsafe", + } + ] + config["QemuArgs"] += [ + "-device", f"scsi-hd,drive={id},vendor=systemd,product=foobar,serial=deadbeeflvm{i}", + ] + +json.dump(config, sys.stdout) diff --git a/test/TEST-64-UDEV-STORAGE/mdadm_basic.configure b/test/TEST-64-UDEV-STORAGE/mdadm_basic.configure new file mode 100755 index 0000000000..3f00afa955 --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/mdadm_basic.configure @@ -0,0 +1,25 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import sys + + +config = json.load(sys.stdin) + +config["QemuArgs"] += ["-device", "virtio-scsi-pci,id=scsi0"] + +for i in range(5): + id = f"drivemdadmbasic{i}" + config["QemuDrives"] += [ + { + "Id": id, + "Size": "64M", + "Options": "cache=unsafe", + } + ] + config["QemuArgs"] += [ + "-device", f"scsi-hd,drive={id},vendor=systemd,product=foobar,serial=deadbeefmdadm{i}", + ] + +json.dump(config, sys.stdout) diff --git a/test/TEST-64-UDEV-STORAGE/mdadm_lvm.configure b/test/TEST-64-UDEV-STORAGE/mdadm_lvm.configure new file mode 100755 index 0000000000..b7661d9e81 --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/mdadm_lvm.configure @@ -0,0 +1,25 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import sys + + +config = json.load(sys.stdin) + +config["QemuArgs"] += ["-device", "virtio-scsi-pci,id=scsi0"] + +for i in range(5): + id = f"drivemdadmlvm{i}" + config["QemuDrives"] += [ + { + "Id": id, + "Size": "64M", + "Options": "cache=unsafe", + } + ] + config["QemuArgs"] += [ + "-device", f"scsi-hd,drive={id},vendor=systemd,product=foobar,serial=deadbeefmdadmlvm{i}", + ] + +json.dump(config, sys.stdout) diff --git a/test/TEST-64-UDEV-STORAGE/megasas2_basic.configure b/test/TEST-64-UDEV-STORAGE/megasas2_basic.configure new file mode 100755 index 0000000000..632e2de5b0 --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/megasas2_basic.configure @@ -0,0 +1,36 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import os +import subprocess +import sys + + +config = json.load(sys.stdin) + +qemu = f"qemu-system-{os.environ["QEMU_ARCHITECTURE"]}" +result = subprocess.run([qemu, '-device', 'help'], check=True, text=True, stdout=subprocess.PIPE) +if 'name "megasas-gen2"' not in result.stdout: + print("megasas-gen2 device driver is not available, skipping test...", file=sys.stderr) + exit(77) + +for i in range(4): + config["QemuArgs"] += ['-device', f"megasas-gen2,id=scsi{i}"] + +for i in range(128): + id = f"drive{i}" + config["QemuDrives"] += [ + { + "Id": id, + "Size": "1M", + "Options": "cache=unsafe", + } + ] + config["QemuArgs"] += [ + '-device', + f"scsi-hd,drive={id},bus=scsi{i // 32}.0,channel=0," + f"scsi-id={i % 32},lun=0", + ] + +json.dump(config, sys.stdout) diff --git a/test/TEST-64-UDEV-STORAGE/meson.build b/test/TEST-64-UDEV-STORAGE/meson.build index d53dbe562c..ba1d1f8ed3 100644 --- a/test/TEST-64-UDEV-STORAGE/meson.build +++ b/test/TEST-64-UDEV-STORAGE/meson.build @@ -1,8 +1,37 @@ # SPDX-License-Identifier: LGPL-2.1-or-later -integration_tests += [ - integration_test_template + { - 'name' : fs.name(meson.current_source_dir()), - 'enabled' : false, - }, +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'], +) + +foreach testcase : [ + 'btrfs_basic', + 'iscsi_lvm', + 'long_sysfs_path', + 'lvm_basic', + 'mdadm_basic', + 'mdadm_lvm', + 'megasas2_basic', + 'multipath_basic_failover', + 'nvme_basic', + 'nvme_subsystem', + 'simultaneous_events', + 'virtio_scsi_identically_named_partitions', ] + integration_tests += [ + integration_test_template + { + 'name' : '@0@-@1@'.format(name, testcase), + # 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) + ], + 'mkosi-args' : integration_test_template['mkosi-args'] + [ + '--configure-script', files('@0@.configure'.format(testcase)), + ], + }, + ] +endforeach diff --git a/test/TEST-64-UDEV-STORAGE/multipath_basic_failover.configure b/test/TEST-64-UDEV-STORAGE/multipath_basic_failover.configure new file mode 100755 index 0000000000..5f323b8a8b --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/multipath_basic_failover.configure @@ -0,0 +1,31 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import sys + + +config = json.load(sys.stdin) + +# Add 16 multipath devices, each backed by 4 paths +# We don't use --qemu-drive for this since they have to share the file. +for ndisk in range(16): + wwn = f"0xDEADDEADBEEF{ndisk:04d}" + if ndisk == 0: + size = "16M" + else: + size = "1M" + + for nback in range(4): + id = f"drive{ndisk}x{nback}" + config["QemuDrives"] += [ + { + "Id": id, + "Size": size, + "Options": "cache=unsafe", + "FileId": str(ndisk), + } + ] + config["QemuArgs"] += ["-device", f"scsi-hd,drive={id},serial=MPIO{ndisk},wwn={wwn}"] + +json.dump(config, sys.stdout) diff --git a/test/TEST-64-UDEV-STORAGE/nvme_basic.configure b/test/TEST-64-UDEV-STORAGE/nvme_basic.configure new file mode 100755 index 0000000000..68cbd728c3 --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/nvme_basic.configure @@ -0,0 +1,42 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import os +import subprocess +import sys + + +config = json.load(sys.stdin) + +qemu = f"qemu-system-{os.environ["QEMU_ARCHITECTURE"]}" +result = subprocess.run([qemu, '-device', 'help'], check=True, text=True, stdout=subprocess.PIPE) +if 'name "nvme"' not in result.stdout: + print("nvme device driver is not available, skipping test...", file=sys.stderr) + exit(77) + +for i in range(4): + config["QemuArgs"] += ["-device", f"megasas-gen2,id=scsi{i}"] + +def add_drive(i: int, serial: str) -> None: + global config + id = f"nvme{i}" + config["QemuDrives"] += [ + { + "Id": id, + "Size": "1M", + "Options": "cache=unsafe", + } + ] + config["QemuArgs"] += ["-device", f"nvme,drive={id},serial={serial},num_queues=8"] + +for i in range(5): + add_drive(i, serial=f"deadbeef{i}") +for i in range(5, 10): + add_drive(i, serial=f" deadbeef {i} ") +for i in range(10, 15): + add_drive(i, serial=f" dead/beef/{i} ") +for i in range(15, 20): + add_drive(i, serial=f"dead/../../beef/{i}") + +json.dump(config, sys.stdout) diff --git a/test/TEST-64-UDEV-STORAGE/nvme_subsystem.configure b/test/TEST-64-UDEV-STORAGE/nvme_subsystem.configure new file mode 100755 index 0000000000..eb601a6843 --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/nvme_subsystem.configure @@ -0,0 +1,39 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import os +import subprocess +import sys + + +config = json.load(sys.stdin) + +qemu = f"qemu-system-{os.environ["QEMU_ARCHITECTURE"]}" +result = subprocess.run([qemu, '-device', 'help'], check=True, text=True, stdout=subprocess.PIPE) +if 'name "nvme"' not in result.stdout: + print("nvme device driver is not available, skipping test...", file=sys.stderr) + exit(77) + +for id in ("nvme0", "nvme1"): + config["QemuDrives"] += [ + { + "Id": id, + "Size": "1M", + "Options": "cache=unsafe", + } + + ] + +config["QemuArgs"] += [ + # 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", +] + +json.dump(config, sys.stdout) diff --git a/test/TEST-64-UDEV-STORAGE/simultaneous_events.configure b/test/TEST-64-UDEV-STORAGE/simultaneous_events.configure new file mode 100755 index 0000000000..a0edb01cc1 --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/simultaneous_events.configure @@ -0,0 +1,21 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import sys + + +config = json.load(sys.stdin) + +for i in range(10): + id = f"drivesimultaneousevents{i}" + config["QemuDrives"] += [ + { + "Id": id, + "Size": "128M", + "Options": "cache=unsafe", + } + ] + config["QemuArgs"] += ["-device", f"scsi-hd,drive={id},serial=deadbeeftest{i}"] + +json.dump(config, sys.stdout) diff --git a/test/TEST-64-UDEV-STORAGE/virtio_scsi_identically_named_partitions.configure b/test/TEST-64-UDEV-STORAGE/virtio_scsi_identically_named_partitions.configure new file mode 100755 index 0000000000..de22c1aa6b --- /dev/null +++ b/test/TEST-64-UDEV-STORAGE/virtio_scsi_identically_named_partitions.configure @@ -0,0 +1,33 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1-or-later + +import json +import os +import subprocess +import sys + + +config = json.load(sys.stdin) + +qemu = f"qemu-system-{os.environ["QEMU_ARCHITECTURE"]}" +result = subprocess.run([qemu, '-device', 'help'], check=True, text=True, stdout=subprocess.PIPE) +if 'name "virtio-scsi-pci"' not in result.stdout: + print("virtio-scsi-pci device driver is not available, skipping test...", file=sys.stderr) + exit(77) + +num_disk = 16 + +config["QemuArgs"] += ["-device", "virtio-scsi-pci,id=scsi0,num_queues=4"] + +for i in range(0, num_disk): + id = f"drivenamedpart{i}" + config["QemuDrives"] += [ + { + "Id": id, + "Size": "40M", + "Options": "cache=unsafe" + } + ] + config["QemuArgs"] += ["-device", f"scsi-hd,drive={id},bus=scsi0.0,channel=0,scsi-id=0,lun={i}"] + +json.dump(config, sys.stdout)