]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: skip the test early if we're built without systemd-homed
authorFrantisek Sumsal <frantisek@sumsal.cz>
Wed, 31 May 2023 13:40:33 +0000 (15:40 +0200)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 31 May 2023 21:30:45 +0000 (06:30 +0900)
We check for homed stuff in the test itself, but this is way too late,
since we already started a unit that Requires=systemd-homed.service
(testsuite-46.service). For now this doesn't matter, but with #27852
the offending transaction is dropped from the job queue, making the test
fail.

Spotted in #27852 in Ubuntu CI.

test/TEST-46-HOMED/test.sh

index 216f3d2fb2ecfbe2095a2cd38324faa84a0b7058..0daf211103cbff952b02d8eb7c972772d8e905f7 100755 (executable)
@@ -5,21 +5,25 @@ set -e
 TEST_DESCRIPTION="testing homed"
 
 # Skip the qemu version of the test, unless we have btrfs
-(modprobe -nv btrfs && command -v mkfs.btrfs) || TEST_NO_QEMU=1
+(modprobe -nv btrfs && command -v mkfs.btrfs >/dev/null) || TEST_NO_QEMU=1
 
 # shellcheck source=test/test-functions
 . "${TEST_BASE_DIR:?}/test-functions"
 
+get_bool "${NO_BUILD:-}" && HOMECTL_BIN="homectl" || HOMECTL_BIN="${BUILD_DIR:?}/homectl"
+if ! command -v "$HOMECTL_BIN" >/dev/null; then
+    echo "Built without systemd-homed, skipping the test"
+    exit 0
+fi
+
 # Need loop devices for mounting images
 test_append_files() {
-    (
-        if [ "$TEST_NO_QEMU" != "1" ] ; then
-            instmods loop =block
-            install_dmevent
-            install_btrfs
-            generate_module_dependencies
-        fi
-    )
+    if ! get_bool "$TEST_NO_QEMU" ; then
+        instmods loop =block
+        install_dmevent
+        install_btrfs
+        generate_module_dependencies
+    fi
 }
 
 do_test "$@"