test: skip test cases using userdbctl

userdb support is optional, hence userdbctl may not be installed.
This commit is contained in:
Yu Watanabe
2026-06-05 04:56:34 +09:00
parent 1146c355f4
commit 8cfe1c2f7e
3 changed files with 19 additions and 10 deletions
+8 -6
View File
@@ -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
+6 -4
View File
@@ -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
@@ -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