diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2014-12-09 11:03:32 +1300 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2014-12-09 11:03:32 +1300 |
commit | bec61a0484a524b5688a69ae76751974ba32b979 (patch) | |
tree | ba711a6b8c9ec4363df13c9e74650032fb24d842 | |
parent | a0616a72a7490d31e8f9b7ccca6ac3b648ef405c (diff) | |
download | lightdm-bec61a0484a524b5688a69ae76751974ba32b979.tar.gz |
Add a test showing double locking a seat casues a second display server to start
-rw-r--r-- | src/seat.c | 2 | ||||
-rw-r--r-- | tests/Makefile.am | 6 | ||||
-rw-r--r-- | tests/scripts/lock-seat-twice.conf | 66 | ||||
-rw-r--r-- | tests/scripts/lock-session-twice.conf | 67 | ||||
-rwxr-xr-x | tests/test-lock-seat-twice | 2 | ||||
-rwxr-xr-x | tests/test-lock-session-twice | 2 |
6 files changed, 144 insertions, 1 deletions
@@ -1540,6 +1540,8 @@ seat_lock (Seat *seat, const gchar *username) if (!seat_get_can_switch (seat)) return FALSE; + // FIXME: If already locked then don't bother... + l_debug (seat, "Locking"); /* Switch to greeter we can reuse */ diff --git a/tests/Makefile.am b/tests/Makefile.am index 8bfd1add..2dc06ad7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -129,9 +129,11 @@ TESTS = \ test-upstart-login \ test-dbus \ test-lock-seat \ + 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 \ @@ -408,14 +410,16 @@ EXTRA_DIST = \ scripts/language-env.conf \ scripts/language-no-accounts-service.conf \ scripts/lock-seat.conf \ - scripts/lock-seat-console-kit.conf \ + scripts/lock-seat-console-kit.conf \ 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-twice.conf b/tests/scripts/lock-seat-twice.conf new file mode 100644 index 00000000..19128acd --- /dev/null +++ b/tests/scripts/lock-seat-twice.conf @@ -0,0 +1,66 @@ +# +# 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 + +# Nothing should happen... +#?*WAIT + +# 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..6a8bda7e --- /dev/null +++ b/tests/scripts/lock-session-twice.conf @@ -0,0 +1,67 @@ +# +# 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 + +# Nothing should happen +#?*WAIT + +# 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 |