]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Add tests for login with invalid sessions, and autologin with session/xserver crash
authorRobert Ancell <robert.ancell@canonical.com>
Mon, 25 Jul 2011 02:49:09 +0000 (12:49 +1000)
committerRobert Ancell <robert.ancell@canonical.com>
Mon, 25 Jul 2011 02:49:09 +0000 (12:49 +1000)
19 files changed:
.bzrignore
tests/Makefile.am
tests/data/xsessions/default.desktop [moved from tests/data/xsessions/test-session.desktop with 100% similarity]
tests/scripts/autologin-invalid-session.conf [new file with mode: 0644]
tests/scripts/autologin-invalid-session.script [new file with mode: 0644]
tests/scripts/autologin-session-crash.conf [new file with mode: 0644]
tests/scripts/autologin-session-crash.script [new file with mode: 0644]
tests/scripts/autologin-xserver-crash.script
tests/scripts/autologin.script
tests/scripts/login-invalid-session.conf [new file with mode: 0644]
tests/scripts/login-invalid-session.script [new file with mode: 0644]
tests/src/test-gobject-greeter.c
tests/src/test-qt-greeter.cpp
tests/src/test-runner.c
tests/test-autologin-invalid-session [new file with mode: 0755]
tests/test-autologin-session-crash [new file with mode: 0755]
tests/test-autologin-xserver-crash
tests/test-login-gobject-invalid-session [new file with mode: 0755]
tests/test-login-qt-invalid-session [new file with mode: 0755]

