summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2015-10-16 10:10:34 +0100
committerRobert Ancell <robert.ancell@canonical.com>2015-10-16 10:10:34 +0100
commit5b1596558dd7e01b892479fa32b46757b7566ee2 (patch)
treef5aeb340c423b54071f569802b788ff26800d414 /tests
parent1f0180f018fa3f9b15f7a68cb17d15423c8e9a22 (diff)
parentb7778d2853d781998a4c6e8733c9cf76b7b6588e (diff)
downloadlightdm-5b1596558dd7e01b892479fa32b46757b7566ee2.tar.gz
When locking a session, if an existing greeter can't be reused, then it's stopped and its display server is reused with a new greeter.
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am4
-rw-r--r--tests/scripts/lock-seat-after-vt-switch.conf22
-rw-r--r--tests/scripts/lock-seat-twice.conf75
-rw-r--r--tests/scripts/lock-session-twice.conf77
-rwxr-xr-xtests/test-lock-seat-twice2
-rwxr-xr-xtests/test-lock-session-twice2
6 files changed, 170 insertions, 12 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index b4d73c65..a96c77f1 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -134,9 +134,11 @@ TESTS = \
test-dbus \
test-lock-seat \
test-lock-seat-after-vt-switch \
+ test-lock-seat-twice \
test-lock-seat-resettable \
test-lock-seat-return-session \
test-lock-session \
+ test-lock-session-twice \
test-lock-session-no-password \
test-lock-session-resettable \
test-lock-session-return-session \
@@ -434,10 +436,12 @@ EXTRA_DIST = \
scripts/lock-seat-resettable.conf \
scripts/lock-seat-return-session.conf \
scripts/lock-seat-return-session-console-kit.conf \
+ scripts/lock-seat-twice.conf \
scripts/lock-session.conf \
scripts/lock-session-no-password.conf \
scripts/lock-session-resettable.conf \
scripts/lock-session-return-session.conf \
+ scripts/lock-session-twice.conf \
scripts/login.conf \
scripts/login-crash-authenticate.conf \
scripts/login-guest.conf \
diff --git a/tests/scripts/lock-seat-after-vt-switch.conf b/tests/scripts/lock-seat-after-vt-switch.conf
index 4a20ea19..d9cb9ccb 100644
--- a/tests/scripts/lock-seat-after-vt-switch.conf
+++ b/tests/scripts/lock-seat-after-vt-switch.conf
@@ -61,21 +61,19 @@ user-session=default
# Lock the seat again
#?*SESSION-X-0 LOCK-SEAT
#?SESSION-X-0 LOCK-SEAT
-
-# New X server starts (this is a "bug")
-#?XSERVER-2 START VT=9 SEAT=seat0
-#?*XSERVER-2 INDICATE-READY
-#?XSERVER-2 INDICATE-READY
-#?XSERVER-2 ACCEPT-CONNECT
-
-# Session is locked
#?LOGIN1 LOCK-SESSION SESSION=c0
-# Session is switched to greeter
-#?LOGIN1 ACTIVATE-SESSION SESSION=c1
+# Old greeter is stopped
+#?GREETER-X-1 TERMINATE SIGNAL=15
-# The unnecessary X server is killed
-#?XSERVER-2 TERMINATE SIGNAL=15
+# A new greeter is started and activated on the same X server
+#?LOGIN1 ACTIVATE-SESSION SESSION=c2
+#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_CLASS=greeter
+#?XSERVER-1 ACCEPT-CONNECT
+#?GREETER-X-1 CONNECT-XSERVER
+#?GREETER-X-1 CONNECT-TO-DAEMON
+#?GREETER-X-1 CONNECTED-TO-DAEMON
+#?GREETER-X-1 LOCK-HINT
# Cleanup
#?*STOP-DAEMON
diff --git a/tests/scripts/lock-seat-twice.conf b/tests/scripts/lock-seat-twice.conf
new file mode 100644
index 00000000..c8d6dc8e
--- /dev/null
+++ b/tests/scripts/lock-seat-twice.conf
@@ -0,0 +1,75 @@
+#
+# Check locking a seat twice doesn't spawn two greeters
+#
+
+[SeatDefaults]
+autologin-user=have-password1
+user-session=default
+
+#?*START-DAEMON
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7 SEAT=seat0
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Session starts
+#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Lock the seat
+#?*SESSION-X-0 LOCK-SEAT
+#?SESSION-X-0 LOCK-SEAT
+
+# New X server starts
+#?XSERVER-1 START VT=8 SEAT=seat0
+
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 ACCEPT-CONNECT
+
+# Session is locked
+#?LOGIN1 LOCK-SESSION SESSION=c0
+
+# Greeter starts
+#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_CLASS=greeter
+#?XSERVER-1 ACCEPT-CONNECT
+#?GREETER-X-1 CONNECT-XSERVER
+#?GREETER-X-1 CONNECT-TO-DAEMON
+#?GREETER-X-1 CONNECTED-TO-DAEMON
+#?GREETER-X-1 LOCK-HINT
+
+# Switch to greeter
+#?LOGIN1 ACTIVATE-SESSION SESSION=c1
+#?VT ACTIVATE VT=8
+
+# Lock the seat again
+#?*SESSION-X-0 LOCK-SEAT
+#?SESSION-X-0 LOCK-SEAT
+
+# Old greeter is stopped
+#?GREETER-X-1 TERMINATE SIGNAL=15
+
+# A new greeter is started and activated on the same X server
+#?LOGIN1 ACTIVATE-SESSION SESSION=c2
+#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_CLASS=greeter
+#?XSERVER-1 ACCEPT-CONNECT
+#?GREETER-X-1 CONNECT-XSERVER
+#?GREETER-X-1 CONNECT-TO-DAEMON
+#?GREETER-X-1 CONNECTED-TO-DAEMON
+#?GREETER-X-1 LOCK-HINT
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?GREETER-X-1 TERMINATE SIGNAL=15
+#?XSERVER-1 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/lock-session-twice.conf b/tests/scripts/lock-session-twice.conf
new file mode 100644
index 00000000..e7f20c3d
--- /dev/null
+++ b/tests/scripts/lock-session-twice.conf
@@ -0,0 +1,77 @@
+#
+# Check locking a session twice doesn't spawn two greeters
+#
+
+[SeatDefaults]
+autologin-user=have-password1
+user-session=default
+
+#?*START-DAEMON
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7 SEAT=seat0
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Session starts
+#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Lock the session
+#?*SESSION-X-0 LOCK-SESSION
+#?SESSION-X-0 LOCK-SESSION
+
+# New X server starts
+#?XSERVER-1 START VT=8 SEAT=seat0
+
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 ACCEPT-CONNECT
+
+# Session is locked
+#?LOGIN1 LOCK-SESSION SESSION=c0
+
+# Greeter starts with session user selected
+#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_CLASS=greeter
+#?XSERVER-1 ACCEPT-CONNECT
+#?GREETER-X-1 CONNECT-XSERVER
+#?GREETER-X-1 CONNECT-TO-DAEMON
+#?GREETER-X-1 CONNECTED-TO-DAEMON
+#?GREETER-X-1 SELECT-USER-HINT USERNAME=have-password1
+#?GREETER-X-1 LOCK-HINT
+
+# Switch to greeter
+#?LOGIN1 ACTIVATE-SESSION SESSION=c1
+#?VT ACTIVATE VT=8
+
+# Lock the session again
+#?*SESSION-X-0 LOCK-SESSION
+#?SESSION-X-0 LOCK-SESSION
+
+# Old greeter is stopped
+#?GREETER-X-1 TERMINATE SIGNAL=15
+#?LOGIN1 ACTIVATE-SESSION SESSION=c2
+
+# A new greeter is started and activated on the same X server
+#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_CLASS=greeter
+#?XSERVER-1 ACCEPT-CONNECT
+#?GREETER-X-1 CONNECT-XSERVER
+#?GREETER-X-1 CONNECT-TO-DAEMON
+#?GREETER-X-1 CONNECTED-TO-DAEMON
+#?GREETER-X-1 SELECT-USER-HINT USERNAME=have-password1
+#?GREETER-X-1 LOCK-HINT
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?GREETER-X-1 TERMINATE SIGNAL=15
+#?XSERVER-1 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/test-lock-seat-twice b/tests/test-lock-seat-twice
new file mode 100755
index 00000000..d39c9855
--- /dev/null
+++ b/tests/test-lock-seat-twice
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner lock-seat-twice test-gobject-greeter
diff --git a/tests/test-lock-session-twice b/tests/test-lock-session-twice
new file mode 100755
index 00000000..61b09d1f
--- /dev/null
+++ b/tests/test-lock-session-twice
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner lock-session-twice test-gobject-greeter