diff options
author | Lennart Poettering <lennart@poettering.net> | 2019-07-07 17:30:15 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2020-01-28 22:36:51 +0100 |
commit | 6ead39170aea01521424733cad6aba0763ccebc1 (patch) | |
tree | bca748088c0cab0bb6f7561f7abadda9a0a76635 /test | |
parent | home: add pam_systemd_home.so PAM hookup (diff) | |
download | systemd-6ead39170aea01521424733cad6aba0763ccebc1.tar.xz systemd-6ead39170aea01521424733cad6aba0763ccebc1.zip |
test: add test case for homed
Diffstat (limited to 'test')
l--------- | test/TEST-46-HOMED/Makefile | 1 | ||||
-rwxr-xr-x | test/TEST-46-HOMED/test.sh | 42 | ||||
-rwxr-xr-x | test/TEST-46-HOMED/testsuite.sh | 74 |
3 files changed, 117 insertions, 0 deletions
diff --git a/test/TEST-46-HOMED/Makefile b/test/TEST-46-HOMED/Makefile new file mode 120000 index 0000000000..e9f93b1104 --- /dev/null +++ b/test/TEST-46-HOMED/Makefile @@ -0,0 +1 @@ +../TEST-01-BASIC/Makefile
\ No newline at end of file diff --git a/test/TEST-46-HOMED/test.sh b/test/TEST-46-HOMED/test.sh new file mode 100755 index 0000000000..092136c3e7 --- /dev/null +++ b/test/TEST-46-HOMED/test.sh @@ -0,0 +1,42 @@ +#!/bin/bash +set -e +TEST_DESCRIPTION="testing homed" +TEST_NO_QEMU=1 + +. $TEST_BASE_DIR/test-functions + +test_setup() { + create_empty_image + mkdir -p $TESTDIR/root + mount ${LOOPDEV}p1 $TESTDIR/root + + ( + LOG_LEVEL=5 + eval $(udevadm info --export --query=env --name=${LOOPDEV}p2) + + setup_basic_environment + mask_supporting_services + + # setup the testsuite service + cat >$initdir/etc/systemd/system/testsuite.service <<EOF +[Unit] +Description=Testsuite service +Before=getty-pre.target +Wants=getty-pre.target + +[Service] +ExecStart=/bin/bash -x /testsuite.sh +Type=oneshot +NotifyAccess=all +EOF + cp testsuite.sh $initdir/ + + setup_testsuite + ) || return 1 + setup_nspawn_root + + ddebug "umount $TESTDIR/root" + umount $TESTDIR/root +} + +do_test "$@" diff --git a/test/TEST-46-HOMED/testsuite.sh b/test/TEST-46-HOMED/testsuite.sh new file mode 100755 index 0000000000..9c52312ab5 --- /dev/null +++ b/test/TEST-46-HOMED/testsuite.sh @@ -0,0 +1,74 @@ +#!/bin/bash +set -ex +set -o pipefail + +# Check if homectl is installed, and if it isn't bail out early instead of failing +if ! test -x /usr/bin/homectl ; then + echo OK > /testok + exit 0 +fi + +inspect() { + homectl inspect $1 | tee /tmp/a + userdbctl user $1 | tee /tmp/b + cmp /tmp/a /tmp/b + rm /tmp/a /tmp/b +} + +systemd-analyze log-level debug +systemd-analyze log-target console + +NEWPASSWORD=xEhErW0ndafV4s homectl create test-user --disk-size=20M +inspect test-user + +PASSWORD=xEhErW0ndafV4s homectl authenticate test-user + +PASSWORD=xEhErW0ndafV4s homectl activate test-user +inspect test-user + +PASSWORD=xEhErW0ndafV4s homectl update test-user --real-name="Inline test" +inspect test-user + +homectl deactivate test-user +inspect test-user + +PASSWORD=xEhErW0ndafV4s NEWPASSWORD=yPN4N0fYNKUkOq homectl passwd test-user +inspect test-user + +PASSWORD=yPN4N0fYNKUkOq homectl activate test-user +inspect test-user + +SYSTEMD_LOG_LEVEL=debug PASSWORD=yPN4N0fYNKUkOq NEWPASSWORD=xEhErW0ndafV4s homectl passwd test-user +inspect test-user + +homectl deactivate test-user +inspect test-user + +PASSWORD=xEhErW0ndafV4s homectl activate test-user +inspect test-user + +PASSWORD=xEhErW0ndafV4s homectl deactivate test-user +inspect test-user + +PASSWORD=xEhErW0ndafV4s homectl update test-user --real-name="Offline test" +inspect test-user + +PASSWORD=xEhErW0ndafV4s homectl activate test-user +inspect test-user + +PASSWORD=xEhErW0ndafV4s homectl deactivate test-user +inspect test-user + +! PASSWORD=xEhErW0ndafV4s homectl with test-user -- test -f /home/test-user/xyz +PASSWORD=xEhErW0ndafV4s homectl with test-user -- touch /home/test-user/xyz +PASSWORD=xEhErW0ndafV4s homectl with test-user -- test -f /home/test-user/xyz +PASSWORD=xEhErW0ndafV4s homectl with test-user -- rm /home/test-user/xyz +! PASSWORD=xEhErW0ndafV4s homectl with test-user -- test -f /home/test-user/xyz + +homectl remove test-user + +systemd-analyze log-level info + +echo OK > /testok + +exit 0 |