]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: terminate session and user on cleanup
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 30 Jul 2022 15:11:59 +0000 (00:11 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 30 Jul 2022 15:15:47 +0000 (00:15 +0900)
test/units/testsuite-35.sh

index 6e556519b478e55f2f4b23b79a37c2275aa7c609..71b16b0a45440b831c332db499b847a9b35e9b54 100755 (executable)
@@ -221,7 +221,7 @@ test_shutdown() {
 cleanup_session() (
     set +ex
 
-    local uid
+    local uid s
 
     uid=$(id -u logind-test-user)
 
@@ -229,6 +229,17 @@ cleanup_session() (
 
     systemctl stop getty@tty2.service
 
+    for s in $(loginctl --no-legend list-sessions | awk '$3 == "logind-test-user" { print $1 }'); do
+        echo "INFO: stopping session $s"
+        loginctl terminate-session "$s"
+    done
+
+    loginctl terminate-user logind-test-user
+
+    if ! timeout 30 bash -c "while loginctl --no-legend | grep -q logind-test-user; do sleep 1; done"; then
+        echo "WARNING: session for logind-test-user still active, ignoring."
+    fi
+
     pkill -u "$uid"
     sleep 1
     pkill -KILL -u "$uid"