]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: skip test cases using userdbctl
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 3 Jun 2026 23:37:54 +0000 (08:37 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 4 Jun 2026 19:56:34 +0000 (04:56 +0900)
userdb support is optional, hence userdbctl may not be installed.

test/units/TEST-07-PID1.nft.sh
test/units/TEST-74-AUX-UTILS.sysusers.sh
test/units/TEST-74-AUX-UTILS.userdbctl.sh

index dbfefc281f9b4a6a712facafa8f0a9ec643b399f..3713cd6c86a9086e71c940b076ac7fa9d55a556e 100755 (executable)
@@ -24,12 +24,14 @@ systemd-run --unit test-nft.service --service-type=exec -p DynamicUser=yes \
             -p 'NFTSet=cgroup:inet:sd_test:c user:inet:sd_test:u group:inet:sd_test:g' sleep 10000
 run nft list set inet sd_test c
 grep -qF "test-nft.service" "$RUN_OUT"
-uid=$(userdbctl user --json=short test-nft | jq .uid)
-run nft list set inet sd_test u
-grep -qF "$uid" "$RUN_OUT"
-gid=$(userdbctl user --json=short test-nft | jq .gid)
-run nft list set inet sd_test g
-grep -qF "$gid" "$RUN_OUT"
+if command -v userdbctl >/dev/null; then
+    uid=$(userdbctl user --json=short test-nft | jq .uid)
+    run nft list set inet sd_test u
+    grep -qF "$uid" "$RUN_OUT"
+    gid=$(userdbctl user --json=short test-nft | jq .gid)
+    run nft list set inet sd_test g
+    grep -qF "$gid" "$RUN_OUT"
+fi
 systemctl stop test-nft.service
 
 # scope
index 2a06e85bfd464e3c4f71bd30656285d27e75db84..6e3fcac8c56e201b59b2427043f3d9e1230b2b01 100755 (executable)
@@ -11,11 +11,13 @@ u unlockedtestuser - "An unlocked system user" / /bin/bash
 u! lockedtestuser - "A locked system user" / /bin/bash
 EOF
 
-userdbctl -j user unlockedtestuser
-userdbctl -j user lockedtestuser
+if command -v userdbctl >/dev/null; then
+    userdbctl -j user unlockedtestuser
+    userdbctl -j user lockedtestuser
 
-assert_eq "$(userdbctl -j user unlockedtestuser | jq .locked)" "null"
-assert_eq "$(userdbctl -j user lockedtestuser | jq .locked)" "true"
+    assert_eq "$(userdbctl -j user unlockedtestuser | jq .locked)" "null"
+    assert_eq "$(userdbctl -j user lockedtestuser | jq .locked)" "true"
+fi
 
 at_exit() {
     set +e
index fdfff1a65caf4d5f57c16ee0374e5505c0e3117b..dd57c6fee56b795d07da5ddf13a07ff6424a22ca 100755 (executable)
@@ -3,6 +3,11 @@
 set -eux
 set -o pipefail
 
+if ! command -v userdbctl >/dev/null; then
+    echo "userdbctl is not installed, skipping the test."
+    exit 0
+fi
+
 # shellcheck source=test/units/util.sh
 . "$(dirname "$0")"/util.sh