]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: add test suite for new credentials logic
authorLennart Poettering <lennart@poettering.net>
Tue, 11 Aug 2020 15:08:41 +0000 (17:08 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 25 Aug 2020 17:46:36 +0000 (19:46 +0200)
test/TEST-54-CREDS/Makefile [new symlink]
test/TEST-54-CREDS/test.sh [new file with mode: 0755]
test/units/testsuite-54.service [new file with mode: 0644]
test/units/testsuite-54.sh [new file with mode: 0755]

diff --git a/test/TEST-54-CREDS/Makefile b/test/TEST-54-CREDS/Makefile
new file mode 120000 (symlink)
index 0000000..e9f93b1
--- /dev/null
@@ -0,0 +1 @@
+../TEST-01-BASIC/Makefile
\ No newline at end of file
diff --git a/test/TEST-54-CREDS/test.sh b/test/TEST-54-CREDS/test.sh
new file mode 100755 (executable)
index 0000000..5feb15e
--- /dev/null
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+set -e
+TEST_DESCRIPTION="test credentials"
+
+. $TEST_BASE_DIR/test-functions
+
+do_test "$@" 54
diff --git a/test/units/testsuite-54.service b/test/units/testsuite-54.service
new file mode 100644 (file)
index 0000000..862dd1c
--- /dev/null
@@ -0,0 +1,7 @@
+[Unit]
+Description=TESTSUITE-54-CREDS
+
+[Service]
+ExecStartPre=rm -f /failed /testok
+ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
+Type=oneshot
diff --git a/test/units/testsuite-54.sh b/test/units/testsuite-54.sh
new file mode 100755 (executable)
index 0000000..aabc56f
--- /dev/null
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+set -ex
+
+systemd-analyze log-level debug
+
+# Verify that the creds are properly loaded and we can read them from the service's unpriv user
+systemd-run -p LoadCredential=passwd:/etc/passwd \
+            -p LoadCredential=shadow:/etc/shadow \
+            -p SetCredential=dog:wuff \
+            -p DynamicUser=1 \
+            --wait \
+            --pipe \
+            cat '${CREDENTIALS_DIRECTORY}/passwd' '${CREDENTIALS_DIRECTORY}/shadow' '${CREDENTIALS_DIRECTORY}/dog' > /tmp/ts54-concat
+( cat /etc/passwd /etc/shadow && echo -n wuff ) | cmp /tmp/ts54-concat
+rm /tmp/ts54-concat
+
+# Verify that the creds are immutable
+! systemd-run -p LoadCredential=passwd:/etc/passwd \
+            -p DynamicUser=1 \
+            --wait \
+            touch '${CREDENTIALS_DIRECTORY}/passwd'
+! systemd-run -p LoadCredential=passwd:/etc/passwd \
+            -p DynamicUser=1 \
+            --wait \
+            rm '${CREDENTIALS_DIRECTORY}/passwd'
+
+systemd-analyze log-level info
+
+echo OK > /testok
+
+exit 0