teknoraver / rpms / systemd

Forked from rpms/systemd 3 months ago
Clone
Blob Blame History Raw
From 1fe172a67c2bbbedfd08d6ec5a28386f197962f9 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Fri, 22 Jul 2022 15:45:24 +0900
Subject: [PATCH] test: wait for user service or slice to be finished

Hopefully fixes #24040.

(cherry picked from commit 8015e2587045f8a58a15d4551c76521a4a3ff50c)

Related: #2100464
---
 test/units/testsuite-35.sh | 27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)

diff --git a/test/units/testsuite-35.sh b/test/units/testsuite-35.sh
index d9eccee84f..d55ad6103e 100755
--- a/test/units/testsuite-35.sh
+++ b/test/units/testsuite-35.sh
@@ -221,15 +221,32 @@ test_shutdown() {
 cleanup_session() (
     set +ex
 
-    systemctl stop getty@tty2.service
-    rm -rf /run/systemd/system/getty@tty2.service.d
-    systemctl daemon-reload
+    local uid
+
+    uid=$(id -u logind-test-user)
 
     loginctl disable-linger logind-test-user
 
-    pkill -u "$(id -u logind-test-user)"
+    systemctl stop getty@tty2.service
+
+    pkill -u "$uid"
     sleep 1
-    pkill -KILL -u "$(id -u logind-test-user)"
+    pkill -KILL -u "$uid"
+
+    if ! timeout 30 bash -c "while systemctl is-active --quiet user@${uid}.service; do sleep 1; done"; then
+        echo "WARNING: user@${uid}.service is still active, ignoring."
+    fi
+
+    if ! timeout 30 bash -c "while systemctl is-active --quiet user-runtime-dir@${uid}.service; do sleep 1; done"; then
+        echo "WARNING: user-runtime-dir@${uid}.service is still active, ignoring."
+    fi
+
+    if ! timeout 30 bash -c "while systemctl is-active --quiet user-${uid}.slice; do sleep 1; done"; then
+        echo "WARNING: user-${uid}.slice is still active, ignoring."
+    fi
+
+    rm -rf /run/systemd/system/getty@tty2.service.d
+    systemctl daemon-reload
 
     return 0
 )