-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
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
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