index 48fafc236afd851ad39c302decbdd826166c8064..ce146b061c2938c3cd25ab2bd77a31721d2b5a80 100644 (file)
@@ -56,9 +56,8 @@ tests/data/passwd
 tests/src/*_moc.cpp
 tests/src/plymouth
 tests/src/test-gobject-greeter
+tests/src/test-guest-account
 tests/src/test-qt-greeter
 tests/src/test-runner
 tests/src/test-session
 tests/src/test-xserver
-tests/src/test-cleanup-guest
-tests/src/test-setup-guest
index 03c412fac45894ec902354cf604469758840bcaa..730d3b23cdf1923ad84c014218038c094674c18f 100644 (file)
@@ -4,15 +4,19 @@ TESTS = \
        test-no-config \
        test-headless \
        test-autologin \
-       test-autologin-guest \
-       test-autologin-guest-fail-setup-script \
        test-autologin-invalid-user \
+       test-autologin-invalid-session \
+       test-autologin-xserver-crash \
+       test-autologin-session-crash \
        test-autologin-logout \
+       test-autologin-guest \
+       test-autologin-guest-fail-setup-script \
        test-login-gobject \
        test-login-gobject-manual \
        test-login-gobject-no-password \
        test-login-gobject-wrong-password \
        test-login-gobject-invalid-user \
+       test-login-gobject-invalid-session \
        test-login-gobject-logout \
        test-login-gobject-xserver-crash \
        test-login-gobject-session-crash \
@@ -28,9 +32,9 @@ TESTS = \
        test-switch-to-user \
        test-xdmcp-login
 
-#      test-autologin-invalid-session
-#      test-autologin-session-crash
 #      test-autologin-session-exit-error
+#      test-login-gobject-session-exit-error
+#      test-login-qt-session-exit-error
 
 if COMPILE_LIBLIGHTDM_QT
 TESTS += \
@@ -39,6 +43,7 @@ TESTS += \
        test-login-qt-no-password \
        test-login-qt-wrong-password \
        test-login-qt-invalid-user \
+       test-login-qt-invalid-session \
        test-login-qt-logout \
        test-login-qt-xserver-crash \
        test-login-qt-session-crash \
@@ -64,10 +69,16 @@ EXTRA_DIST = \
        scripts/autologin-guest.script \
        scripts/autologin-guest-fail-setup-script.conf \
        scripts/autologin-guest-fail-setup-script.script \
+       scripts/autologin-invalid-session.conf \
+       scripts/autologin-invalid-session.script \
        scripts/autologin-invalid-user.conf \
        scripts/autologin-invalid-user.script \
        scripts/autologin-logout.conf \
        scripts/autologin-logout.script \
+       scripts/autologin-session-crash.conf \
+       scripts/autologin-session-crash.script \
+       scripts/autologin-xserver-crash.conf \
+       scripts/autologin-xserver-crash.script \
        scripts/headless.conf \
        scripts/headless.script \
        scripts/login.conf \
@@ -80,6 +91,8 @@ EXTRA_DIST = \
        scripts/login-guest-fail-setup-script.script \
        scripts/login-guest-no-setup-script.conf \
        scripts/login-guest-no-setup-script.script \
+       scripts/login-invalid-session.conf \
+       scripts/login-invalid-session.script \
        scripts/login-invalid-user.conf \
        scripts/login-invalid-user.script \
        scripts/login-logout.conf \
diff --git a/tests/scripts/autologin-invalid-session.conf b/tests/scripts/autologin-invalid-session.conf
new file mode 100644 (file)
index 0000000..c25c168
--- /dev/null
@@ -0,0 +1,3 @@
+[SeatDefaults]
+autologin-user=alice
+user-session=invalid
diff --git a/tests/scripts/autologin-invalid-session.script b/tests/scripts/autologin-invalid-session.script
new file mode 100644 (file)
index 0000000..f921586
--- /dev/null
@@ -0,0 +1,28 @@
+#
+# Check can login
+#
+
+RUNNER DAEMON-START
+
+# X server starts
+XSERVER :50 START
+XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+XSERVER :50 ACCEPT-CONNECT
+
+# (session fails to start)
+
+# Greeter starts
+GREETER START
+XSERVER :50 ACCEPT-CONNECT
+GREETER CONNECT-XSERVER :50
+GREETER CONNECT-TO-DAEMON
+GREETER CONNECTED-TO-DAEMON
+
+# Cleanup
+*STOP-DAEMON
+# Don't know what order they will terminate
+(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/autologin-session-crash.conf b/tests/scripts/autologin-session-crash.conf
new file mode 100644 (file)
index 0000000..8bc4cbf
--- /dev/null
@@ -0,0 +1,5 @@
+[SeatDefaults]
+autologin-user=alice
+
+[test-session-config]
+sigsegv=true
diff --git a/tests/scripts/autologin-session-crash.script b/tests/scripts/autologin-session-crash.script
new file mode 100644 (file)
index 0000000..3398ed0
--- /dev/null
@@ -0,0 +1,44 @@
+#
+# Check if session crashes then returned to greeter
+#
+
+RUNNER DAEMON-START
+
+# X server starts
+XSERVER :50 START
+XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+XSERVER :50 ACCEPT-CONNECT
+
+# Session starts
+SESSION START USER=alice
+XSERVER :50 ACCEPT-CONNECT
+SESSION CONNECT-XSERVER
+
+# Session crashes
+SESSION CRASH
+
+# X server stops
+XSERVER :50 TERMINATE SIGNAL=15
+
+# X server starts
+XSERVER :50 START
+XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+XSERVER :50 ACCEPT-CONNECT
+
+# Greeter starts
+GREETER START
+XSERVER :50 ACCEPT-CONNECT
+GREETER CONNECT-XSERVER :50
+GREETER CONNECT-TO-DAEMON
+GREETER CONNECTED-TO-DAEMON
+
+# Cleanup
+*STOP-DAEMON
+# Don't know what order they will terminate
+(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+RUNNER DAEMON-EXIT STATUS=0
index f86b33cdb0658280b4b334f4dff54ab3952f473c..b9d1984114a8b2eef1bcbb0ec989949cddd809a6 100644 (file)
@@ -1,17 +1,17 @@
 #
-# Check X server crashing during autologin returns to greeter
+# Check LightDM returns to the greeter if the X server crashes inside a session
 #
 
 RUNNER DAEMON-START
 
-# X server starts
+# XServer starts
 XSERVER :50 START
 XSERVER :50 INDICATE-READY
 
 # LightDM connects to X server
 XSERVER :50 ACCEPT-CONNECT
 
-# Default session starts
+# Session starts
 SESSION START USER=alice
 XSERVER :50 ACCEPT-CONNECT
 SESSION CONNECT-XSERVER
@@ -20,14 +20,12 @@ SESSION CONNECT-XSERVER
 SESSION CRASH-XSERVER
 XSERVER :50 CRASH
 
-# Session terminates
+# User session is terminated
 SESSION TERMINATE SIGNAL=15
 
 # X server restarts
 XSERVER :50 START
 XSERVER :50 INDICATE-READY
-
-# LightDM connects to X server
 XSERVER :50 ACCEPT-CONNECT
 
 # Greeter starts
@@ -37,7 +35,6 @@ GREETER CONNECT-XSERVER :50
 GREETER CONNECT-TO-DAEMON
 GREETER CONNECTED-TO-DAEMON
 
-# Cleanup
 *STOP-DAEMON
 # Don't know what order they will terminate
 (GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
index e41e937ce55c133ec3331f85c8d40124136acbe4..697c5283429720d2bfad433a3a27901df540fda8 100644 (file)
@@ -11,7 +11,7 @@ XSERVER :50 INDICATE-READY
 # LightDM connects to X server
 XSERVER :50 ACCEPT-CONNECT
 
-# Default session starts
+# Session starts
 SESSION START USER=alice
 XSERVER :50 ACCEPT-CONNECT
 SESSION CONNECT-XSERVER
diff --git a/tests/scripts/login-invalid-session.conf b/tests/scripts/login-invalid-session.conf
new file mode 100644 (file)
index 0000000..2459f7f
--- /dev/null
@@ -0,0 +1,4 @@
+[test-greeter-config]
+username=alice
+password=password
+session=invalid
diff --git a/tests/scripts/login-invalid-session.script b/tests/scripts/login-invalid-session.script
new file mode 100644 (file)
index 0000000..a62043a
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# Check can login
+#
+
+RUNNER DAEMON-START
+
+# X server starts
+XSERVER :50 START
+XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+XSERVER :50 ACCEPT-CONNECT
+
+# Greeter starts
+GREETER START
+XSERVER :50 ACCEPT-CONNECT
+GREETER CONNECT-XSERVER :50
+GREETER CONNECT-TO-DAEMON
+GREETER CONNECTED-TO-DAEMON
+
+# Login as alice
+GREETER AUTHENTICATE USERNAME=alice
+GREETER SHOW-PROMPT TEXT="Password:"
+GREETER RESPOND TEXT="password"
+GREETER AUTHENTICATION-COMPLETE USERNAME=alice AUTHENTICATED=TRUE
+GREETER TERMINATE SIGNAL=15
+
+# X server stops, the session is invalid
+XSERVER :50 TERMINATE SIGNAL=15
+
+# X server restarts
+XSERVER :50 START
+XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+XSERVER :50 ACCEPT-CONNECT
+
+# Greeter starts
+GREETER START
+XSERVER :50 ACCEPT-CONNECT
+GREETER CONNECT-XSERVER :50
+GREETER CONNECT-TO-DAEMON
+GREETER CONNECTED-TO-DAEMON
+
+# Cleanup
+*STOP-DAEMON
+# Don't know what order they will terminate
+(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+(GREETER TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+RUNNER DAEMON-EXIT STATUS=0
index 7e8ccd6dd356b8409cd16cba176f566e05d14809..293dba67ba2b15be409f89c2cbcfbe99a6a05db4 100644 (file)
@@ -53,7 +53,7 @@ authentication_complete_cb (LightDMGreeter *greeter)
     if (!lightdm_greeter_get_is_authenticated (greeter))
         return;
 
-    if (!lightdm_greeter_start_session_sync (greeter, NULL, NULL))
+    if (!lightdm_greeter_start_session_sync (greeter, g_key_file_get_string (config, "test-greeter-config", "session", NULL), NULL))
         notify_status ("GREETER SESSION-FAILED");
 }
 
index fccea0f2f552c19bbe4576b929ac010c4c84f17f..08817a9c8c99d1e1d8c2c3e93a4ef4977007c6db 100644 (file)
@@ -54,7 +54,7 @@ void TestGreeter::authenticationComplete ()
     if (!isAuthenticated ())
         return;
 
-    if (!startSessionSync ())
+    if (!startSessionSync (config->value ("test-greeter-config/session").toString ()))
         notify_status ("GREETER SESSION-FAILED");
 }
 
index 863059cf6384f3b2e4e2f3e64f54ff6437446493..5bf5ddf662bb919b4bc0338bd45f07b433806f75 100644 (file)
@@ -588,7 +588,6 @@ main (int argc, char **argv)
     g_string_append(command_line, " --xserver-command=test-xserver");
     if (greeter)
         g_string_append_printf (command_line, " --greeter-session=%s", greeter);
-    g_string_append (command_line, " --user-session=test-session");
     g_string_append (command_line, " --session-wrapper=");
     g_string_append_printf (command_line, " --passwd-file %s/passwd", temp_dir);
     g_string_append_printf (command_line, " --cache-dir %s/cache", temp_dir);
diff --git a/tests/test-autologin-invalid-session b/tests/test-autologin-invalid-session
new file mode 100755 (executable)
index 0000000..24cf7ed
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/test-runner autologin-invalid-session test-gobject-greeter
diff --git a/tests/test-autologin-session-crash b/tests/test-autologin-session-crash
new file mode 100755 (executable)
index 0000000..257df5f
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/test-runner autologin-session-crash test-gobject-greeter
index 2b9feaf9e31fdeb088493829fc443a9eae8f3120..7dafa99911a02963f3562fd62d31b9826ac24cd0 100755 (executable)
@@ -1,2 +1,2 @@
 #!/bin/sh
-./src/test-runner autologin-xserver-crash
+./src/test-runner autologin-xserver-crash test-gobject-greeter
diff --git a/tests/test-login-gobject-invalid-session b/tests/test-login-gobject-invalid-session
new file mode 100755 (executable)
index 0000000..22b0c1e
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/test-runner login-invalid-session test-gobject-greeter
diff --git a/tests/test-login-qt-invalid-session b/tests/test-login-qt-invalid-session
new file mode 100755 (executable)
index 0000000..11d0d58
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/test-runner login-invalid-session test-qt-greeter