summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2013-08-22 15:18:34 +1200
committerRobert Ancell <robert.ancell@canonical.com>2013-08-22 15:18:34 +1200
commit536ecbb936915ea93aa300fe1a534d8d72dc1732 (patch)
tree74180b27b6c6e7dd9f192d16ef219a8ff2d82134
parent6d5b8b7a154f47cbf6efab544c4ac7219d0bc96e (diff)
downloadlightdm-git-536ecbb936915ea93aa300fe1a534d8d72dc1732.tar.gz
Backport test improvements from trunk
-rw-r--r--tests/Makefile.am88
-rw-r--r--tests/scripts/autologin-guest-fail-setup-script.conf10
-rw-r--r--tests/scripts/autologin-guest-logout.conf18
-rw-r--r--tests/scripts/autologin-guest-timeout.conf11
-rw-r--r--tests/scripts/autologin-guest.conf9
-rw-r--r--tests/scripts/autologin-invalid-session.conf9
-rw-r--r--tests/scripts/autologin-invalid-user.conf13
-rw-r--r--tests/scripts/autologin-logout.conf18
-rw-r--r--tests/scripts/autologin-new-authtok.conf10
-rw-r--r--tests/scripts/autologin-password.conf10
-rw-r--r--tests/scripts/autologin-previous-session.conf9
-rw-r--r--tests/scripts/autologin-session-crash.conf18
-rw-r--r--tests/scripts/autologin-session-error.conf16
-rw-r--r--tests/scripts/autologin-timeout.conf11
-rw-r--r--tests/scripts/autologin-xserver-crash.conf14
-rw-r--r--tests/scripts/autologin.conf9
-rw-r--r--tests/scripts/cancel-authentication.conf9
-rw-r--r--tests/scripts/change-authentication.conf9
-rw-r--r--tests/scripts/console-kit.conf13
-rw-r--r--tests/scripts/crash-authenticate.conf10
-rw-r--r--tests/scripts/cred-error.conf16
-rw-r--r--tests/scripts/cred-expired.conf16
-rw-r--r--tests/scripts/cred-unavail.conf16
-rw-r--r--tests/scripts/dbus.conf52
-rw-r--r--tests/scripts/denied.conf10
-rw-r--r--tests/scripts/expired.conf10
-rw-r--r--tests/scripts/greeter-allow-guest.conf32
-rw-r--r--tests/scripts/greeter-default-session.conf33
-rw-r--r--tests/scripts/greeter-fail-start.conf9
-rw-r--r--tests/scripts/greeter-hide-users.conf32
-rw-r--r--tests/scripts/greeter-not-installed.conf5
-rw-r--r--tests/scripts/greeter-show-manual-login.conf32
-rw-r--r--tests/scripts/greeter-show-remote-login.conf32
-rw-r--r--tests/scripts/greeter-xserver-crash.conf18
-rw-r--r--tests/scripts/group-membership.conf9
-rw-r--r--tests/scripts/home-dir-on-authenticate.conf9
-rw-r--r--tests/scripts/home-dir-on-session.conf9
-rw-r--r--tests/scripts/keyboard-layout.conf9
-rw-r--r--tests/scripts/language-no-accounts-service.conf9
-rw-r--r--tests/scripts/language.conf9
-rw-r--r--tests/scripts/lock-seat-return-session.conf71
-rw-r--r--tests/scripts/lock-seat.conf24
-rw-r--r--tests/scripts/lock-session.conf24
-rw-r--r--tests/scripts/login-crash-authenticate.conf9
-rw-r--r--tests/scripts/login-guest-disabled.conf10
-rw-r--r--tests/scripts/login-guest-fail-setup-script.conf19
-rw-r--r--tests/scripts/login-guest-logout.conf20
-rw-r--r--tests/scripts/login-guest-no-setup-script.conf10
-rw-r--r--tests/scripts/login-guest.conf11
-rw-r--r--tests/scripts/login-info-prompt.conf9
-rw-r--r--tests/scripts/login-invalid-session.conf16
-rw-r--r--tests/scripts/login-invalid-user.conf9
-rw-r--r--tests/scripts/login-logout.conf20
-rw-r--r--tests/scripts/login-long-password.conf9
-rw-r--r--tests/scripts/login-long-username.conf9
-rw-r--r--tests/scripts/login-manual-previous-session.conf11
-rw-r--r--tests/scripts/login-manual.conf11
-rw-r--r--tests/scripts/login-multi-info-prompt.conf9
-rw-r--r--tests/scripts/login-multi-prompt.conf9
-rw-r--r--tests/scripts/login-new-authtok.conf11
-rw-r--r--tests/scripts/login-no-password.conf11
-rw-r--r--tests/scripts/login-pam.conf11
-rw-r--r--tests/scripts/login-pick-session.conf19
-rw-r--r--tests/scripts/login-previous-session.conf11
-rw-r--r--tests/scripts/login-remember-session.conf69
-rw-r--r--tests/scripts/login-remote-session.conf11
-rw-r--r--tests/scripts/login-session-crash.conf20
-rw-r--r--tests/scripts/login-two-factor.conf9
-rw-r--r--tests/scripts/login-wrong-password.conf9
-rw-r--r--tests/scripts/login-xserver-crash.conf16
-rw-r--r--tests/scripts/login.conf11
-rw-r--r--tests/scripts/no-accounts-service.conf9
-rw-r--r--tests/scripts/no-config.conf9
-rw-r--r--tests/scripts/no-console-kit.conf7
-rw-r--r--tests/scripts/no-keyboard-layout.conf9
-rw-r--r--tests/scripts/no-language.conf9
-rw-r--r--tests/scripts/open-file-descriptors.conf11
-rw-r--r--tests/scripts/pam.conf9
-rw-r--r--tests/scripts/plymouth-active-vt.conf11
-rw-r--r--tests/scripts/plymouth-inactive-vt.conf9
-rw-r--r--tests/scripts/restart-authentication.conf9
-rw-r--r--tests/scripts/script-hook-fail-display-setup.conf7
-rw-r--r--tests/scripts/script-hook-fail-greeter-setup.conf7
-rw-r--r--tests/scripts/script-hook-fail-session-setup.conf10
-rw-r--r--tests/scripts/script-hooks.conf18
-rw-r--r--tests/scripts/session-env.conf34
-rw-r--r--tests/scripts/session-stderr-backup.conf23
-rw-r--r--tests/scripts/session-stderr-multi-write.conf9
-rw-r--r--tests/scripts/session-stderr.conf9
-rw-r--r--tests/scripts/session-stdout.conf9
-rw-r--r--tests/scripts/switch-to-greeter-new-session-logout-new.conf29
-rw-r--r--tests/scripts/switch-to-greeter-new-session-logout-old.conf39
-rw-r--r--tests/scripts/switch-to-greeter-new-session.conf26
-rw-r--r--tests/scripts/switch-to-greeter-return-session-logout.conf35
-rw-r--r--tests/scripts/switch-to-greeter-return-session.conf30
-rw-r--r--tests/scripts/switch-to-greeter.conf24
-rw-r--r--tests/scripts/switch-to-guest.conf24
-rw-r--r--tests/scripts/switch-to-user-existing-session.conf9
-rw-r--r--tests/scripts/switch-to-user-logout.conf33
-rw-r--r--tests/scripts/switch-to-user-no-password.conf24
-rw-r--r--tests/scripts/switch-to-user.conf24
-rw-r--r--tests/scripts/switch-to-users.conf39
-rw-r--r--tests/scripts/system-xauthority.conf9
-rw-r--r--tests/scripts/upstart-autologin.conf34
-rw-r--r--tests/scripts/upstart-login.conf49
-rw-r--r--tests/scripts/user-renamed-invalid.conf10
-rw-r--r--tests/scripts/user-renamed.conf9
-rw-r--r--tests/scripts/util-path.conf9
-rw-r--r--tests/scripts/vnc-dimensions.conf47
-rw-r--r--tests/scripts/vnc-login.conf15
-rw-r--r--tests/scripts/vnc-open-file-descriptors.conf15
-rw-r--r--tests/scripts/xauthority.conf9
-rw-r--r--tests/scripts/xdmcp-server-login.conf (renamed from tests/scripts/xdmcp-login.conf)7
-rw-r--r--tests/scripts/xdmcp-server-open-file-descriptors.conf (renamed from tests/scripts/xdmcp-open-file-descriptors.conf)7
-rw-r--r--tests/scripts/xserver-fail-start.conf2
-rw-r--r--tests/src/Makefile.am21
-rw-r--r--tests/src/X.c57
-rw-r--r--tests/src/Xvnc.c46
-rw-r--r--tests/src/initctl.c21
-rw-r--r--tests/src/libsystem.c50
-rw-r--r--tests/src/status.c10
-rw-r--r--tests/src/status.h8
-rw-r--r--tests/src/test-gobject-greeter.c107
-rwxr-xr-xtests/src/test-python-greeter112
-rw-r--r--tests/src/test-qt-greeter.cpp55
-rw-r--r--tests/src/test-runner.c697
-rw-r--r--tests/src/test-session.c52
-rw-r--r--tests/src/x-authority.h6
-rw-r--r--tests/src/x-common.h6
-rw-r--r--tests/src/x-server.h6
-rw-r--r--tests/src/xdmcp-client.h6
-rwxr-xr-xtests/test-dbus2
-rwxr-xr-xtests/test-greeter-allow-guest2
-rwxr-xr-xtests/test-greeter-default-session2
-rwxr-xr-xtests/test-greeter-hide-users2
-rwxr-xr-xtests/test-greeter-show-manual-login2
-rwxr-xr-xtests/test-greeter-show-remote-login2
-rwxr-xr-xtests/test-lock-seat-return-session2
-rwxr-xr-xtests/test-login-gobject-remember-session2
-rwxr-xr-xtests/test-login-python-remember-session2
-rwxr-xr-xtests/test-login-qt-remember-session2
-rwxr-xr-xtests/test-session-env2
-rwxr-xr-xtests/test-upstart-autologin2
-rwxr-xr-xtests/test-upstart-login2
-rwxr-xr-xtests/test-vnc-dimensions2
-rwxr-xr-xtests/test-xdmcp-login2
-rwxr-xr-xtests/test-xdmcp-open-file-descriptors2
-rwxr-xr-xtests/test-xdmcp-server-login2
-rwxr-xr-xtests/test-xdmcp-server-open-file-descriptors2
149 files changed, 2421 insertions, 850 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 127dd5fe..968abeba 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -5,6 +5,11 @@ TESTS = \
test-greeter-fail-start \
test-greeter-not-installed \
test-greeter-xserver-crash \
+ test-greeter-default-session \
+ test-greeter-allow-guest \
+ test-greeter-hide-users \
+ test-greeter-show-manual-login \
+ test-greeter-show-remote-login \
test-no-config \
test-headless \
test-autologin \
@@ -17,12 +22,9 @@ TESTS = \
test-autologin-new-authtok \
test-autologin-gobject-timeout \
test-autologin-gobject-guest-timeout \
- test-autologin-python-timeout \
- test-autologin-python-guest-timeout \
test-change-authentication \
test-restart-authentication \
test-gobject-cancel-authentication \
- test-python-cancel-authentication \
test-pam \
test-login-pam \
test-denied \
@@ -37,6 +39,7 @@ TESTS = \
test-autologin-guest-fail-setup-script \
test-autologin-guest-logout \
test-group-membership \
+ test-session-env \
test-util-path \
test-session-stdout \
test-session-stderr \
@@ -64,6 +67,7 @@ TESTS = \
test-login-gobject-multi-info-prompt \
test-login-gobject-multi-prompt \
test-login-gobject-pick-session \
+ test-login-gobject-remember-session \
test-login-gobject-previous-session \
test-login-gobject-wrong-password \
test-login-gobject-invalid-user \
@@ -75,28 +79,6 @@ TESTS = \
test-login-gobject-guest-fail-setup-script \
test-login-gobject-guest-logout \
test-login-gobject-remote-session \
- test-login-python \
- test-login-python-manual \
- test-login-python-manual-previous-session \
- test-login-python-no-password \
- test-login-python-long-username \
- test-login-python-long-password \
- test-login-python-two-factor \
- test-login-python-new-authtok \
- test-login-python-info-prompt \
- test-login-python-multi-info-prompt \
- test-login-python-previous-session \
- test-login-python-wrong-password \
- test-login-python-invalid-user \
- test-login-python-invalid-session \
- test-login-python-logout \
- test-login-python-pick-session \
- test-login-python-guest \
- test-login-python-guest-disabled \
- test-login-python-guest-no-setup-script \
- test-login-python-guest-fail-setup-script \
- test-login-python-guest-logout \
- test-login-python-remote-session \
test-login-session-crash \
test-login-xserver-crash \
test-home-dir-on-authenticate \
@@ -108,7 +90,11 @@ TESTS = \
test-script-hook-fail-display-setup \
test-script-hook-fail-greeter-setup \
test-script-hook-fail-session-setup \
+ test-upstart-autologin \
+ test-upstart-login \
+ test-dbus \
test-lock-seat \
+ test-lock-seat-return-session \
test-lock-session \
test-switch-to-greeter \
test-switch-to-greeter-new-session \
@@ -123,12 +109,14 @@ TESTS = \
test-switch-to-user-no-password \
test-switch-to-user-logout \
test-vnc-login \
- test-xdmcp-login \
+ test-vnc-dimensions \
+ test-vnc-open-file-descriptors \
+ test-xdmcp-server-login \
test-no-accounts-service \
test-console-kit \
test-no-console-kit \
test-open-file-descriptors \
- test-xdmcp-open-file-descriptors
+ test-xdmcp-server-open-file-descriptors
# test-session-exit-error
# test-greeter-no-exit
@@ -136,6 +124,34 @@ TESTS = \
# test-qt-change-password
# test-autologin-create-directory
+TESTS += \
+ test-python-cancel-authentication \
+ test-login-python \
+ test-login-python-manual \
+ test-login-python-manual-previous-session \
+ test-login-python-no-password \
+ test-login-python-long-username \
+ test-login-python-long-password \
+ test-login-python-two-factor \
+ test-login-python-new-authtok \
+ test-login-python-info-prompt \
+ test-login-python-multi-info-prompt \
+ test-login-python-previous-session \
+ test-login-python-wrong-password \
+ test-login-python-invalid-user \
+ test-login-python-invalid-session \
+ test-login-python-logout \
+ test-login-python-pick-session \
+ test-login-python-remember-session \
+ test-login-python-guest \
+ test-login-python-guest-disabled \
+ test-login-python-guest-no-setup-script \
+ test-login-python-guest-fail-setup-script \
+ test-login-python-guest-logout \
+ test-login-python-remote-session \
+ test-autologin-python-timeout \
+ test-autologin-python-guest-timeout
+
if COMPILE_LIBLIGHTDM_QT
TESTS += \
test-autologin-qt-timeout \
@@ -157,6 +173,7 @@ TESTS += \
test-login-qt-invalid-session \
test-login-qt-logout \
test-login-qt-pick-session \
+ test-login-qt-remember-session \
test-login-qt-guest \
test-login-qt-guest-disabled \
test-login-qt-guest-no-setup-script \
@@ -196,10 +213,16 @@ EXTRA_DIST = \
scripts/cred-error.conf \
scripts/cred-expired.conf \
scripts/cred-unavail.conf \
+ scripts/dbus.conf \
scripts/denied.conf \
scripts/expired.conf \
+ scripts/greeter-allow-guest.conf \
+ scripts/greeter-default-session.conf \
scripts/greeter-fail-start.conf \
+ scripts/greeter-hide-users.conf \
scripts/greeter-not-installed.conf \
+ scripts/greeter-show-manual-login.conf \
+ scripts/greeter-show-remote-login.conf \
scripts/greeter-xserver-crash.conf \
scripts/group-membership.conf \
scripts/headless.conf \
@@ -209,6 +232,7 @@ EXTRA_DIST = \
scripts/language.conf \
scripts/language-no-accounts-service.conf \
scripts/lock-seat.conf \
+ scripts/lock-seat-return-session.conf \
scripts/lock-session.conf \
scripts/login.conf \
scripts/login-crash-authenticate.conf \
@@ -232,6 +256,7 @@ EXTRA_DIST = \
scripts/login-pam.conf \
scripts/login-pick-session.conf \
scripts/login-previous-session.conf \
+ scripts/login-remember-session.conf \
scripts/login-remote-session.conf \
scripts/login-session-crash.conf \
scripts/login-two-factor.conf \
@@ -242,6 +267,7 @@ EXTRA_DIST = \
scripts/no-console-kit.conf \
scripts/no-keyboard-layout.conf \
scripts/no-language.conf \
+ scripts/open-file-descriptors.conf \
scripts/pam.conf \
scripts/plymouth-active-vt.conf \
scripts/plymouth-inactive-vt.conf \
@@ -251,6 +277,7 @@ EXTRA_DIST = \
scripts/script-hook-fail-display-setup.conf \
scripts/script-hook-fail-greeter-setup.conf \
scripts/script-hook-fail-session-setup.conf \
+ scripts/session-env.conf \
scripts/session-stdout.conf \
scripts/session-stderr.conf \
scripts/session-stderr-multi-write.conf \
@@ -268,10 +295,15 @@ EXTRA_DIST = \
scripts/switch-to-user-logout.conf \
scripts/switch-to-user-no-password.conf \
scripts/system-xauthority.conf \
+ scripts/upstart-autologin.conf \
+ scripts/upstart-login.conf \
scripts/util-path.conf \
scripts/user-renamed.conf \
scripts/user-renamed-invalid.conf \
+ scripts/vnc-dimensions.conf \
scripts/vnc-login.conf \
+ scripts/vnc-open-file-descriptors.conf \
scripts/xauthority.conf \
- scripts/xdmcp-login.conf \
+ scripts/xdmcp-server-login.conf \
+ scripts/xdmcp-server-open-file-descriptors.conf \
scripts/xserver-fail-start.conf
diff --git a/tests/scripts/autologin-guest-fail-setup-script.conf b/tests/scripts/autologin-guest-fail-setup-script.conf
index f23b3f5f..f228d90f 100644
--- a/tests/scripts/autologin-guest-fail-setup-script.conf
+++ b/tests/scripts/autologin-guest-fail-setup-script.conf
@@ -7,20 +7,22 @@ guest-account-script=false
[SeatDefaults]
autologin-guest=true
+user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (guest account attempts to start and fails)
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/autologin-guest-logout.conf b/tests/scripts/autologin-guest-logout.conf
index afa34736..0214a285 100644
--- a/tests/scripts/autologin-guest-logout.conf
+++ b/tests/scripts/autologin-guest-logout.conf
@@ -12,17 +12,18 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Guest account created
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION-X-0 START USER=guest-.*
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=guest-.*
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -36,14 +37,15 @@ user-session=default
#?GUEST-ACCOUNT REMOVE USERNAME=guest-.*
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/autologin-guest-timeout.conf b/tests/scripts/autologin-guest-timeout.conf
index c1dbd89b..f5e040fd 100644
--- a/tests/scripts/autologin-guest-timeout.conf
+++ b/tests/scripts/autologin-guest-timeout.conf
@@ -13,14 +13,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -39,7 +40,7 @@ user-session=default
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION-X-0 START USER=guest-.*
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=guest-.*
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/autologin-guest.conf b/tests/scripts/autologin-guest.conf
index 55880a9e..13ddd7d7 100644
--- a/tests/scripts/autologin-guest.conf
+++ b/tests/scripts/autologin-guest.conf
@@ -12,17 +12,18 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Guest account created
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION-X-0 START USER=guest-.*
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=guest-.*
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/autologin-invalid-session.conf b/tests/scripts/autologin-invalid-session.conf
index 62fe206d..12ab5663 100644
--- a/tests/scripts/autologin-invalid-session.conf
+++ b/tests/scripts/autologin-invalid-session.conf
@@ -9,16 +9,17 @@ user-session=invalid
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (session fails to start)
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/autologin-invalid-user.conf b/tests/scripts/autologin-invalid-user.conf
index 25a8329d..3a151dbb 100644
--- a/tests/scripts/autologin-invalid-user.conf
+++ b/tests/scripts/autologin-invalid-user.conf
@@ -7,17 +7,18 @@ autologin-user=invalid
#?RUNNER DAEMON-START
+# (fails to start session for invalid user)
+
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
-# (fails to start session for invalid user)
-
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/autologin-logout.conf b/tests/scripts/autologin-logout.conf
index 50e7dd7f..be117e20 100644
--- a/tests/scripts/autologin-logout.conf
+++ b/tests/scripts/autologin-logout.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Autologin session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -27,14 +28,15 @@ user-session=default
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/autologin-new-authtok.conf b/tests/scripts/autologin-new-authtok.conf
index 4407f49b..d0db2c6d 100644
--- a/tests/scripts/autologin-new-authtok.conf
+++ b/tests/scripts/autologin-new-authtok.conf
@@ -4,20 +4,22 @@
[SeatDefaults]
autologin-user=new-authtok
+user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (Session fails)
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/autologin-password.conf b/tests/scripts/autologin-password.conf
index 8f1c3f45..9080b24c 100644
--- a/tests/scripts/autologin-password.conf
+++ b/tests/scripts/autologin-password.conf
@@ -4,20 +4,22 @@
[SeatDefaults]
autologin-user=always-password
+user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (Session fails)
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/autologin-previous-session.conf b/tests/scripts/autologin-previous-session.conf
index 3cad3cf5..a154375e 100644
--- a/tests/scripts/autologin-previous-session.conf
+++ b/tests/scripts/autologin-previous-session.conf
@@ -8,14 +8,15 @@ autologin-user=have-session
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 NAME=alternative USER=have-session
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 NAME=alternative USER=have-session
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/autologin-session-crash.conf b/tests/scripts/autologin-session-crash.conf
index 1a2b9235..cc1a7877 100644
--- a/tests/scripts/autologin-session-crash.conf
+++ b/tests/scripts/autologin-session-crash.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -27,14 +28,15 @@ user-session=default
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/autologin-session-error.conf b/tests/scripts/autologin-session-error.conf
index faeeb5bc..cbd28044 100644
--- a/tests/scripts/autologin-session-error.conf
+++ b/tests/scripts/autologin-session-error.conf
@@ -9,10 +9,11 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (Session fails)
@@ -21,14 +22,15 @@ user-session=default
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/autologin-timeout.conf b/tests/scripts/autologin-timeout.conf
index c6df7f5e..b114bcf5 100644
--- a/tests/scripts/autologin-timeout.conf
+++ b/tests/scripts/autologin-timeout.conf
@@ -10,14 +10,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -33,7 +34,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/autologin-xserver-crash.conf b/tests/scripts/autologin-xserver-crash.conf
index 9ed310c3..bc389901 100644
--- a/tests/scripts/autologin-xserver-crash.conf
+++ b/tests/scripts/autologin-xserver-crash.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# XServer starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -27,12 +28,13 @@ user-session=default
#?SESSION-X-0 TERMINATE SIGNAL=15
# X server restarts
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+#?*XSERVER-0 INDICATE-READY
#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/autologin.conf b/tests/scripts/autologin.conf
index 3d0cd0bf..c5585c5e 100644
--- a/tests/scripts/autologin.conf
+++ b/tests/scripts/autologin.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/cancel-authentication.conf b/tests/scripts/cancel-authentication.conf
index 27213175..61b99823 100644
--- a/tests/scripts/cancel-authentication.conf
+++ b/tests/scripts/cancel-authentication.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/change-authentication.conf b/tests/scripts/change-authentication.conf
index f2ec30e5..c5edf333 100644
--- a/tests/scripts/change-authentication.conf
+++ b/tests/scripts/change-authentication.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/console-kit.conf b/tests/scripts/console-kit.conf
index 6d211a29..9fde45b8 100644
--- a/tests/scripts/console-kit.conf
+++ b/tests/scripts/console-kit.conf
@@ -12,21 +12,18 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
-# Check environment variable
-#?*SESSION-X-0 READ-ENV NAME=XDG_SESSION_COOKIE
-#?SESSION-X-0 READ-ENV NAME=XDG_SESSION_COOKIE VALUE=ck-cookie-x:0
-
# Cleanup
#?*STOP-DAEMON
#?SESSION-X-0 TERMINATE SIGNAL=15
diff --git a/tests/scripts/crash-authenticate.conf b/tests/scripts/crash-authenticate.conf
index 84cc3a3d..a1064dd6 100644
--- a/tests/scripts/crash-authenticate.conf
+++ b/tests/scripts/crash-authenticate.conf
@@ -4,20 +4,22 @@
[SeatDefaults]
autologin-user=crash-authenticate
+user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (authentication crashes)
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/cred-error.conf b/tests/scripts/cred-error.conf
index 67ca0d2a..fc113b39 100644
--- a/tests/scripts/cred-error.conf
+++ b/tests/scripts/cred-error.conf
@@ -9,10 +9,11 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (Session fails)
@@ -21,14 +22,15 @@ user-session=default
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/cred-expired.conf b/tests/scripts/cred-expired.conf
index a4285059..37121003 100644
--- a/tests/scripts/cred-expired.conf
+++ b/tests/scripts/cred-expired.conf
@@ -9,10 +9,11 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (Session fails)
@@ -21,14 +22,15 @@ user-session=default
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/cred-unavail.conf b/tests/scripts/cred-unavail.conf
index 3860c289..2f223905 100644
--- a/tests/scripts/cred-unavail.conf
+++ b/tests/scripts/cred-unavail.conf
@@ -9,10 +9,11 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (Session fails)
@@ -21,14 +22,15 @@ user-session=default
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/dbus.conf b/tests/scripts/dbus.conf
new file mode 100644
index 00000000..f7aa80fb
--- /dev/null
+++ b/tests/scripts/dbus.conf
@@ -0,0 +1,52 @@
+#
+# Check can login
+#
+
+[SeatDefaults]
+user-session=default
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+#?*LIST-SEATS
+#?RUNNER LIST-SEATS SEATS=/org/freedesktop/DisplayManager/Seat0
+#?*LIST-SESSIONS
+#?RUNNER LIST-SESSIONS SESSIONS=
+
+# Log into account with a password
+#?*GREETER-X-0 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-0 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-0 RESPOND TEXT="password"
+#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-0 START-SESSION
+#?GREETER-X-0 TERMINATE SIGNAL=15
+
+# Session starts
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+#?*LIST-SEATS
+#?RUNNER LIST-SEATS SEATS=/org/freedesktop/DisplayManager/Seat0
+#?*LIST-SESSIONS
+#?RUNNER LIST-SESSIONS SESSIONS=/org/freedesktop/DisplayManager/Session0
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/denied.conf b/tests/scripts/denied.conf
index 8ba7d6a4..0051e5fc 100644
--- a/tests/scripts/denied.conf
+++ b/tests/scripts/denied.conf
@@ -4,20 +4,22 @@
[SeatDefaults]
autologin-user=denied
+user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (Session fails)
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/expired.conf b/tests/scripts/expired.conf
index b08e5c0e..e7b57caf 100644
--- a/tests/scripts/expired.conf
+++ b/tests/scripts/expired.conf
@@ -4,20 +4,22 @@
[SeatDefaults]
autologin-user=expired
+user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (Session fails)
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/greeter-allow-guest.conf b/tests/scripts/greeter-allow-guest.conf
new file mode 100644
index 00000000..a2c86e2e
--- /dev/null
+++ b/tests/scripts/greeter-allow-guest.conf
@@ -0,0 +1,32 @@
+#
+# Check greeter is informed if manual login should be showed (it defaults to show)
+#
+
+[SeatDefaults]
+greeter-allow-guest=false
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+# Check has correct hint to allow guest
+#?GREETER-X-0 HAS-GUEST-ACCOUNT-HINT=FALSE
+
+# Cleanup
+#?*STOP-DAEMON
+#?GREETER-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/greeter-default-session.conf b/tests/scripts/greeter-default-session.conf
new file mode 100644
index 00000000..2e785227
--- /dev/null
+++ b/tests/scripts/greeter-default-session.conf
@@ -0,0 +1,33 @@
+#
+# Check greeter is informed of the default user session
+#
+
+[SeatDefaults]
+user-session=alternative
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+# Check has correct user session
+#?*GREETER-X-0 LOG-DEFAULT-SESSION
+#?GREETER-X-0 LOG-DEFAULT-SESSION SESSION=alternative
+
+# Cleanup
+#?*STOP-DAEMON
+#?GREETER-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/greeter-fail-start.conf b/tests/scripts/greeter-fail-start.conf
index 5e131d7a..63326729 100644
--- a/tests/scripts/greeter-fail-start.conf
+++ b/tests/scripts/greeter-fail-start.conf
@@ -8,14 +8,15 @@ return-value=1
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter fails to start
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?GREETER-X-0 EXIT CODE=1
# X server stopped
diff --git a/tests/scripts/greeter-hide-users.conf b/tests/scripts/greeter-hide-users.conf
new file mode 100644
index 00000000..10ffbbc8
--- /dev/null
+++ b/tests/scripts/greeter-hide-users.conf
@@ -0,0 +1,32 @@
+#
+# Check greeter is informed if user list should be hidden
+#
+
+[SeatDefaults]
+greeter-hide-users=true
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+# Check has correct hint to hide users
+#?GREETER-X-0 HIDE-USERS-HINT
+
+# Cleanup
+#?*STOP-DAEMON
+#?GREETER-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/greeter-not-installed.conf b/tests/scripts/greeter-not-installed.conf
index b0590713..80f6e9f9 100644
--- a/tests/scripts/greeter-not-installed.conf
+++ b/tests/scripts/greeter-not-installed.conf
@@ -8,10 +8,9 @@ return-value=1
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+#?*XSERVER-0 INDICATE-READY
#?XSERVER-0 INDICATE-READY
-
-# LightDM connects to X server
#?XSERVER-0 ACCEPT-CONNECT
# Invalid greeter attempted, fails to start
diff --git a/tests/scripts/greeter-show-manual-login.conf b/tests/scripts/greeter-show-manual-login.conf
new file mode 100644
index 00000000..3c143065
--- /dev/null
+++ b/tests/scripts/greeter-show-manual-login.conf
@@ -0,0 +1,32 @@
+#
+# Check greeter is informed if manual login should be showed
+#
+
+[SeatDefaults]
+greeter-show-manual-login=true
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+# Check has correct hint to show manual login
+#?GREETER-X-0 SHOW-MANUAL-LOGIN-HINT
+
+# Cleanup
+#?*STOP-DAEMON
+#?GREETER-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/greeter-show-remote-login.conf b/tests/scripts/greeter-show-remote-login.conf
new file mode 100644
index 00000000..1f8b7990
--- /dev/null
+++ b/tests/scripts/greeter-show-remote-login.conf
@@ -0,0 +1,32 @@
+#
+# Check greeter is informed if remote login should be showed (it defaults to show)
+#
+
+[SeatDefaults]
+greeter-show-remote-login=false
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+# Check has correct hint to show remote login
+#?GREETER-X-0 SHOW-REMOTE-LOGIN-HINT=FALSE
+
+# Cleanup
+#?*STOP-DAEMON
+#?GREETER-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/greeter-xserver-crash.conf b/tests/scripts/greeter-xserver-crash.conf
index 251b1bc6..addb2390 100644
--- a/tests/scripts/greeter-xserver-crash.conf
+++ b/tests/scripts/greeter-xserver-crash.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -25,14 +26,15 @@
#?GREETER-X-0 TERMINATE SIGNAL=15
# X server restarts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/group-membership.conf b/tests/scripts/group-membership.conf
index d67b3316..a38b6894 100644
--- a/tests/scripts/group-membership.conf
+++ b/tests/scripts/group-membership.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=group-member
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=group-member
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/home-dir-on-authenticate.conf b/tests/scripts/home-dir-on-authenticate.conf
index d073c3eb..1559bd21 100644
--- a/tests/scripts/home-dir-on-authenticate.conf
+++ b/tests/scripts/home-dir-on-authenticate.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=mount-home-dir
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=mount-home-dir
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/home-dir-on-session.conf b/tests/scripts/home-dir-on-session.conf
index 2695fb3c..68b997e2 100644
--- a/tests/scripts/home-dir-on-session.conf
+++ b/tests/scripts/home-dir-on-session.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=make-home-dir
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=make-home-dir
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/keyboard-layout.conf b/tests/scripts/keyboard-layout.conf
index d7e83611..31373907 100644
--- a/tests/scripts/keyboard-layout.conf
+++ b/tests/scripts/keyboard-layout.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/language-no-accounts-service.conf b/tests/scripts/language-no-accounts-service.conf
index 3c09a930..c389070c 100644
--- a/tests/scripts/language-no-accounts-service.conf
+++ b/tests/scripts/language-no-accounts-service.conf
@@ -8,14 +8,15 @@ disable-accounts-service=true
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/language.conf b/tests/scripts/language.conf
index e5dc220a..27bafe41 100644
--- a/tests/scripts/language.conf
+++ b/tests/scripts/language.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/lock-seat-return-session.conf b/tests/scripts/lock-seat-return-session.conf
new file mode 100644
index 00000000..c9d15748
--- /dev/null
+++ b/tests/scripts/lock-seat-return-session.conf
@@ -0,0 +1,71 @@
+#
+# Check can lock a seat from D-Bus and can return to it
+#
+
+[SeatDefaults]
+autologin-user=have-password1
+user-session=default
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# 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_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
+#?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
+
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 ACCEPT-CONNECT
+
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
+# Greeter starts
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
+#?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
+#?VT ACTIVATE VT=8
+
+# Login as existing user
+#?*GREETER-X-1 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-1 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-1 RESPOND TEXT="password"
+#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-1 START-SESSION
+
+# Old session is unlocked
+#?CONSOLE-KIT UNLOCK-SESSION
+
+# Return to session
+#?VT ACTIVATE VT=7
+
+# Greeter and X server stop
+#?GREETER-X-1 TERMINATE SIGNAL=15
+#?XSERVER-1 TERMINATE SIGNAL=15
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/lock-seat.conf b/tests/scripts/lock-seat.conf
index 9bf8f555..85a3a9ca 100644
--- a/tests/scripts/lock-seat.conf
+++ b/tests/scripts/lock-seat.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -25,20 +26,27 @@ user-session=default
#?SESSION-X-0 LOCK-SEAT
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
# Greeter starts
-#?GREETER-X-1 START
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
#?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
+#?VT ACTIVATE VT=8
+
# Cleanup
#?*STOP-DAEMON
#?SESSION-X-0 TERMINATE SIGNAL=15
diff --git a/tests/scripts/lock-session.conf b/tests/scripts/lock-session.conf
index ca4bcebd..266a89e6 100644
--- a/tests/scripts/lock-session.conf
+++ b/tests/scripts/lock-session.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -25,14 +26,18 @@ user-session=default
#?SESSION-X-0 LOCK-SESSION
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
# Greeter starts with session user selected
-#?GREETER-X-1 START
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
#?XSERVER-1 ACCEPT-CONNECT
#?GREETER-X-1 CONNECT-XSERVER
#?GREETER-X-1 CONNECT-TO-DAEMON
@@ -40,6 +45,9 @@ user-session=default
#?GREETER-X-1 SELECT-USER-HINT USERNAME=have-password1
#?GREETER-X-1 LOCK-HINT
+# Switch to greeter
+#?VT ACTIVATE VT=8
+
# Cleanup
#?*STOP-DAEMON
#?SESSION-X-0 TERMINATE SIGNAL=15
diff --git a/tests/scripts/login-crash-authenticate.conf b/tests/scripts/login-crash-authenticate.conf
index f12a11f5..e3e6fd06 100644
--- a/tests/scripts/login-crash-authenticate.conf
+++ b/tests/scripts/login-crash-authenticate.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-guest-disabled.conf b/tests/scripts/login-guest-disabled.conf
index cb53acff..84ec6110 100644
--- a/tests/scripts/login-guest-disabled.conf
+++ b/tests/scripts/login-guest-disabled.conf
@@ -8,18 +8,20 @@ allow-guest=false
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
#?GREETER-X-0 CONNECTED-TO-DAEMON
+#?GREETER-X-0 HAS-GUEST-ACCOUNT-HINT=FALSE
# Login as guest
#?*GREETER-X-0 AUTHENTICATE-GUEST
diff --git a/tests/scripts/login-guest-fail-setup-script.conf b/tests/scripts/login-guest-fail-setup-script.conf
index 4d15aed0..502a67f2 100644
--- a/tests/scripts/login-guest-fail-setup-script.conf
+++ b/tests/scripts/login-guest-fail-setup-script.conf
@@ -5,17 +5,21 @@
[LightDM]
guest-account-script=false
+[SeatDefaults]
+user-session=default
+
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -33,14 +37,13 @@ guest-account-script=false
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+#?*XSERVER-0 INDICATE-READY
#?XSERVER-0 INDICATE-READY
-
-# LightDM connects to X server
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-guest-logout.conf b/tests/scripts/login-guest-logout.conf
index e32fcf26..71b4ddc4 100644
--- a/tests/scripts/login-guest-logout.conf
+++ b/tests/scripts/login-guest-logout.conf
@@ -11,14 +11,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -34,7 +35,7 @@ user-session=default
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION-X-0 START USER=guest-.*
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=guest-.*
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -48,14 +49,15 @@ user-session=default
#?GUEST-ACCOUNT REMOVE USERNAME=guest-.*
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-guest-no-setup-script.conf b/tests/scripts/login-guest-no-setup-script.conf
index cdad799b..158fb22f 100644
--- a/tests/scripts/login-guest-no-setup-script.conf
+++ b/tests/scripts/login-guest-no-setup-script.conf
@@ -8,18 +8,20 @@ guest-account-script=
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
#?GREETER-X-0 CONNECTED-TO-DAEMON
+#?GREETER-X-0 HAS-GUEST-ACCOUNT-HINT=FALSE
# Login as guest
#?*GREETER-X-0 AUTHENTICATE-GUEST
diff --git a/tests/scripts/login-guest.conf b/tests/scripts/login-guest.conf
index 02c8879a..e51327c8 100644
--- a/tests/scripts/login-guest.conf
+++ b/tests/scripts/login-guest.conf
@@ -11,14 +11,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -34,7 +35,7 @@ user-session=default
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION-X-0 START USER=guest-.*
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=guest-.*
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/login-info-prompt.conf b/tests/scripts/login-info-prompt.conf
index d4b0b38d..ec5fd188 100644
--- a/tests/scripts/login-info-prompt.conf
+++ b/tests/scripts/login-info-prompt.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-invalid-session.conf b/tests/scripts/login-invalid-session.conf
index 058ea64d..a7ef37fc 100644
--- a/tests/scripts/login-invalid-session.conf
+++ b/tests/scripts/login-invalid-session.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -30,14 +31,13 @@
#?XSERVER-0 TERMINATE SIGNAL=15
# X server restarts
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+#?*XSERVER-0 INDICATE-READY
#?XSERVER-0 INDICATE-READY
-
-# LightDM connects to X server
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-invalid-user.conf b/tests/scripts/login-invalid-user.conf
index 04ba79be..1eb56547 100644
--- a/tests/scripts/login-invalid-user.conf
+++ b/tests/scripts/login-invalid-user.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-logout.conf b/tests/scripts/login-logout.conf
index f2fc8e75..40e2d2a8 100644
--- a/tests/scripts/login-logout.conf
+++ b/tests/scripts/login-logout.conf
@@ -8,14 +8,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -30,7 +31,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -41,14 +42,15 @@ user-session=default
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-long-password.conf b/tests/scripts/login-long-password.conf
index 74ac5c95..6d21b02c 100644
--- a/tests/scripts/login-long-password.conf
+++ b/tests/scripts/login-long-password.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-long-username.conf b/tests/scripts/login-long-username.conf
index 85b77271..849b42f4 100644
--- a/tests/scripts/login-long-username.conf
+++ b/tests/scripts/login-long-username.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-manual-previous-session.conf b/tests/scripts/login-manual-previous-session.conf
index 9de99876..1d5bb0a9 100644
--- a/tests/scripts/login-manual-previous-session.conf
+++ b/tests/scripts/login-manual-previous-session.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -27,7 +28,7 @@
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START NAME=alternative USER=have-session
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 NAME=alternative USER=have-session
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/login-manual.conf b/tests/scripts/login-manual.conf
index 5ea74f21..b720306f 100644
--- a/tests/scripts/login-manual.conf
+++ b/tests/scripts/login-manual.conf
@@ -8,14 +8,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -32,7 +33,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/login-multi-info-prompt.conf b/tests/scripts/login-multi-info-prompt.conf
index 469c4add..e196c00a 100644
--- a/tests/scripts/login-multi-info-prompt.conf
+++ b/tests/scripts/login-multi-info-prompt.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-multi-prompt.conf b/tests/scripts/login-multi-prompt.conf
index 6178eeb3..f840677b 100644
--- a/tests/scripts/login-multi-prompt.conf
+++ b/tests/scripts/login-multi-prompt.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-new-authtok.conf b/tests/scripts/login-new-authtok.conf
index d05c71f6..0b20b4ac 100644
--- a/tests/scripts/login-new-authtok.conf
+++ b/tests/scripts/login-new-authtok.conf
@@ -8,14 +8,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -30,7 +31,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=new-authtok
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=new-authtok
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/login-no-password.conf b/tests/scripts/login-no-password.conf
index d2950cce..12499ed6 100644
--- a/tests/scripts/login-no-password.conf
+++ b/tests/scripts/login-no-password.conf
@@ -8,14 +8,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -28,7 +29,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=no-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=no-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/login-pam.conf b/tests/scripts/login-pam.conf
index 23cc8ef2..733aeeec 100644
--- a/tests/scripts/login-pam.conf
+++ b/tests/scripts/login-pam.conf
@@ -8,14 +8,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -32,7 +33,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=log-pam
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=log-pam
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/login-pick-session.conf b/tests/scripts/login-pick-session.conf
index ae50986a..b6ab2326 100644
--- a/tests/scripts/login-pick-session.conf
+++ b/tests/scripts/login-pick-session.conf
@@ -5,29 +5,28 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
#?GREETER-X-0 CONNECTED-TO-DAEMON
-# Login as have-password1
-#?*GREETER-X-0 AUTHENTICATE USERNAME=have-password1
-#?GREETER-X-0 SHOW-PROMPT TEXT="Password:"
-#?*GREETER-X-0 RESPOND TEXT="password"
-#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+# Login and pick a session
+#?*GREETER-X-0 AUTHENTICATE USERNAME=no-password1
+#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
#?*GREETER-X-0 START-SESSION SESSION=alternative
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START NAME=alternative USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 NAME=alternative USER=no-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/login-previous-session.conf b/tests/scripts/login-previous-session.conf
index 7caf0a8c..aad7a817 100644
--- a/tests/scripts/login-previous-session.conf
+++ b/tests/scripts/login-previous-session.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -25,7 +26,7 @@
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START NAME=alternative USER=have-session
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 NAME=alternative USER=have-session
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/login-remember-session.conf b/tests/scripts/login-remember-session.conf
new file mode 100644
index 00000000..6fd0b8a4
--- /dev/null
+++ b/tests/scripts/login-remember-session.conf
@@ -0,0 +1,69 @@
+#
+# Check when logging in the session logged in as is remembered the second time a login occurs
+#
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+# Login and pick a session
+#?*GREETER-X-0 AUTHENTICATE USERNAME=no-password1
+#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-0 START-SESSION SESSION=alternative
+#?GREETER-X-0 TERMINATE SIGNAL=15
+
+# Session starts
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 NAME=alternative USER=no-password1
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Logout session
+#?*SESSION-X-0 LOGOUT
+
+# X server stops
+#?XSERVER-0 TERMINATE SIGNAL=15
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+# Log into account without specifying a session
+#?*GREETER-X-0 AUTHENTICATE USERNAME=no-password1
+#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-0 START-SESSION
+#?GREETER-X-0 TERMINATE SIGNAL=15
+
+# Session starts
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 NAME=alternative USER=no-password1
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/login-remote-session.conf b/tests/scripts/login-remote-session.conf
index 44f48ceb..a01b1b9c 100644
--- a/tests/scripts/login-remote-session.conf
+++ b/tests/scripts/login-remote-session.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -34,7 +35,7 @@
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=guest-.*
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=guest-.*
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/login-session-crash.conf b/tests/scripts/login-session-crash.conf
index c7463973..49911891 100644
--- a/tests/scripts/login-session-crash.conf
+++ b/tests/scripts/login-session-crash.conf
@@ -8,14 +8,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -30,7 +31,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -41,14 +42,15 @@ user-session=default
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-two-factor.conf b/tests/scripts/login-two-factor.conf
index 762e0bb7..be30ac7c 100644
--- a/tests/scripts/login-two-factor.conf
+++ b/tests/scripts/login-two-factor.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-wrong-password.conf b/tests/scripts/login-wrong-password.conf
index 27bc938c..90e45247 100644
--- a/tests/scripts/login-wrong-password.conf
+++ b/tests/scripts/login-wrong-password.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login-xserver-crash.conf b/tests/scripts/login-xserver-crash.conf
index 24d1fc8b..db2da3ac 100644
--- a/tests/scripts/login-xserver-crash.conf
+++ b/tests/scripts/login-xserver-crash.conf
@@ -8,14 +8,15 @@ user-session=default
#?RUNNER DAEMON-START
# XServer starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -30,7 +31,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -41,12 +42,13 @@ user-session=default
#?SESSION-X-0 TERMINATE SIGNAL=15
# X server restarts
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+#?*XSERVER-0 INDICATE-READY
#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/login.conf b/tests/scripts/login.conf
index c08b9e3c..a0749261 100644
--- a/tests/scripts/login.conf
+++ b/tests/scripts/login.conf
@@ -8,14 +8,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -30,7 +31,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/no-accounts-service.conf b/tests/scripts/no-accounts-service.conf
index eba99e16..3539715c 100644
--- a/tests/scripts/no-accounts-service.conf
+++ b/tests/scripts/no-accounts-service.conf
@@ -12,14 +12,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/no-config.conf b/tests/scripts/no-config.conf
index 1b431b47..629e846b 100644
--- a/tests/scripts/no-config.conf
+++ b/tests/scripts/no-config.conf
@@ -8,14 +8,15 @@ have-config=false
#?RUNNER DAEMON-START
# One X server should start by default
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/no-console-kit.conf b/tests/scripts/no-console-kit.conf
index 23e9e847..3a8d9032 100644
--- a/tests/scripts/no-console-kit.conf
+++ b/tests/scripts/no-console-kit.conf
@@ -12,10 +12,11 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Session starts
diff --git a/tests/scripts/no-keyboard-layout.conf b/tests/scripts/no-keyboard-layout.conf
index d6a871f8..5676951e 100644
--- a/tests/scripts/no-keyboard-layout.conf
+++ b/tests/scripts/no-keyboard-layout.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/no-language.conf b/tests/scripts/no-language.conf
index 492922e7..f236cdb8 100644
--- a/tests/scripts/no-language.conf
+++ b/tests/scripts/no-language.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/open-file-descriptors.conf b/tests/scripts/open-file-descriptors.conf
index 9389a84b..640609c9 100644
--- a/tests/scripts/open-file-descriptors.conf
+++ b/tests/scripts/open-file-descriptors.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -31,7 +32,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/pam.conf b/tests/scripts/pam.conf
index ec7ee105..9682f398 100644
--- a/tests/scripts/pam.conf
+++ b/tests/scripts/pam.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=log-pam
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=log-pam
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/plymouth-active-vt.conf b/tests/scripts/plymouth-active-vt.conf
index 905b3d20..fbc06821 100644
--- a/tests/scripts/plymouth-active-vt.conf
+++ b/tests/scripts/plymouth-active-vt.conf
@@ -15,17 +15,18 @@ active=true
#?PLYMOUTH DEACTIVATE
# X server starts
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
# Plymouth quits but keeps image in framebuffer
#?PLYMOUTH QUIT RETAIN-SPLASH=TRUE
-# LightDM connects to X server
-#?XSERVER-0 ACCEPT-CONNECT
-
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/plymouth-inactive-vt.conf b/tests/scripts/plymouth-inactive-vt.conf
index 017cdcce..fc0d7e90 100644
--- a/tests/scripts/plymouth-inactive-vt.conf
+++ b/tests/scripts/plymouth-inactive-vt.conf
@@ -12,14 +12,15 @@ active=true
#?PLYMOUTH PING ACTIVE=TRUE
#?PLYMOUTH HAS-ACTIVE-VT=FALSE
#?PLYMOUTH QUIT RETAIN-SPLASH=FALSE
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/restart-authentication.conf b/tests/scripts/restart-authentication.conf
index a7b71164..b9feef21 100644
--- a/tests/scripts/restart-authentication.conf
+++ b/tests/scripts/restart-authentication.conf
@@ -5,14 +5,15 @@
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/script-hook-fail-display-setup.conf b/tests/scripts/script-hook-fail-display-setup.conf
index 1b3012c9..80c782d3 100644
--- a/tests/scripts/script-hook-fail-display-setup.conf
+++ b/tests/scripts/script-hook-fail-display-setup.conf
@@ -8,10 +8,11 @@ display-setup-script=test-script-hook DISPLAY-SETUP 1
#?RUNNER DAEMON-START
# One X server should start by default
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Setup script fails
diff --git a/tests/scripts/script-hook-fail-greeter-setup.conf b/tests/scripts/script-hook-fail-greeter-setup.conf
index 464875e0..683b30a4 100644
--- a/tests/scripts/script-hook-fail-greeter-setup.conf
+++ b/tests/scripts/script-hook-fail-greeter-setup.conf
@@ -8,10 +8,11 @@ greeter-setup-script=test-script-hook GREETER-SETUP 1
#?RUNNER DAEMON-START
# One X server should start by default
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Setup script fails
diff --git a/tests/scripts/script-hook-fail-session-setup.conf b/tests/scripts/script-hook-fail-session-setup.conf
index 81519cac..13171f31 100644
--- a/tests/scripts/script-hook-fail-session-setup.conf
+++ b/tests/scripts/script-hook-fail-session-setup.conf
@@ -5,21 +5,23 @@
[SeatDefaults]
session-setup-script=test-script-hook SESSION-SETUP 1
autologin-user=have-password1
+user-session=default
#?RUNNER DAEMON-START
# One X server should start by default
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Setup script fails
#?SCRIPT-HOOK SESSION-SETUP
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/script-hooks.conf b/tests/scripts/script-hooks.conf
index 1d20c401..9666ff18 100644
--- a/tests/scripts/script-hooks.conf
+++ b/tests/scripts/script-hooks.conf
@@ -13,10 +13,11 @@ user-session=default
#?RUNNER DAEMON-START
# One X server should start by default
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Script hooks run
@@ -24,7 +25,7 @@ user-session=default
#?SCRIPT-HOOK SESSION-SETUP
# Session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -38,10 +39,11 @@ user-session=default
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Script hooks run
@@ -49,7 +51,7 @@ user-session=default
#?SCRIPT-HOOK GREETER-SETUP
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/session-env.conf b/tests/scripts/session-env.conf
new file mode 100644
index 00000000..6dd26a44
--- /dev/null
+++ b/tests/scripts/session-env.conf
@@ -0,0 +1,34 @@
+#
+# Check logind variables are set in session
+#
+
+[SeatDefaults]
+autologin-user=have-password1
+user-session=default
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# 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_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Check environment variables
+#?*SESSION-X-0 READ-ENV NAME=DESKTOP_SESSION
+#?SESSION-X-0 READ-ENV NAME=DESKTOP_SESSION VALUE=default
+#?*SESSION-X-0 READ-ENV NAME=GDMSESSION
+#?SESSION-X-0 READ-ENV NAME=GDMSESSION VALUE=default
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/session-stderr-backup.conf b/tests/scripts/session-stderr-backup.conf
index 5286ae0b..ab91cd88 100644
--- a/tests/scripts/session-stderr-backup.conf
+++ b/tests/scripts/session-stderr-backup.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=no-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=no-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -28,10 +29,11 @@ user-session=default
# Restart session
#?*SESSION-X-0 LOGOUT
#?XSERVER-0 TERMINATE SIGNAL=15
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+#?*XSERVER-0 INDICATE-READY
#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -40,7 +42,7 @@ user-session=default
#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
#?*GREETER-X-0 START-SESSION
#?GREETER-X-0 TERMINATE SIGNAL=15
-#?SESSION-X-0 START USER=no-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=no-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -56,10 +58,11 @@ user-session=default
# Restart session
#?*SESSION-X-0 LOGOUT
#?XSERVER-0 TERMINATE SIGNAL=15
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+#?*XSERVER-0 INDICATE-READY
#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -68,7 +71,7 @@ user-session=default
#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE
#?*GREETER-X-0 START-SESSION
#?GREETER-X-0 TERMINATE SIGNAL=15
-#?SESSION-X-0 START USER=no-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=no-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/session-stderr-multi-write.conf b/tests/scripts/session-stderr-multi-write.conf
index 3b500369..beec66be 100644
--- a/tests/scripts/session-stderr-multi-write.conf
+++ b/tests/scripts/session-stderr-multi-write.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/session-stderr.conf b/tests/scripts/session-stderr.conf
index 27b922aa..2cd89693 100644
--- a/tests/scripts/session-stderr.conf
+++ b/tests/scripts/session-stderr.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/session-stdout.conf b/tests/scripts/session-stdout.conf
index ddf7a5ec..ad84ea86 100644
--- a/tests/scripts/session-stdout.conf
+++ b/tests/scripts/session-stdout.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/switch-to-greeter-new-session-logout-new.conf b/tests/scripts/switch-to-greeter-new-session-logout-new.conf
index bfdb6222..29248f73 100644
--- a/tests/scripts/switch-to-greeter-new-session-logout-new.conf
+++ b/tests/scripts/switch-to-greeter-new-session-logout-new.conf
@@ -9,12 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -23,19 +26,26 @@ user-session=default
#?RUNNER SWITCH-TO-GREETER
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
# Greeter starts
-#?GREETER-X-1 START
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
#?XSERVER-1 ACCEPT-CONNECT
#?GREETER-X-1 CONNECT-XSERVER
#?GREETER-X-1 CONNECT-TO-DAEMON
#?GREETER-X-1 CONNECTED-TO-DAEMON
+# Switch to greeter
+#?VT ACTIVATE VT=8
+
# Login
#?*GREETER-X-1 AUTHENTICATE USERNAME=have-password2
#?GREETER-X-1 SHOW-PROMPT TEXT="Password:"
@@ -45,7 +55,7 @@ user-session=default
#?GREETER-X-1 TERMINATE SIGNAL=15
# New session starts
-#?SESSION-X-1 START USER=have-password2
+#?SESSION-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1 USER=have-password2
#?XSERVER-1 ACCEPT-CONNECT
#?SESSION-X-1 CONNECT-XSERVER
@@ -54,12 +64,13 @@ user-session=default
#?XSERVER-1 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-1 START
+#?XSERVER-1 START VT=8
+#?*XSERVER-1 INDICATE-READY
#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-1 START
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
#?XSERVER-1 ACCEPT-CONNECT
#?GREETER-X-1 CONNECT-XSERVER
#?GREETER-X-1 CONNECT-TO-DAEMON
diff --git a/tests/scripts/switch-to-greeter-new-session-logout-old.conf b/tests/scripts/switch-to-greeter-new-session-logout-old.conf
index 2e04e30b..1a7a03fc 100644
--- a/tests/scripts/switch-to-greeter-new-session-logout-old.conf
+++ b/tests/scripts/switch-to-greeter-new-session-logout-old.conf
@@ -9,12 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -23,19 +26,26 @@ user-session=default
#?RUNNER SWITCH-TO-GREETER
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
# Greeter starts
-#?GREETER-X-1 START
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
#?XSERVER-1 ACCEPT-CONNECT
#?GREETER-X-1 CONNECT-XSERVER
#?GREETER-X-1 CONNECT-TO-DAEMON
#?GREETER-X-1 CONNECTED-TO-DAEMON
+# Switch to greeter
+#?VT ACTIVATE VT=8
+
# Login
#?*GREETER-X-1 AUTHENTICATE USERNAME=have-password2
#?GREETER-X-1 SHOW-PROMPT TEXT="Password:"
@@ -45,7 +55,7 @@ user-session=default
#?GREETER-X-1 TERMINATE SIGNAL=15
# New session starts
-#?SESSION-X-1 START USER=have-password2
+#?SESSION-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1 USER=have-password2
#?XSERVER-1 ACCEPT-CONNECT
#?SESSION-X-1 CONNECT-XSERVER
@@ -53,17 +63,28 @@ user-session=default
#?*SWITCH-TO-USER USERNAME=have-password1
#?RUNNER SWITCH-TO-USER USERNAME=have-password1
+# Existing session is unlocked
+# FIXME: Broken?
+##?CONSOLE-KIT UNLOCK-SESSION
+
+# Switch to greeter
+#?VT ACTIVATE VT=7
+
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
# Logout of old session
#?*SESSION-X-0 LOGOUT
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+#?*XSERVER-0 INDICATE-READY
#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/switch-to-greeter-new-session.conf b/tests/scripts/switch-to-greeter-new-session.conf
index ef3c2204..089e7846 100644
--- a/tests/scripts/switch-to-greeter-new-session.conf
+++ b/tests/scripts/switch-to-greeter-new-session.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -25,19 +26,26 @@ user-session=default
#?RUNNER SWITCH-TO-GREETER
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
# Greeter starts
-#?GREETER-X-1 START
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
#?XSERVER-1 ACCEPT-CONNECT
#?GREETER-X-1 CONNECT-XSERVER
#?GREETER-X-1 CONNECT-TO-DAEMON
#?GREETER-X-1 CONNECTED-TO-DAEMON
+# Switch to greeter
+#?VT ACTIVATE VT=8
+
# Login
#?*GREETER-X-1 AUTHENTICATE USERNAME=have-password2
#?GREETER-X-1 SHOW-PROMPT TEXT="Password:"
@@ -47,7 +55,7 @@ user-session=default
#?GREETER-X-1 TERMINATE SIGNAL=15
# New session starts
-#?SESSION-X-1 START USER=have-password2
+#?SESSION-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1 USER=have-password2
#?XSERVER-1 ACCEPT-CONNECT
#?SESSION-X-1 CONNECT-XSERVER
diff --git a/tests/scripts/switch-to-greeter-return-session-logout.conf b/tests/scripts/switch-to-greeter-return-session-logout.conf
index 6fc7867d..2af6c176 100644
--- a/tests/scripts/switch-to-greeter-return-session-logout.conf
+++ b/tests/scripts/switch-to-greeter-return-session-logout.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -25,19 +26,26 @@ user-session=default
#?RUNNER SWITCH-TO-GREETER
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
# Greeter starts
-#?GREETER-X-1 START
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
#?XSERVER-1 ACCEPT-CONNECT
#?GREETER-X-1 CONNECT-XSERVER
#?GREETER-X-1 CONNECT-TO-DAEMON
#?GREETER-X-1 CONNECTED-TO-DAEMON
+# Switch to greeter
+#?VT ACTIVATE VT=8
+
# Login as existing user
#?*GREETER-X-1 AUTHENTICATE USERNAME=have-password1
#?GREETER-X-1 SHOW-PROMPT TEXT="Password:"
@@ -45,6 +53,12 @@ user-session=default
#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
#?*GREETER-X-1 START-SESSION
+# Session is unlocked
+#?CONSOLE-KIT UNLOCK-SESSION
+
+# Switch to session
+#?VT ACTIVATE VT=7
+
# Greeter and X server stop
#?GREETER-X-1 TERMINATE SIGNAL=15
#?XSERVER-1 TERMINATE SIGNAL=15
@@ -54,12 +68,13 @@ user-session=default
#?XSERVER-0 TERMINATE SIGNAL=15
# X server starts
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
+#?*XSERVER-0 INDICATE-READY
#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/switch-to-greeter-return-session.conf b/tests/scripts/switch-to-greeter-return-session.conf
index 50c0ca00..365500e1 100644
--- a/tests/scripts/switch-to-greeter-return-session.conf
+++ b/tests/scripts/switch-to-greeter-return-session.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -25,19 +26,26 @@ user-session=default
#?RUNNER SWITCH-TO-GREETER
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
# Greeter starts
-#?GREETER-X-1 START
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
#?XSERVER-1 ACCEPT-CONNECT
#?GREETER-X-1 CONNECT-XSERVER
#?GREETER-X-1 CONNECT-TO-DAEMON
#?GREETER-X-1 CONNECTED-TO-DAEMON
+# Switch to greeter
+#?VT ACTIVATE VT=8
+
# Login as existing user
#?*GREETER-X-1 AUTHENTICATE USERNAME=have-password1
#?GREETER-X-1 SHOW-PROMPT TEXT="Password:"
@@ -45,6 +53,12 @@ user-session=default
#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
#?*GREETER-X-1 START-SESSION
+# Session is unlocked
+#?CONSOLE-KIT UNLOCK-SESSION
+
+# Switch to session
+#?VT ACTIVATE VT=7
+
# Greeter and X server stop
#?GREETER-X-1 TERMINATE SIGNAL=15
#?XSERVER-1 TERMINATE SIGNAL=15
diff --git a/tests/scripts/switch-to-greeter.conf b/tests/scripts/switch-to-greeter.conf
index 4ea98315..7f8a9455 100644
--- a/tests/scripts/switch-to-greeter.conf
+++ b/tests/scripts/switch-to-greeter.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -25,19 +26,26 @@ user-session=default
#?RUNNER SWITCH-TO-GREETER
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
# Greeter starts
-#?GREETER-X-1 START
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
#?XSERVER-1 ACCEPT-CONNECT
#?GREETER-X-1 CONNECT-XSERVER
#?GREETER-X-1 CONNECT-TO-DAEMON
#?GREETER-X-1 CONNECTED-TO-DAEMON
+# Switch to greeter
+#?VT ACTIVATE VT=8
+
# Cleanup
#?*STOP-DAEMON
#?SESSION-X-0 TERMINATE SIGNAL=15
diff --git a/tests/scripts/switch-to-guest.conf b/tests/scripts/switch-to-guest.conf
index e431d6cf..818f05a7 100644
--- a/tests/scripts/switch-to-guest.conf
+++ b/tests/scripts/switch-to-guest.conf
@@ -13,14 +13,15 @@ user-session=default
#?*WAIT
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# Default session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -29,17 +30,24 @@ user-session=default
#?RUNNER SWITCH-TO-GUEST
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
+# Switch to session
+#?VT ACTIVATE VT=8
+
# Guest account created
#?GUEST-ACCOUNT ADD USERNAME=guest-.*
# Guest session starts
-#?SESSION-X-1 START USER=guest-.*
+#?SESSION-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1 USER=guest-.*
#?XSERVER-1 ACCEPT-CONNECT
#?SESSION-X-1 CONNECT-XSERVER
diff --git a/tests/scripts/switch-to-user-existing-session.conf b/tests/scripts/switch-to-user-existing-session.conf
index d607d0b1..ceaaa102 100644
--- a/tests/scripts/switch-to-user-existing-session.conf
+++ b/tests/scripts/switch-to-user-existing-session.conf
@@ -10,14 +10,15 @@ user-session=default
#?*WAIT
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/switch-to-user-logout.conf b/tests/scripts/switch-to-user-logout.conf
index 2c3a6938..c4497605 100644
--- a/tests/scripts/switch-to-user-logout.conf
+++ b/tests/scripts/switch-to-user-logout.conf
@@ -10,14 +10,15 @@ user-session=default
#?*WAIT
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -26,14 +27,21 @@ user-session=default
#?RUNNER SWITCH-TO-USER USERNAME=no-password1
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
+# Switch to session
+#?VT ACTIVATE VT=8
+
# New session starts
-#?SESSION-X-1 START USER=no-password1
+#?SESSION-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1 USER=no-password1
#?XSERVER-1 ACCEPT-CONNECT
#?SESSION-X-1 CONNECT-XSERVER
@@ -44,14 +52,15 @@ user-session=default
#?XSERVER-1 TERMINATE SIGNAL=15
# X server starts for greeter
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
# Greeter starts
-#?GREETER-X-1 START
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
#?XSERVER-1 ACCEPT-CONNECT
#?GREETER-X-1 CONNECT-XSERVER
#?GREETER-X-1 CONNECT-TO-DAEMON
diff --git a/tests/scripts/switch-to-user-no-password.conf b/tests/scripts/switch-to-user-no-password.conf
index 93736ad6..411b03d3 100644
--- a/tests/scripts/switch-to-user-no-password.conf
+++ b/tests/scripts/switch-to-user-no-password.conf
@@ -10,14 +10,15 @@ user-session=default
#?*WAIT
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -26,14 +27,21 @@ user-session=default
#?RUNNER SWITCH-TO-USER USERNAME=no-password1
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
+# Switch to session
+#?VT ACTIVATE VT=8
+
# New session starts
-#?SESSION-X-1 START USER=no-password1
+#?SESSION-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1 USER=no-password1
#?XSERVER-1 ACCEPT-CONNECT
#?SESSION-X-1 CONNECT-XSERVER
diff --git a/tests/scripts/switch-to-user.conf b/tests/scripts/switch-to-user.conf
index 494a557f..ef0e97ce 100644
--- a/tests/scripts/switch-to-user.conf
+++ b/tests/scripts/switch-to-user.conf
@@ -10,14 +10,15 @@ user-session=default
#?*WAIT
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=no-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=no-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -26,19 +27,26 @@ user-session=default
#?RUNNER SWITCH-TO-USER USERNAME=have-password1
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
# Greeter starts
-#?GREETER-X-1 START
+#?GREETER-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1
#?XSERVER-1 ACCEPT-CONNECT
#?GREETER-X-1 CONNECT-XSERVER
#?GREETER-X-1 CONNECT-TO-DAEMON
#?GREETER-X-1 CONNECTED-TO-DAEMON
+# Switch to greeter
+#?VT ACTIVATE VT=8
+
# Requested user is automatically selected
#?GREETER-X-1 SELECT-USER-HINT USERNAME=have-password1
#?*GREETER-X-1 AUTHENTICATE USERNAME=have-password1
diff --git a/tests/scripts/switch-to-users.conf b/tests/scripts/switch-to-users.conf
index 9d311dd9..ba3cfc6f 100644
--- a/tests/scripts/switch-to-users.conf
+++ b/tests/scripts/switch-to-users.conf
@@ -10,14 +10,15 @@ user-session=default
#?*WAIT
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
@@ -26,14 +27,21 @@ user-session=default
#?RUNNER SWITCH-TO-USER USERNAME=no-password1
# New X server starts
-#?XSERVER-1 START
-#?XSERVER-1 INDICATE-READY
+#?XSERVER-1 START VT=8
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-1 INDICATE-READY
+#?XSERVER-1 INDICATE-READY
#?XSERVER-1 ACCEPT-CONNECT
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
+# Switch to session
+#?VT ACTIVATE VT=8
+
# New session starts
-#?SESSION-X-1 START USER=no-password1
+#?SESSION-X-1 START XDG_SESSION_COOKIE=ck-cookie-x:1 USER=no-password1
#?XSERVER-1 ACCEPT-CONNECT
#?SESSION-X-1 CONNECT-XSERVER
@@ -42,14 +50,21 @@ user-session=default
#?RUNNER SWITCH-TO-USER USERNAME=no-password2
# New X server starts
-#?XSERVER-2 START
-#?XSERVER-2 INDICATE-READY
+#?XSERVER-2 START VT=9
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-2 INDICATE-READY
+#?XSERVER-2 INDICATE-READY
#?XSERVER-2 ACCEPT-CONNECT
+# Switch to session
+#?VT ACTIVATE VT=9
+
+# Session is locked
+#?CONSOLE-KIT LOCK-SESSION
+
# New session starts
-#?SESSION-X-2 START USER=no-password2
+#?SESSION-X-2 START XDG_SESSION_COOKIE=ck-cookie-x:2 USER=no-password2
#?XSERVER-2 ACCEPT-CONNECT
#?SESSION-X-2 CONNECT-XSERVER
diff --git a/tests/scripts/system-xauthority.conf b/tests/scripts/system-xauthority.conf
index 33cf80d9..3c382860 100644
--- a/tests/scripts/system-xauthority.conf
+++ b/tests/scripts/system-xauthority.conf
@@ -12,14 +12,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/upstart-autologin.conf b/tests/scripts/upstart-autologin.conf
new file mode 100644
index 00000000..a4d81a7f
--- /dev/null
+++ b/tests/scripts/upstart-autologin.conf
@@ -0,0 +1,34 @@
+#
+# Check emits upstart events on autologin
+#
+
+[SeatDefaults]
+autologin-user=have-password1
+user-session=default
+
+[test-initctl-config]
+report-events=true
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+#?INIT -q emit login-session-start DISPLAY_MANAGER=lightdm
+#?INIT -q emit desktop-session-start DISPLAY_MANAGER=lightdm
+
+# Session starts
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/upstart-login.conf b/tests/scripts/upstart-login.conf
new file mode 100644
index 00000000..6776b291
--- /dev/null
+++ b/tests/scripts/upstart-login.conf
@@ -0,0 +1,49 @@
+#
+# Check emits upstart events on login
+#
+
+[SeatDefaults]
+user-session=default
+
+[test-initctl-config]
+report-events=true
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+#?INIT -q emit login-session-start DISPLAY_MANAGER=lightdm
+
+# Greeter starts
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+# Log into account with a password
+#?*GREETER-X-0 AUTHENTICATE USERNAME=have-password1
+#?GREETER-X-0 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-0 RESPOND TEXT="password"
+#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+#?*GREETER-X-0 START-SESSION
+#?GREETER-X-0 TERMINATE SIGNAL=15
+
+#?INIT -q emit desktop-session-start DISPLAY_MANAGER=lightdm
+
+# Session starts
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/user-renamed-invalid.conf b/tests/scripts/user-renamed-invalid.conf
index 1d913106..68fbcce8 100644
--- a/tests/scripts/user-renamed-invalid.conf
+++ b/tests/scripts/user-renamed-invalid.conf
@@ -4,20 +4,22 @@
[SeatDefaults]
autologin-user=change-user-invalid
+user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
#?XSERVER-0 ACCEPT-CONNECT
# (fails to start session for invalid user)
# Greeter starts
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
diff --git a/tests/scripts/user-renamed.conf b/tests/scripts/user-renamed.conf
index dd15be7d..a570b7ad 100644
--- a/tests/scripts/user-renamed.conf
+++ b/tests/scripts/user-renamed.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=change-user2
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=change-user2
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/util-path.conf b/tests/scripts/util-path.conf
index fa1af66a..975dc2a6 100644
--- a/tests/scripts/util-path.conf
+++ b/tests/scripts/util-path.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/vnc-dimensions.conf b/tests/scripts/vnc-dimensions.conf
new file mode 100644
index 00000000..0e1c39da
--- /dev/null
+++ b/tests/scripts/vnc-dimensions.conf
@@ -0,0 +1,47 @@
+#
+# Check you can set the dimensions for the VNC server
+#
+
+[LightDM]
+start-default-seat=false
+
+[VNCServer]
+enabled=true
+port=9999
+width=1440
+height=900
+depth=16
+
+#?RUNNER DAEMON-START
+#?*WAIT
+
+# Start a VNC client
+#?*START-VNC-CLIENT ARGS="::9999"
+#?VNC-CLIENT START
+#?VNC-CLIENT CONNECT SERVER=::9999
+
+# Xvnc server starts
+#?XSERVER-0 START GEOMETRY=1440x900 DEPTH=16 OPTION=FALSE
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Negotiate with Xvnc
+#?*XSERVER-0 START-VNC
+#?VNC-CLIENT CONNECTED VERSION="RFB 003.007"
+#?XSERVER-0 VNC-CLIENT-CONNECT VERSION="RFB 003.003"
+
+# Greeter starts and connects to remote X server
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+# Clean up
+#?*STOP-DAEMON
+#?GREETER-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/vnc-login.conf b/tests/scripts/vnc-login.conf
index b47e052c..62d7dbc0 100644
--- a/tests/scripts/vnc-login.conf
+++ b/tests/scripts/vnc-login.conf
@@ -23,17 +23,20 @@ user-session=default
# Xvnc server starts
#?XSERVER-0 START GEOMETRY=1024x768 DEPTH=8 OPTION=FALSE
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
# Negotiate with Xvnc
+#?*XSERVER-0 START-VNC
#?VNC-CLIENT CONNECTED VERSION="RFB 003.007"
-#?XSERVER-0 INDICATE-READY
-
-# LightDM and vnc-client connect to X server
+# VNC client connects to X server
#?XSERVER-0 VNC-CLIENT-CONNECT VERSION="RFB 003.003"
-#?XSERVER-0 ACCEPT-CONNECT
# Greeter starts and connects to remote X server
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -48,7 +51,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/vnc-open-file-descriptors.conf b/tests/scripts/vnc-open-file-descriptors.conf
index 57d74832..988fd386 100644
--- a/tests/scripts/vnc-open-file-descriptors.conf
+++ b/tests/scripts/vnc-open-file-descriptors.conf
@@ -23,18 +23,19 @@ user-session=default
# Xvnc server starts
#?XSERVER-0 START GEOMETRY=1024x768 DEPTH=8 OPTION=FALSE
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
# Negotiate with Xvnc
+#?*XSERVER-0 START-VNC
#?VNC-CLIENT CONNECTED VERSION="RFB 003.007"
-#?XSERVER-0 INDICATE-READY
-
#?XSERVER-0 VNC-CLIENT-CONNECT VERSION="RFB 003.003"
-# LightDM connects to X server
-#?XSERVER-0 ACCEPT-CONNECT
-
# Greeter starts and connects to remote X server
-#?GREETER-X-0 START
+#?GREETER-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0
#?XSERVER-0 ACCEPT-CONNECT
#?GREETER-X-0 CONNECT-XSERVER
#?GREETER-X-0 CONNECT-TO-DAEMON
@@ -49,7 +50,7 @@ user-session=default
#?GREETER-X-0 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-0 START USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/xauthority.conf b/tests/scripts/xauthority.conf
index e7758579..414f907e 100644
--- a/tests/scripts/xauthority.conf
+++ b/tests/scripts/xauthority.conf
@@ -9,14 +9,15 @@ user-session=default
#?RUNNER DAEMON-START
# X server starts
-#?XSERVER-0 START
-#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 START VT=7
-# LightDM connects to X server
+# 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 USER=have-password1
+#?SESSION-X-0 START XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
diff --git a/tests/scripts/xdmcp-login.conf b/tests/scripts/xdmcp-server-login.conf
index e6d54a45..c25dde58 100644
--- a/tests/scripts/xdmcp-login.conf
+++ b/tests/scripts/xdmcp-server-login.conf
@@ -18,6 +18,9 @@ user-session=default
# Start a remote X server to log in with XDMCP
#?*START-XSERVER ARGS=":98 -query localhost -port 9999 -nolisten unix"
#?XSERVER-98 START
+
+# Start sending XDMCP queries
+#?*XSERVER-98 START-XDMCP
#?XSERVER-98 SEND-QUERY
# Negotiate with daemon
@@ -30,7 +33,7 @@ user-session=default
#?XSERVER-98 ACCEPT-CONNECT
# Greeter starts and connects to remote X server
-#?GREETER-X-127.0.0.1:98 START
+#?GREETER-X-127.0.0.1:98 START XDG_SESSION_COOKIE=ck-cookie-x127.0.0.1:98
#?XSERVER-98 ACCEPT-CONNECT
#?GREETER-X-127.0.0.1:98 CONNECT-XSERVER
#?GREETER-X-127.0.0.1:98 CONNECT-TO-DAEMON
@@ -45,7 +48,7 @@ user-session=default
#?GREETER-X-127.0.0.1:98 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-127.0.0.1:98 START USER=have-password1
+#?SESSION-X-127.0.0.1:98 START XDG_SESSION_COOKIE=ck-cookie-x127.0.0.1:98 USER=have-password1
#?XSERVER-98 ACCEPT-CONNECT
#?SESSION-X-127.0.0.1:98 CONNECT-XSERVER
diff --git a/tests/scripts/xdmcp-open-file-descriptors.conf b/tests/scripts/xdmcp-server-open-file-descriptors.conf
index ad2fccf8..0e3f0787 100644
--- a/tests/scripts/xdmcp-open-file-descriptors.conf
+++ b/tests/scripts/xdmcp-server-open-file-descriptors.conf
@@ -18,6 +18,9 @@ user-session=default
# Start a remote X server to log in with XDMCP
#?*START-XSERVER ARGS=":98 -query localhost -port 9999 -nolisten unix"
#?XSERVER-98 START
+
+# Start sending XDMCP queries
+#?*XSERVER-98 START-XDMCP
#?XSERVER-98 SEND-QUERY
# Negotiate with daemon
@@ -30,7 +33,7 @@ user-session=default
#?XSERVER-98 ACCEPT-CONNECT
# Greeter starts and connects to remote X server
-#?GREETER-X-127.0.0.1:98 START
+#?GREETER-X-127.0.0.1:98 START XDG_SESSION_COOKIE=ck-cookie-x127.0.0.1:98
#?XSERVER-98 ACCEPT-CONNECT
#?GREETER-X-127.0.0.1:98 CONNECT-XSERVER
#?GREETER-X-127.0.0.1:98 CONNECT-TO-DAEMON
@@ -45,7 +48,7 @@ user-session=default
#?GREETER-X-127.0.0.1:98 TERMINATE SIGNAL=15
# Session starts
-#?SESSION-X-127.0.0.1:98 START USER=have-password1
+#?SESSION-X-127.0.0.1:98 START XDG_SESSION_COOKIE=ck-cookie-x127.0.0.1:98 USER=have-password1
#?XSERVER-98 ACCEPT-CONNECT
#?SESSION-X-127.0.0.1:98 CONNECT-XSERVER
diff --git a/tests/scripts/xserver-fail-start.conf b/tests/scripts/xserver-fail-start.conf
index 1ea8ea42..129fdaad 100644
--- a/tests/scripts/xserver-fail-start.conf
+++ b/tests/scripts/xserver-fail-start.conf
@@ -8,7 +8,7 @@ return-value=1
#?RUNNER DAEMON-START
# X server fails to start
-#?XSERVER-0 START
+#?XSERVER-0 START VT=7
#?XSERVER-0 EXIT CODE=1
# Daemon stops with error
diff --git a/tests/src/Makefile.am b/tests/src/Makefile.am
index ce4d35c2..1c47b158 100644
--- a/tests/src/Makefile.am
+++ b/tests/src/Makefile.am
@@ -1,8 +1,19 @@
-noinst_PROGRAMS = dbus-env test-runner X Xvnc test-gobject-greeter test-session test-script-hook guest-account initctl plymouth vnc-client
-dist_noinst_SCRIPTS = lightdm-session
+noinst_PROGRAMS = dbus-env \
+ initctl \
+ plymouth \
+ test-gobject-greeter \
+ test-runner \
+ test-script-hook \
+ test-session \
+ guest-account \
+ vnc-client \
+ X \
+ Xvnc
+dist_noinst_SCRIPTS = lightdm-session \
+ test-python-greeter
noinst_LTLIBRARIES = libsystem.la
-libsystem_la_SOURCES = libsystem.c
+libsystem_la_SOURCES = libsystem.c status.c status.h
libsystem_la_CFLAGS = \
$(GLIB_CFLAGS) \
$(GIO_UNIX_CFLAGS) \
@@ -10,6 +21,7 @@ libsystem_la_CFLAGS = \
-DBUILDDIR=\"$(abs_top_builddir)\" \
-DSYSCONFDIR=\"$(sysconfdir)\" \
-DLOCALSTATEDIR=\"$(localstatedir)\" \
+ -DDATADIR=\"$(datadir)\" \
-DCONFIG_DIR=\"$(sysconfdir)/lightdm\"
libsystem_la_LIBADD = -ldl $(GLIB_LIBS) $(GIO_UNIX_LIBS)
@@ -28,6 +40,7 @@ dbus_env_CFLAGS = \
dbus_env_LDADD = \
$(GLIB_LIBS)
+test_runner_SOURCES = test-runner.c
test_runner_CFLAGS = \
$(WARN_CFLAGS) \
$(GLIB_CFLAGS) \
@@ -130,7 +143,7 @@ test_session_LDADD = \
$(GIO_UNIX_LIBS) \
$(XCB_LIBS)
-initctl_SOURCES = initctl.c
+initctl_SOURCES = initctl.c status.c status.h
initctl_CFLAGS = \
$(WARN_CFLAGS) \
$(GLIB_CFLAGS) \
diff --git a/tests/src/X.c b/tests/src/X.c
index dfc41d36..0ffcfa68 100644
--- a/tests/src/X.c
+++ b/tests/src/X.c
@@ -27,6 +27,9 @@ static gchar *auth_path = NULL;
/* Display number being served */
static int display_number = 0;
+/* VT being run on */
+static int vt_number = -1;
+
/* X server */
static XServer *xserver = NULL;
@@ -55,18 +58,6 @@ quit (int status)
g_main_loop_quit (loop);
}
-static void
-indicate_ready (void)
-{
- void *handler;
- handler = signal (SIGUSR1, SIG_IGN);
- if (handler == SIG_IGN)
- {
- status_notify ("XSERVER-%d INDICATE-READY", display_number);
- kill (getppid (), SIGUSR1);
- }
- signal (SIGUSR1, handler);
-}
static void
signal_cb (int signum)
@@ -74,7 +65,6 @@ signal_cb (int signum)
if (signum == SIGHUP)
{
status_notify ("XSERVER-%d DISCONNECT-CLIENTS", display_number);
- indicate_ready ();
}
else
{
@@ -163,8 +153,6 @@ static void
client_disconnected_cb (XServer *server, XClient *client)
{
g_signal_handlers_disconnect_matched (client, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NULL);
- if (x_server_get_n_clients (server) == 0)
- indicate_ready ();
}
static void
@@ -185,6 +173,27 @@ request_cb (const gchar *request)
kill (getpid (), SIGSEGV);
}
g_free (r);
+ r = g_strdup_printf ("XSERVER-%d INDICATE-READY", display_number);
+ if (strcmp (request, r) == 0)
+ {
+ void *handler;
+
+ handler = signal (SIGUSR1, SIG_IGN);
+ if (handler == SIG_IGN)
+ {
+ status_notify ("XSERVER-%d INDICATE-READY", display_number);
+ kill (getppid (), SIGUSR1);
+ }
+ signal (SIGUSR1, handler);
+ }
+ g_free (r);
+ r = g_strdup_printf ("XSERVER-%d START-XDMCP", display_number);
+ if (strcmp (request, r) == 0)
+ {
+ if (!xdmcp_client_start (xdmcp_client))
+ quit (EXIT_FAILURE);
+ }
+ g_free (r);
}
int
@@ -197,6 +206,7 @@ main (int argc, char **argv)
gchar *xdmcp_host = NULL;
gchar *lock_filename;
int lock_file;
+ GString *status_text;
signal (SIGINT, signal_cb);
signal (SIGTERM, signal_cb);
@@ -257,9 +267,9 @@ main (int argc, char **argv)
}
else if (g_str_has_prefix (arg, "vt"))
{
- /* Ignore VT args */
+ vt_number = atoi (arg + 2);
}
- else if (g_str_has_prefix (arg, "-novtswitch"))
+ else if (strcmp (arg, "-novtswitch") == 0)
{
/* Ignore VT args */
}
@@ -284,7 +294,12 @@ main (int argc, char **argv)
g_signal_connect (xserver, "client-connected", G_CALLBACK (client_connected_cb), NULL);
g_signal_connect (xserver, "client-disconnected", G_CALLBACK (client_disconnected_cb), NULL);
- status_notify ("XSERVER-%d START", display_number);
+ status_text = g_string_new ("");
+ g_string_printf (status_text, "XSERVER-%d START", display_number);
+ if (vt_number >= 0)
+ g_string_append_printf (status_text, " VT=%d", vt_number);
+ status_notify (status_text->str);
+ g_string_free (status_text, TRUE);
config = g_key_file_new ();
g_key_file_load_from_file (config, g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), G_KEY_FILE_NONE, NULL);
@@ -373,14 +388,8 @@ main (int argc, char **argv)
g_signal_connect (xdmcp_client, "accept", G_CALLBACK (xdmcp_accept_cb), NULL);
g_signal_connect (xdmcp_client, "decline", G_CALLBACK (xdmcp_decline_cb), NULL);
g_signal_connect (xdmcp_client, "failed", G_CALLBACK (xdmcp_failed_cb), NULL);
-
- if (!xdmcp_client_start (xdmcp_client))
- quit (EXIT_FAILURE);
}
- /* Indicate ready if parent process has requested it */
- indicate_ready ();
-
g_main_loop_run (loop);
cleanup ();
diff --git a/tests/src/Xvnc.c b/tests/src/Xvnc.c
index fd374191..4c1a60a9 100644
--- a/tests/src/Xvnc.c
+++ b/tests/src/Xvnc.c
@@ -29,19 +29,6 @@ static int display_number = 0;
static XServer *xserver = NULL;
static void
-indicate_ready (void)
-{
- void *handler;
- handler = signal (SIGUSR1, SIG_IGN);
- if (handler == SIG_IGN)
- {
- status_notify ("XSERVER-%d INDICATE-READY", display_number);
- kill (getppid (), SIGUSR1);
- }
- signal (SIGUSR1, handler);
-}
-
-static void
cleanup (void)
{
if (lock_path)
@@ -63,7 +50,6 @@ signal_cb (int signum)
if (signum == SIGHUP)
{
status_notify ("XSERVER-%d DISCONNECT-CLIENTS", display_number);
- indicate_ready ();
}
else
{
@@ -90,8 +76,6 @@ static void
client_disconnected_cb (XServer *server, XClient *client)
{
g_signal_handlers_disconnect_matched (client, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NULL);
- if (x_server_get_n_clients (server) == 0)
- indicate_ready ();
}
static gboolean
@@ -121,11 +105,35 @@ vnc_data_cb (GIOChannel *channel, GIOCondition condition, gpointer data)
static void
request_cb (const gchar *request)
{
+ gchar *r;
+
if (!request)
{
g_main_loop_quit (loop);
return;
}
+
+ r = g_strdup_printf ("XSERVER-%d INDICATE-READY", display_number);
+ if (strcmp (request, r) == 0)
+ {
+ void *handler;
+
+ handler = signal (SIGUSR1, SIG_IGN);
+ if (handler == SIG_IGN)
+ {
+ status_notify ("XSERVER-%d INDICATE-READY", display_number);
+ kill (getppid (), SIGUSR1);
+ }
+ signal (SIGUSR1, handler);
+ }
+ g_free (r);
+ r = g_strdup_printf ("XSERVER-%d START-VNC", display_number);
+ if (strcmp (request, r) == 0)
+ {
+ /* Send server protocol version to client */
+ g_print ("RFB 003.007\n");
+ }
+ g_free (r);
}
int
@@ -218,9 +226,6 @@ main (int argc, char **argv)
if (use_inetd)
{
- /* Send server protocol version to client */
- g_print ("RFB 003.007\n");
-
if (!g_io_add_watch (g_io_channel_unix_new (STDIN_FILENO), G_IO_IN, vnc_data_cb, NULL))
return EXIT_FAILURE;
}
@@ -256,9 +261,6 @@ main (int argc, char **argv)
if (!x_server_start (xserver))
quit (EXIT_FAILURE);
- /* Indicate ready if parent process has requested it */
- indicate_ready ();
-
g_main_loop_run (loop);
cleanup ();
diff --git a/tests/src/initctl.c b/tests/src/initctl.c
index 428771f0..5d97b81f 100644
--- a/tests/src/initctl.c
+++ b/tests/src/initctl.c
@@ -2,8 +2,29 @@
#include <string.h>
#include <glib.h>
+#include "status.h"
+
+static GKeyFile *config;
+
int
main (int argc, char **argv)
{
+ status_connect (NULL);
+
+ config = g_key_file_new ();
+ g_key_file_load_from_file (config, g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), G_KEY_FILE_NONE, NULL);
+
+ if (g_key_file_get_boolean (config, "test-initctl-config", "report-events", NULL))
+ {
+ GString *status_text;
+ int i;
+
+ status_text = g_string_new ("INIT");
+ for (i = 1; i < argc; i++)
+ g_string_append_printf (status_text, " %s", argv[i]);
+ status_notify (status_text->str);
+ g_string_free (status_text, TRUE);
+ }
+
return EXIT_SUCCESS;
}
diff --git a/tests/src/libsystem.c b/tests/src/libsystem.c
index 74a0d6ee..5cbf203f 100644
--- a/tests/src/libsystem.c
+++ b/tests/src/libsystem.c
@@ -5,6 +5,7 @@
#include <sys/stat.h>
#include <pwd.h>
#include <unistd.h>
+#include <dirent.h>
#include <grp.h>
#include <security/pam_appl.h>
#include <fcntl.h>
@@ -28,6 +29,8 @@ static GList *group_entries = NULL;
static int active_vt = 7;
+static gboolean status_connected = FALSE;
+
struct pam_handle
{
char *service_name;
@@ -164,6 +167,9 @@ redirect_path (const gchar *path)
if (g_str_has_prefix (path, LOCALSTATEDIR))
return g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "var", path + strlen (LOCALSTATEDIR), NULL);
+ if (g_str_has_prefix (path, DATADIR))
+ return g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "usr", "share", path + strlen (DATADIR), NULL);
+
// Don't redirect if inside the build directory
if (g_str_has_prefix (path, BUILDDIR))
return g_strdup (path);
@@ -284,6 +290,10 @@ access (const char *pathname, int mode)
gchar *new_path = NULL;
int ret;
+ /* Look like systemd is always running */
+ if (strcmp (pathname, "/run/systemd/seats/") == 0)
+ return 1;
+
_access = (int (*)(const char *pathname, int mode)) dlsym (RTLD_NEXT, "access");
new_path = redirect_path (pathname);
@@ -357,6 +367,22 @@ __xstat64 (int version, const char *path, struct stat *buf)
return ret;
}
+DIR *
+opendir (const char *name)
+{
+ DIR *(*_opendir) (const char *name);
+ gchar *new_path = NULL;
+ DIR *result;
+
+ _opendir = (DIR *(*)(const char *name)) dlsym (RTLD_NEXT, "opendir");
+
+ new_path = redirect_path (name);
+ result = _opendir (new_path);
+ g_free (new_path);
+
+ return result;
+}
+
int
mkdir (const char *pathname, mode_t mode)
{
@@ -399,6 +425,7 @@ ioctl (int d, int request, void *data)
{
struct vt_stat *console_state;
int *n;
+ int vt;
switch (request)
{
@@ -407,7 +434,14 @@ ioctl (int d, int request, void *data)
console_state->v_active = active_vt;
break;
case VT_ACTIVATE:
- active_vt = GPOINTER_TO_INT (data);
+ vt = GPOINTER_TO_INT (data);
+ if (vt != active_vt)
+ {
+ active_vt = vt;
+ if (!status_connected)
+ status_connected = status_connect (NULL);
+ status_notify ("VT ACTIVATE VT=%d", active_vt);
+ }
break;
case VT_WAITACTIVE:
break;
@@ -940,9 +974,9 @@ static const char *
get_env_value (const char *name_value, const char *name)
{
int j;
-
- for (j = 0; name[j] && name[j] != '=' && name[j] == name_value[j]; j++);
- if (name_value[j] == '=')
+
+ for (j = 0; name[j] && name_value[j] && name[j] == name_value[j]; j++);
+ if (name[j] == '\0' && name_value[j] == '=')
return &name_value[j + 1];
return NULL;
@@ -952,15 +986,21 @@ int
pam_putenv (pam_handle_t *pamh, const char *name_value)
{
int i;
+ gchar *name;
if (pamh == NULL || name_value == NULL)
return PAM_SYSTEM_ERR;
+ name = strdup (name_value);
+ for (i = 0; name[i]; i++)
+ if (name[i] == '=')
+ name[i] = '\0';
for (i = 0; pamh->envlist[i]; i++)
{
- if (get_env_value (pamh->envlist[i], name_value))
+ if (get_env_value (pamh->envlist[i], name))
break;
}
+ free (name);
if (pamh->envlist[i])
{
diff --git a/tests/src/status.c b/tests/src/status.c
index 67cd7cac..71f654b1 100644
--- a/tests/src/status.c
+++ b/tests/src/status.c
@@ -41,7 +41,7 @@ status_request_cb (GSocket *socket, GIOCondition condition, gpointer data)
return TRUE;
}
-void
+gboolean
status_connect (StatusRequestFunc request_cb)
{
gchar *path;
@@ -57,7 +57,7 @@ status_connect (StatusRequestFunc request_cb)
g_printerr ("Unable to open socket for status: %s\n", error->message);
g_clear_error (&error);
if (!status_socket)
- return;
+ return FALSE;
path = g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), ".s", NULL);
address = g_unix_socket_address_new (path);
@@ -68,11 +68,13 @@ status_connect (StatusRequestFunc request_cb)
g_clear_error (&error);
g_free (path);
if (!result)
- return;
+ return FALSE;
source = g_socket_create_source (status_socket, G_IO_IN, NULL);
g_source_set_callback (source, (GSourceFunc) status_request_cb, NULL, NULL);
- g_source_attach (source, NULL);
+ g_source_attach (source, NULL);
+
+ return TRUE;
}
void
diff --git a/tests/src/status.h b/tests/src/status.h
index 8605bf8d..c9abe43b 100644
--- a/tests/src/status.h
+++ b/tests/src/status.h
@@ -1,5 +1,5 @@
-#ifndef _STATUS_H_
-#define _STATUS_H_
+#ifndef STATUS_H_
+#define STATUS_H_
#ifdef __cplusplus
extern "C" {
@@ -9,7 +9,7 @@ extern "C" {
typedef void (*StatusRequestFunc)(const gchar *message);
-void status_connect (StatusRequestFunc message_cb);
+gboolean status_connect (StatusRequestFunc message_cb);
void status_notify (const gchar *format, ...);
@@ -17,4 +17,4 @@ void status_notify (const gchar *format, ...);
}
#endif
-#endif /* _STATUS_H_ */
+#endif /* STATUS_H_ */
diff --git a/tests/src/test-gobject-greeter.c b/tests/src/test-gobject-greeter.c
index b3b42f63..338f4e52 100644
--- a/tests/src/test-gobject-greeter.c
+++ b/tests/src/test-gobject-greeter.c
@@ -120,6 +120,42 @@ request_cb (const gchar *request)
}
g_free (r);
+ r = g_strdup_printf ("%s LOG-DEFAULT-SESSION", greeter_id);
+ if (strcmp (request, r) == 0)
+ status_notify ("%s LOG-DEFAULT-SESSION SESSION=%s", greeter_id, lightdm_greeter_get_default_session_hint (greeter));
+ g_free (r);
+
+ r = g_strdup_printf ("%s LOG-USER-LIST-LENGTH", greeter_id);
+ if (strcmp (request, r) == 0)
+ status_notify ("%s LOG-USER-LIST-LENGTH N=%d", greeter_id, lightdm_user_list_get_length (lightdm_user_list_get_instance ()));
+ g_free (r);
+
+ r = g_strdup_printf ("%s LOG-USER USERNAME=", greeter_id);
+ if (g_str_has_prefix (request, r))
+ {
+ LightDMUser *user;
+ const gchar *username;
+
+ username = request + strlen (r);
+ user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), username);
+ status_notify ("%s LOG-USER USERNAME=%s", greeter_id, lightdm_user_get_name (user));
+ }
+ g_free (r);
+
+ r = g_strdup_printf ("%s LOG-USER-LIST", greeter_id);
+ if (strcmp (request, r) == 0)
+ {
+ GList *users, *link;
+
+ users = lightdm_user_list_get_users (lightdm_user_list_get_instance ());
+ for (link = users; link; link = link->next)
+ {
+ LightDMUser *user = link->data;
+ status_notify ("%s LOG-USER USERNAME=%s", greeter_id, lightdm_user_get_name (user));
+ }
+ }
+ g_free (r);
+
r = g_strdup_printf ("%s LOG-LAYOUT USERNAME=", greeter_id);
if (g_str_has_prefix (request, r))
{
@@ -166,10 +202,23 @@ request_cb (const gchar *request)
g_free (r);
}
+static void
+user_added_cb (LightDMUserList *user_list, LightDMUser *user)
+{
+ status_notify ("%s USER-ADDED USERNAME=%s", greeter_id, lightdm_user_get_name (user));
+}
+
+static void
+user_removed_cb (LightDMUserList *user_list, LightDMUser *user)
+{
+ status_notify ("%s USER-REMOVED USERNAME=%s", greeter_id, lightdm_user_get_name (user));
+}
+
int
main (int argc, char **argv)
{
- gchar *display;
+ gchar *display, *xdg_seat, *xdg_vtnr, *xdg_session_cookie;
+ GString *status_text;
signal (SIGINT, signal_cb);
signal (SIGTERM, signal_cb);
@@ -179,18 +228,33 @@ main (int argc, char **argv)
#endif
display = getenv ("DISPLAY");
- if (display == NULL)
- greeter_id = g_strdup ("GREETER-?");
- else if (display[0] == ':')
- greeter_id = g_strdup_printf ("GREETER-X-%s", display + 1);
+ xdg_seat = getenv ("XDG_SEAT");
+ xdg_vtnr = getenv ("XDG_VTNR");
+ xdg_session_cookie = getenv ("XDG_SESSION_COOKIE");
+ if (display)
+ {
+ if (display[0] == ':')
+ greeter_id = g_strdup_printf ("GREETER-X-%s", display + 1);
+ else
+ greeter_id = g_strdup_printf ("GREETER-X-%s", display);
+ }
else
- greeter_id = g_strdup_printf ("GREETER-X-%s", display);
+ greeter_id = g_strdup ("GREETER-?");
loop = g_main_loop_new (NULL, FALSE);
status_connect (request_cb);
- status_notify ("%s START", greeter_id);
+ status_text = g_string_new ("");
+ g_string_printf (status_text, "%s START", greeter_id);
+ if (xdg_seat)
+ g_string_append_printf (status_text, " XDG_SEAT=%s", xdg_seat);
+ if (xdg_vtnr)
+ g_string_append_printf (status_text, " XDG_VTNR=%s", xdg_vtnr);
+ if (xdg_session_cookie)
+ g_string_append_printf (status_text, " XDG_SESSION_COOKIE=%s", xdg_session_cookie);
+ status_notify (status_text->str);
+ g_string_free (status_text, TRUE);
config = g_key_file_new ();
g_key_file_load_from_file (config, g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), G_KEY_FILE_NONE, NULL);
@@ -202,22 +266,29 @@ main (int argc, char **argv)
return return_value;
}
- connection = xcb_connect (NULL, NULL);
-
- if (xcb_connection_has_error (connection))
+ if (display)
{
- status_notify ("%s FAIL-CONNECT-XSERVER", greeter_id);
- return EXIT_FAILURE;
+ connection = xcb_connect (NULL, NULL);
+ if (xcb_connection_has_error (connection))
+ {
+ status_notify ("%s FAIL-CONNECT-XSERVER", greeter_id);
+ return EXIT_FAILURE;
+ }
+ status_notify ("%s CONNECT-XSERVER", greeter_id);
}
- status_notify ("%s CONNECT-XSERVER", greeter_id);
-
greeter = lightdm_greeter_new ();
g_signal_connect (greeter, "show-message", G_CALLBACK (show_message_cb), NULL);
g_signal_connect (greeter, "show-prompt", G_CALLBACK (show_prompt_cb), NULL);
g_signal_connect (greeter, "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL);
g_signal_connect (greeter, "autologin-timer-expired", G_CALLBACK (autologin_timer_expired_cb), NULL);
+ if (g_key_file_get_boolean (config, "test-greeter-config", "log-user-changes", NULL))
+ {
+ g_signal_connect (lightdm_user_list_get_instance (), "user-added", G_CALLBACK (user_added_cb), NULL);
+ g_signal_connect (lightdm_user_list_get_instance (), "user-removed", G_CALLBACK (user_removed_cb), NULL);
+ }
+
status_notify ("%s CONNECT-TO-DAEMON", greeter_id);
if (!lightdm_greeter_connect_sync (greeter, NULL))
{
@@ -233,6 +304,14 @@ main (int argc, char **argv)
status_notify ("%s SELECT-GUEST-HINT", greeter_id);
if (lightdm_greeter_get_lock_hint (greeter))
status_notify ("%s LOCK-HINT", greeter_id);
+ if (!lightdm_greeter_get_has_guest_account_hint (greeter))
+ status_notify ("%s HAS-GUEST-ACCOUNT-HINT=FALSE", greeter_id);
+ if (lightdm_greeter_get_hide_users_hint (greeter))
+ status_notify ("%s HIDE-USERS-HINT", greeter_id);
+ if (lightdm_greeter_get_show_manual_login_hint (greeter))
+ status_notify ("%s SHOW-MANUAL-LOGIN-HINT", greeter_id);
+ if (!lightdm_greeter_get_show_remote_login_hint (greeter))
+ status_notify ("%s SHOW-REMOTE-LOGIN-HINT=FALSE", greeter_id);
g_main_loop_run (loop);
diff --git a/tests/src/test-python-greeter b/tests/src/test-python-greeter
index de0d6e4c..4189afcf 100755
--- a/tests/src/test-python-greeter
+++ b/tests/src/test-python-greeter
@@ -10,12 +10,16 @@ from gi.repository import GLib
from gi.repository import LightDM
display = os.getenv ('DISPLAY');
-if display is None:
- greeter_id = 'GREETER-?'
-elif display.startswith (':'):
- greeter_id = 'GREETER-X-%s' % display[1:]
+xdg_seat = os.getenv ('XDG_SEAT');
+xdg_vtnr = os.getenv ('XDG_VTNR');
+xdg_session_cookie = os.getenv ('XDG_SESSION_COOKIE');
+if display is not None:
+ if display.startswith (':'):
+ greeter_id = 'GREETER-X-%s' % display[1:]
+ else:
+ greeter_id = 'GREETER-X-%s' % display
else:
- greeter_id = 'GREETER-X-%s' % display
+ greeter_id = 'GREETER-?'
loop = GLib.MainLoop ()
@@ -118,66 +122,6 @@ def request_cb (channel, condition):
language = ''
status_notify ('%s LOG-LANGUAGE USERNAME=%s LANGUAGE=%s' % (greeter_id, username, language))
- r = '%s GET-CAN-SUSPEND' % greeter_id
- if request == r:
- if LightDM.get_can_suspend ():
- allowed = "TRUE"
- else:
- allowed = "FALSE"
- status_notify ('%s CAN-SUSPEND ALLOWED=%s' % (greeter_id, allowed))
-
- r = '%s SUSPEND' % greeter_id
- if request == r:
- try:
- LightDM.suspend ()
- except:
- status_notify ('%s FAIL-SUSPEND' % greeter_id)
-
- r = '%s GET-CAN-HIBERNATE' % greeter_id
- if request == r:
- if LightDM.get_can_hibernate ():
- allowed = "TRUE"
- else:
- allowed = "FALSE"
- status_notify ('%s CAN-HIBERNATE ALLOWED=%s' % (greeter_id, allowed))
-
- r = '%s HIBERNATE' % greeter_id
- if request == r:
- try:
- LightDM.hibernate ()
- except:
- status_notify ('%s FAIL-HIBERNATE' % greeter_id)
-
- r = '%s GET-CAN-RESTART' % greeter_id
- if request == r:
- if LightDM.get_can_restart ():
- allowed = "TRUE"
- else:
- allowed = "FALSE"
- status_notify ('%s CAN-RESTART ALLOWED=%s' % (greeter_id, allowed))
-
- r = '%s RESTART' % greeter_id
- if request == r:
- try:
- LightDM.restart ()
- except:
- status_notify ('%s FAIL-RESTART' % greeter_id)
-
- r = '%s GET-CAN-SHUTDOWN' % greeter_id
- if request == r:
- if LightDM.get_can_shutdown ():
- allowed = "TRUE"
- else:
- allowed = "FALSE"
- status_notify ('%s CAN-SHUTDOWN ALLOWED=%s' % (greeter_id, allowed))
-
- r = '%s SHUTDOWN' % greeter_id
- if request == r:
- try:
- LightDM.shutdown ()
- except:
- status_notify ('%s FAIL-SHUTDOWN' % greeter_id)
-
return True
path = os.getenv ('LIGHTDM_TEST_ROOT') + '/.s'
@@ -185,21 +129,29 @@ status_socket = socket.socket (socket.AF_UNIX, socket.SOCK_STREAM)
status_socket.connect (path)
GLib.io_add_watch (status_socket.fileno (), GLib.IO_IN | GLib.IO_HUP, request_cb)
-status_notify ('%s START' % greeter_id)
+status_text = '%s START' % greeter_id
+if xdg_seat is not None:
+ status_text += ' XDG_SEAT=%s' % xdg_seat
+if xdg_vtnr is not None:
+ status_text += ' XDG_VTNR=%s' % xdg_vtnr
+if xdg_session_cookie is not None:
+ status_text += ' XDG_SESSION_COOKIE=%s' % xdg_session_cookie
+status_notify (status_text)
config = GLib.KeyFile ()
config.load_from_file (os.getenv ('LIGHTDM_TEST_ROOT') + '/script', GLib.KeyFileFlags.NONE)
# NOTE: There don't seem to be any good X bindings so we have to mock up our own...
-(host, display_number) = display.split (':')
-if host == '':
- x_socket = socket.socket (socket.AF_UNIX, socket.SOCK_STREAM)
- x_socket.connect (os.getenv ('LIGHTDM_TEST_ROOT') + '/.x' + display)
-else:
- x_socket = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
- x_socket.connect ((host, 6000 + int (display_number)))
+if display is not None:
+ (host, display_number) = display.split (':')
+ if host == '':
+ x_socket = socket.socket (socket.AF_UNIX, socket.SOCK_STREAM)
+ x_socket.connect (os.getenv ('LIGHTDM_TEST_ROOT') + '/.x' + display)
+ else:
+ x_socket = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
+ x_socket.connect ((host, 6000 + int (display_number)))
-status_notify ('%s CONNECT-XSERVER' % (greeter_id))
+ status_notify ('%s CONNECT-XSERVER' % (greeter_id))
def show_message_cb (greeter, text, type):
status_notify ('%s SHOW-MESSAGE TEXT=\"%s\"' % (greeter_id, text))
@@ -248,7 +200,17 @@ status_notify ('%s CONNECTED-TO-DAEMON' % greeter_id)
if greeter.get_select_user_hint () is not None:
status_notify ('%s SELECT-USER-HINT USERNAME=%s' % (greeter_id, greeter.get_select_user_hint ()))
+if greeter.get_select_guest_hint ():
+ status_notify ('%s SELECT-GUEST-HINT' % greeter_id)
if greeter.get_lock_hint ():
- status_notify ('%s LOCK-HINT' % greeter_id);
+ status_notify ('%s LOCK-HINT' % greeter_id)
+if not greeter.get_has_guest_account_hint ():
+ status_notify ('%s HAS-GUEST-ACCOUNT-HINT=FALSE' % greeter_id)
+if greeter.get_hide_users_hint ():
+ status_notify ('%s HIDE-USERS-HINT' % greeter_id)
+if greeter.get_show_manual_login_hint ():
+ status_notify ('%s SHOW-MANUAL-LOGIN-HINT' % greeter_id)
+if not greeter.get_show_remote_login_hint ():
+ status_notify ('%s SHOW-REMOTE-LOGIN-HINT=FALSE' % greeter_id)
loop.run ()
diff --git a/tests/src/test-qt-greeter.cpp b/tests/src/test-qt-greeter.cpp
index 38d03c32..923b8601 100644
--- a/tests/src/test-qt-greeter.cpp
+++ b/tests/src/test-qt-greeter.cpp
@@ -128,19 +128,26 @@ request_cb (const gchar *request)
int
main(int argc, char *argv[])
{
- gchar *display;
+ gchar *display, *xdg_seat, *xdg_vtnr, *xdg_session_cookie;
+ GString *status_text;
#if !defined(GLIB_VERSION_2_36)
g_type_init ();
#endif
display = getenv ("DISPLAY");
- if (display == NULL)
- greeter_id = g_strdup ("GREETER-?");
- else if (display[0] == ':')
- greeter_id = g_strdup_printf ("GREETER-X-%s", display + 1);
+ xdg_seat = getenv ("XDG_SEAT");
+ xdg_vtnr = getenv ("XDG_VTNR");
+ xdg_session_cookie = getenv ("XDG_SESSION_COOKIE");
+ if (display)
+ {
+ if (display[0] == ':')
+ greeter_id = g_strdup_printf ("GREETER-X-%s", display + 1);
+ else
+ greeter_id = g_strdup_printf ("GREETER-X-%s", display);
+ }
else
- greeter_id = g_strdup_printf ("GREETER-X-%s", display);
+ greeter_id = g_strdup ("GREETER-?");
status_connect (request_cb);
@@ -149,20 +156,30 @@ main(int argc, char *argv[])
signal (SIGINT, signal_cb);
signal (SIGTERM, signal_cb);
- status_notify ("%s START", greeter_id);
+ status_text = g_string_new ("");
+ g_string_printf (status_text, "%s START", greeter_id);
+ if (xdg_seat)
+ g_string_append_printf (status_text, " XDG_SEAT=%s", xdg_seat);
+ if (xdg_vtnr)
+ g_string_append_printf (status_text, " XDG_VTNR=%s", xdg_vtnr);
+ if (xdg_session_cookie)
+ g_string_append_printf (status_text, " XDG_SESSION_COOKIE=%s", xdg_session_cookie);
+ status_notify (status_text->str);
+ g_string_free (status_text, TRUE);
config = new QSettings (g_build_filename (getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), QSettings::IniFormat);
- xcb_connection_t *connection = xcb_connect (NULL, NULL);
-
- if (xcb_connection_has_error (connection))
+ if (display)
{
- status_notify ("%s FAIL-CONNECT-XSERVER", greeter_id);
- return EXIT_FAILURE;
+ xcb_connection_t *connection = xcb_connect (NULL, NULL);
+ if (xcb_connection_has_error (connection))
+ {
+ status_notify ("%s FAIL-CONNECT-XSERVER", greeter_id);
+ return EXIT_FAILURE;
+ }
+ status_notify ("%s CONNECT-XSERVER", greeter_id);
}
- status_notify ("%s CONNECT-XSERVER", greeter_id);
-
greeter = new TestGreeter();
status_notify ("%s CONNECT-TO-DAEMON", greeter_id);
@@ -176,8 +193,18 @@ main(int argc, char *argv[])
if (greeter->selectUserHint() != "")
status_notify ("%s SELECT-USER-HINT USERNAME=%s", greeter_id, greeter->selectUserHint ().toAscii ().constData ());
+ if (greeter->selectGuestHint())
+ status_notify ("%s SELECT-GUEST-HINT", greeter_id);
if (greeter->lockHint())
status_notify ("%s LOCK-HINT", greeter_id);
+ if (!greeter->hasGuestAccountHint ())
+ status_notify ("%s HAS-GUEST-ACCOUNT-HINT=FALSE", greeter_id);
+ if (greeter->hideUsersHint ())
+ status_notify ("%s HIDE-USERS-HINT", greeter_id);
+ if (greeter->showManualLoginHint ())
+ status_notify ("%s SHOW-MANUAL-LOGIN-HINT", greeter_id);
+ if (!greeter->showRemoteLoginHint ())
+ status_notify ("%s SHOW-REMOTE-LOGIN-HINT=FALSE", greeter_id);
return app->exec();
}
diff --git a/tests/src/test-runner.c b/tests/src/test-runner.c
index 0b06d200..4c3fb71d 100644
--- a/tests/src/test-runner.c
+++ b/tests/src/test-runner.c
@@ -12,7 +12,7 @@
#include <pwd.h>
/* Timeout in ms waiting for the status we expect */
-#define STATUS_TIMEOUT 4000
+static int status_timeout_ms = 4000;
/* Timeout in ms to wait for SIGTERM to be handled by a child process */
#define KILL_TIMEOUT 2000
@@ -55,6 +55,7 @@ typedef struct
gchar *language;
gchar *xsession;
gchar **layouts;
+ gboolean hidden;
} AccountsUser;
static GList *accounts_users = NULL;
static void handle_user_call (GDBusConnection *connection,
@@ -84,6 +85,7 @@ typedef struct
gchar *cookie;
gchar *path;
guint id;
+ gboolean locked;
} CKSession;
static GList *ck_sessions = NULL;
static gint ck_session_index = 0;
@@ -99,6 +101,17 @@ static const GDBusInterfaceVTable ck_session_vtable =
{
handle_ck_session_call,
};
+
+typedef struct
+{
+ gchar *path;
+ guint pid;
+ gboolean locked;
+} Login1Session;
+
+static GList *login1_sessions = NULL;
+static gint login1_session_index = 0;
+
typedef struct
{
GSocket *socket;
@@ -109,6 +122,9 @@ static GList *status_clients = NULL;
static void run_lightdm (void);
static void quit (int status);
static void check_status (const gchar *status);
+static AccountsUser *get_accounts_user_by_uid (guint uid);
+static AccountsUser *get_accounts_user_by_name (const gchar *username);
+static void accounts_user_set_hidden (AccountsUser *user, gboolean hidden, gboolean emit_signal);
static gboolean
kill_timeout_cb (gpointer data)
@@ -138,7 +154,7 @@ process_exit_cb (GPid pid, gint status, gpointer data)
{
Process *process;
gchar *status_text;
-
+
if (getenv ("DEBUG"))
{
if (WIFEXITED (status))
@@ -177,7 +193,7 @@ process_exit_cb (GPid pid, gint status, gpointer data)
static Process *
watch_process (pid_t pid)
{
- Process *process;
+ Process *process;
process = g_malloc0 (sizeof (Process));
process->pid = pid;
@@ -381,6 +397,78 @@ handle_command (const gchar *command)
{
sleep (1);
}
+ else if (strcmp (name, "LIST-SEATS") == 0)
+ {
+ GVariant *result, *value;
+ GString *status;
+ GVariantIter *iter;
+ const gchar *path;
+ int i = 0;
+
+ result = g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
+ "org.freedesktop.DisplayManager",
+ "/org/freedesktop/DisplayManager",
+ "org.freedesktop.DBus.Properties",
+ "Get",
+ g_variant_new ("(ss)", "org.freedesktop.DisplayManager", "Seats"),
+ G_VARIANT_TYPE ("(v)"),
+ G_DBUS_CALL_FLAGS_NONE,
+ 1000,
+ NULL,
+ NULL);
+
+ status = g_string_new ("RUNNER LIST-SEATS SEATS=");
+ g_variant_get (result, "(v)", &value);
+ g_variant_get (value, "ao", &iter);
+ while (g_variant_iter_loop (iter, "&o", &path))
+ {
+ if (i != 0)
+ g_string_append (status, ",");
+ g_string_append (status, path);
+ i++;
+ }
+ g_variant_unref (value);
+ g_variant_unref (result);
+
+ check_status (status->str);
+ g_string_free (status, TRUE);
+ }
+ else if (strcmp (name, "LIST-SESSIONS") == 0)
+ {
+ GVariant *result, *value;
+ GString *status;
+ GVariantIter *iter;
+ const gchar *path;
+ int i = 0;
+
+ result = g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
+ "org.freedesktop.DisplayManager",
+ "/org/freedesktop/DisplayManager",
+ "org.freedesktop.DBus.Properties",
+ "Get",
+ g_variant_new ("(ss)", "org.freedesktop.DisplayManager", "Sessions"),
+ G_VARIANT_TYPE ("(v)"),
+ G_DBUS_CALL_FLAGS_NONE,
+ 1000,
+ NULL,
+ NULL);
+
+ status = g_string_new ("RUNNER LIST-SESSIONS SESSIONS=");
+ g_variant_get (result, "(v)", &value);
+ g_variant_get (value, "ao", &iter);
+ while (g_variant_iter_loop (iter, "&o", &path))
+ {
+ if (i != 0)
+ g_string_append (status, ",");
+ g_string_append (status, path);
+ i++;
+ }
+ g_variant_unref (value);
+ g_variant_unref (result);
+
+ check_status (status->str);
+ g_string_free (status, TRUE);
+ }
else if (strcmp (name, "SWITCH-TO-GREETER") == 0)
{
g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
@@ -399,7 +487,7 @@ handle_command (const gchar *command)
else if (strcmp (name, "SWITCH-TO-USER") == 0)
{
gchar *status_text, *username;
-
+
username = g_hash_table_lookup (params, "USERNAME");
g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
"org.freedesktop.DisplayManager",
@@ -484,6 +572,38 @@ handle_command (const gchar *command)
g_hash_table_insert (children, GINT_TO_POINTER (process->pid), process);
}
}
+ else if (strcmp (name, "ADD-USER") == 0)
+ {
+ gchar *status_text, *username;
+ AccountsUser *user;
+
+ username = g_hash_table_lookup (params, "USERNAME");
+ user = get_accounts_user_by_name (username);
+ if (user)
+ accounts_user_set_hidden (user, FALSE, TRUE);
+ else
+ g_warning ("Unknown user %s", username);
+
+ status_text = g_strdup_printf ("RUNNER ADD-USER USERNAME=%s", username);
+ check_status (status_text);
+ g_free (status_text);
+ }
+ else if (strcmp (name, "DELETE-USER") == 0)
+ {
+ gchar *status_text, *username;
+ AccountsUser *user;
+
+ username = g_hash_table_lookup (params, "USERNAME");
+ user = get_accounts_user_by_name (username);
+ if (user)
+ accounts_user_set_hidden (user, TRUE, TRUE);
+ else
+ g_warning ("Unknown user %s", username);
+
+ status_text = g_strdup_printf ("RUNNER DELETE-USER USERNAME=%s", username);
+ check_status (status_text);
+ g_free (status_text);
+ }
/* Forward to external processes */
else if (g_str_has_prefix (name, "SESSION-") ||
g_str_has_prefix (name, "GREETER-") ||
@@ -495,21 +615,20 @@ handle_command (const gchar *command)
StatusClient *client = link->data;
int length;
GError *error = NULL;
-
+
length = strlen (command);
- g_socket_send (client->socket, (gchar *) &length, sizeof (length), NULL, &error);
- g_socket_send (client->socket, command, strlen (command), NULL, &error);
- if (error)
+ if (g_socket_send (client->socket, (gchar *) &length, sizeof (length), NULL, &error) < 0 ||
+ g_socket_send (client->socket, command, strlen (command), NULL, &error) < 0)
g_printerr ("Failed to write to client socket: %s\n", error->message);
g_clear_error (&error);
- }
+ }
}
else
{
g_printerr ("Unknown command '%s'\n", name);
quit (EXIT_FAILURE);
}
-
+
g_free (name);
g_hash_table_unref (params);
}
@@ -558,9 +677,9 @@ check_status (const gchar *status)
if (stop)
return;
-
+
statuses = g_list_append (statuses, g_strdup (status));
-
+
if (getenv ("DEBUG"))
g_print ("%s\n", status);
@@ -574,7 +693,7 @@ check_status (const gchar *status)
result = g_regex_match_simple (full_pattern, status, 0, 0);
g_free (full_pattern);
}
-
+
if (!result)
{
if (line == NULL)
@@ -587,7 +706,7 @@ check_status (const gchar *status)
/* Restart timeout */
g_source_remove (status_timeout);
- status_timeout = g_timeout_add (STATUS_TIMEOUT, status_timeout_cb, NULL);
+ status_timeout = g_timeout_add (status_timeout_ms, status_timeout_cb, NULL);
run_commands ();
}
@@ -679,6 +798,101 @@ load_script (const gchar *filename)
g_strfreev (lines);
}
+static void
+handle_upower_call (GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ if (strcmp (method_name, "SuspendAllowed") == 0)
+ {
+ check_status ("UPOWER SUSPEND-ALLOWED");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", TRUE));
+ }
+ else if (strcmp (method_name, "Suspend") == 0)
+ {
+ check_status ("UPOWER SUSPEND");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
+ }
+ else if (strcmp (method_name, "HibernateAllowed") == 0)
+ {
+ check_status ("UPOWER HIBERNATE-ALLOWED");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", TRUE));
+ }
+ else if (strcmp (method_name, "Hibernate") == 0)
+ {
+ check_status ("UPOWER HIBERNATE");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
+ }
+ else
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name);
+}
+
+static void
+upower_name_acquired_cb (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
+{
+ const gchar *upower_interface =
+ "<node>"
+ " <interface name='org.freedesktop.UPower'>"
+ " <method name='SuspendAllowed'>"
+ " <arg name='allowed' direction='out' type='b'/>"
+ " </method>"
+ " <method name='Suspend'/>"
+ " <method name='HibernateAllowed'>"
+ " <arg name='allowed' direction='out' type='b'/>"
+ " </method>"
+ " <method name='Hibernate'/>"
+ " </interface>"
+ "</node>";
+ static const GDBusInterfaceVTable upower_vtable =
+ {
+ handle_upower_call,
+ };
+ GDBusNodeInfo *upower_info;
+ GError *error = NULL;
+
+ upower_info = g_dbus_node_info_new_for_xml (upower_interface, &error);
+ if (error)
+ g_warning ("Failed to parse D-Bus interface: %s", error->message);
+ g_clear_error (&error);
+ if (!upower_info)
+ return;
+ g_dbus_connection_register_object (connection,
+ "/org/freedesktop/UPower",
+ upower_info->interfaces[0],
+ &upower_vtable,
+ NULL, NULL,
+ &error);
+ if (error)
+ g_warning ("Failed to register UPower service: %s", error->message);
+ g_clear_error (&error);
+ g_dbus_node_info_unref (upower_info);
+
+ service_count--;
+ if (service_count == 0)
+ run_lightdm ();
+}
+
+static void
+start_upower_daemon (void)
+{
+ service_count++;
+ g_bus_own_name (G_BUS_TYPE_SYSTEM,
+ "org.freedesktop.UPower",
+ G_BUS_NAME_OWNER_FLAGS_NONE,
+ upower_name_acquired_cb,
+ NULL,
+ NULL,
+ NULL,
+ NULL);
+}
+
static CKSession *
open_ck_session (GVariant *params)
{
@@ -798,10 +1012,22 @@ handle_ck_session_call (GDBusConnection *connection,
GDBusMethodInvocation *invocation,
gpointer user_data)
{
+ CKSession *session = user_data;
+
if (strcmp (method_name, "Lock") == 0)
+ {
+ if (!session->locked)
+ check_status ("CONSOLE-KIT LOCK-SESSION");
+ session->locked = TRUE;
g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
+ }
else if (strcmp (method_name, "Unlock") == 0)
+ {
+ if (session->locked)
+ check_status ("CONSOLE-KIT UNLOCK-SESSION");
+ session->locked = FALSE;
g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
+ }
else
g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name);
}
@@ -863,13 +1089,13 @@ ck_name_acquired_cb (GDBusConnection *connection,
ck_info = g_dbus_node_info_new_for_xml (ck_interface, &error);
if (error)
- g_warning ("Failed to parse D-Bus interface: %s", error->message);
+ g_warning ("Failed to parse D-Bus interface: %s", error->message);
g_clear_error (&error);
if (!ck_info)
return;
ck_session_info = g_dbus_node_info_new_for_xml (ck_session_interface, &error);
if (error)
- g_warning ("Failed to parse D-Bus interface: %s", error->message);
+ g_warning ("Failed to parse D-Bus interface: %s", error->message);
g_clear_error (&error);
if (!ck_session_info)
return;
@@ -904,11 +1130,355 @@ start_console_kit_daemon (void)
}
static void
+handle_login1_session_call (GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ Login1Session *session = user_data;
+
+ if (strcmp (method_name, "Lock") == 0)
+ {
+ if (!session->locked)
+ check_status ("LOGIN1 LOCK-SESSION");
+ session->locked = TRUE;
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
+ }
+ else if (strcmp (method_name, "Unlock") == 0)
+ {
+ if (session->locked)
+ check_status ("LOGIN1 UNLOCK-SESSION");
+ session->locked = FALSE;
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
+ }
+ else
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name);
+}
+
+static Login1Session *
+open_login1_session (GDBusConnection *connection,
+ GVariant *params)
+{
+ Login1Session *session;
+ GError *error = NULL;
+ GDBusNodeInfo *login1_session_info;
+
+ const gchar *login1_session_interface =
+ "<node>"
+ " <interface name='org.freedesktop.login1.Session'>"
+ " <method name='Lock'/>"
+ " <method name='Unlock'/>"
+ " </interface>"
+ "</node>";
+ static const GDBusInterfaceVTable login1_session_vtable =
+ {
+ handle_login1_session_call,
+ };
+
+ session = g_malloc0 (sizeof (Login1Session));
+ login1_sessions = g_list_append (login1_sessions, session);
+
+ session->path = g_strdup_printf("/org/freedesktop/login1/Session/c%d",
+ login1_session_index++);
+
+
+
+ login1_session_info = g_dbus_node_info_new_for_xml (login1_session_interface,
+ &error);
+ if (error)
+ g_warning ("Failed to parse login1 session D-Bus interface: %s",
+ error->message);
+ g_clear_error (&error);
+ if (!login1_session_info)
+ return NULL;
+
+ g_dbus_connection_register_object (connection,
+ session->path,
+ login1_session_info->interfaces[0],
+ &login1_session_vtable,
+ session,
+ NULL,
+ &error);
+ if (error)
+ g_warning ("Failed to register login1 session: %s", error->message);
+ g_clear_error (&error);
+ g_dbus_node_info_unref (login1_session_info);
+
+ return session;
+}
+
+
+static void
+handle_login1_call (GDBusConnection *connection,
+ const gchar *sender,
+ const gchar *object_path,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+
+ if (strcmp (method_name, "GetSessionByPID") == 0)
+ {
+ /* Look for a session with our PID, and create one if we don't have one
+ already. */
+ GList *link;
+ guint pid;
+ Login1Session *ret = NULL;
+
+ g_variant_get (parameters, "(u)", &pid);
+
+ for (link = login1_sessions; link; link = link->next)
+ {
+ Login1Session *session;
+ session = link->data;
+ if (session->pid == pid)
+ {
+ ret = session;
+ break;
+ }
+ }
+ /* Not found */
+ if (!ret)
+ ret = open_login1_session (connection, parameters);
+
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new("(o)", ret->path));
+
+ }
+ else if (strcmp (method_name, "CanReboot") == 0)
+ {
+ check_status ("LOGIN1 CAN-REBOOT");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", "yes"));
+ }
+ else if (strcmp (method_name, "Reboot") == 0)
+ {
+ gboolean interactive;
+ g_variant_get (parameters, "(b)", &interactive);
+ check_status ("LOGIN1 REBOOT");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
+ }
+ else if (strcmp (method_name, "CanPowerOff") == 0)
+ {
+ check_status ("LOGIN1 CAN-POWER-OFF");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", "yes"));
+ }
+ else if (strcmp (method_name, "Suspend") == 0)
+ {
+ gboolean interactive;
+ g_variant_get (parameters, "(b)", &interactive);
+ check_status ("LOGIN1 SUSPEND");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
+ }
+ else if (strcmp (method_name, "CanSuspend") == 0)
+ {
+ check_status ("LOGIN1 CAN-SUSPEND");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", "yes"));
+ }
+ else if (strcmp (method_name, "PowerOff") == 0)
+ {
+ gboolean interactive;
+ g_variant_get (parameters, "(b)", &interactive);
+ check_status ("LOGIN1 POWER-OFF");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
+ }
+ else if (strcmp (method_name, "CanHibernate") == 0)
+ {
+ check_status ("LOGIN1 CAN-HIBERNATE");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", "yes"));
+ }
+ else if (strcmp (method_name, "Hibernate") == 0)
+ {
+ gboolean interactive;
+ g_variant_get (parameters, "(b)", &interactive);
+ check_status ("LOGIN1 HIBERNATE");
+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
+ }
+ else
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name);
+}
+
+static void
+login1_name_acquired_cb (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
+{
+ const gchar *login1_interface =
+ "<node>"
+ " <interface name='org.freedesktop.login1.Manager'>"
+ " <method name='GetSessionByPID'>"
+ " <arg name='pid' type='u' direction='in'/>"
+ " <arg name='session' type='o' direction='out'/>"
+ " </method>"
+ " <method name='CanReboot'>"
+ " <arg name='result' direction='out' type='s'/>"
+ " </method>"
+ " <method name='Reboot'>"
+ " <arg name='interactive' direction='in' type='b'/>"
+ " </method>"
+ " <method name='CanPowerOff'>"
+ " <arg name='result' direction='out' type='s'/>"
+ " </method>"
+ " <method name='PowerOff'>"
+ " <arg name='interactive' direction='in' type='b'/>"
+ " </method>"
+ " <method name='CanSuspend'>"
+ " <arg name='result' direction='out' type='s'/>"
+ " </method>"
+ " <method name='Suspend'>"
+ " <arg name='interactive' direction='in' type='b'/>"
+ " </method>"
+ " <method name='CanHibernate'>"
+ " <arg name='result' direction='out' type='s'/>"
+ " </method>"
+ " <method name='Hibernate'>"
+ " <arg name='interactive' direction='in' type='b'/>"
+ " </method>"
+ " </interface>"
+ "</node>";
+ static const GDBusInterfaceVTable login1_vtable =
+ {
+ handle_login1_call,
+ };
+ GDBusNodeInfo *login1_info;
+ GError *error = NULL;
+
+ login1_info = g_dbus_node_info_new_for_xml (login1_interface, &error);
+ if (error)
+ g_warning ("Failed to parse login1 D-Bus interface: %s", error->message);
+ g_clear_error (&error);
+ if (!login1_info)
+ return;
+ g_dbus_connection_register_object (connection,
+ "/org/freedesktop/login1",
+ login1_info->interfaces[0],
+ &login1_vtable,
+ NULL, NULL,
+ &error);
+ if (error)
+ g_warning ("Failed to register login1 service: %s", error->message);
+ g_clear_error (&error);
+ g_dbus_node_info_unref (login1_info);
+
+ service_count--;
+ if (service_count == 0)
+ run_lightdm ();
+}
+
+static void
+start_login1_daemon (void)
+{
+ service_count++;
+ g_bus_own_name (G_BUS_TYPE_SYSTEM,
+ "org.freedesktop.login1",
+ G_BUS_NAME_OWNER_FLAGS_NONE,
+ login1_name_acquired_cb,
+ NULL,
+ NULL,
+ NULL,
+ NULL);
+}
+
+static AccountsUser *
+get_accounts_user_by_uid (guint uid)
+{
+ GList *link;
+
+ for (link = accounts_users; link; link = link->next)
+ {
+ AccountsUser *u = link->data;
+ if (u->uid == uid)
+ return u;
+ }
+
+ return NULL;
+}
+
+static AccountsUser *
+get_accounts_user_by_name (const gchar *username)
+{
+ GList *link;
+
+ for (link = accounts_users; link; link = link->next)
+ {
+ AccountsUser *u = link->data;
+ if (strcmp (u->user_name, username) == 0)
+ return u;
+ }
+
+ return NULL;
+}
+
+static void
+accounts_user_set_hidden (AccountsUser *user, gboolean hidden, gboolean emit_signal)
+{
+ GError *error = NULL;
+
+ user->hidden = hidden;
+
+ if (user->hidden && user->id != 0)
+ {
+ g_dbus_connection_unregister_object (accounts_connection, user->id);
+ g_dbus_connection_emit_signal (accounts_connection,
+ NULL,
+ "/org/freedesktop/Accounts",
+ "org.freedesktop.Accounts",
+ "UserDeleted",
+ g_variant_new ("(o)", user->path),
+ &error);
+ if (error)
+ g_warning ("Failed to emit UserDeleted: %s", error->message);
+ g_clear_error (&error);
+
+ user->id = 0;
+ }
+ if (!user->hidden && user->id == 0)
+ {
+ user->id = g_dbus_connection_register_object (accounts_connection,
+ user->path,
+ user_info->interfaces[0],
+ &user_vtable,
+ user,
+ NULL,
+ &error);
+ if (error)
+ g_warning ("Failed to register user: %s", error->message);
+ g_clear_error (&error);
+
+ g_dbus_connection_emit_signal (accounts_connection,
+ NULL,
+ "/org/freedesktop/Accounts",
+ "org.freedesktop.Accounts",
+ "UserAdded",
+ g_variant_new ("(o)", user->path),
+ &error);
+ if (error)
+ g_warning ("Failed to emit UserAdded: %s", error->message);
+ g_clear_error (&error);
+ }
+}
+
+static void
load_passwd_file (void)
{
gchar *path, *data, **lines;
+ gchar **user_filter = NULL;
int i;
+ if (g_key_file_has_key (config, "test-runner-config", "accounts-service-user-filter", NULL))
+ {
+ gchar *filter;
+
+ filter = g_key_file_get_string (config, "test-runner-config", "accounts-service-user-filter", NULL);
+ user_filter = g_strsplit (filter, " ", -1);
+ g_free (filter);
+ }
+
path = g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "etc", "passwd", NULL);
g_file_get_contents (path, &data, NULL, NULL);
g_free (path);
@@ -920,9 +1490,7 @@ load_passwd_file (void)
gchar **fields;
guint uid;
gchar *user_name, *real_name;
- GList *link;
AccountsUser *user = NULL;
- GError *error = NULL;
fields = g_strsplit (lines[i], ":", -1);
if (fields == NULL || g_strv_length (fields) < 7)
@@ -935,15 +1503,7 @@ load_passwd_file (void)
uid = atoi (fields[2]);
real_name = fields[4];
- for (link = accounts_users; link; link = link->next)
- {
- AccountsUser *u = link->data;
- if (u->uid == uid)
- {
- user = u;
- break;
- }
- }
+ user = get_accounts_user_by_uid (uid);
if (!user)
{
gchar *path;
@@ -952,6 +1512,18 @@ load_passwd_file (void)
user = g_malloc0 (sizeof (AccountsUser));
accounts_users = g_list_append (accounts_users, user);
+ /* Only allow users in whitelist */
+ user->hidden = FALSE;
+ if (user_filter)
+ {
+ int j;
+
+ user->hidden = TRUE;
+ for (j = 0; user_filter[j] != NULL; j++)
+ if (strcmp (user_name, user_filter[j]) == 0)
+ user->hidden = FALSE;
+ }
+
dmrc_file = g_key_file_new ();
path = g_build_filename (temp_dir, "home", user_name, ".dmrc", NULL);
g_key_file_load_from_file (dmrc_file, path, G_KEY_FILE_NONE, NULL);
@@ -972,16 +1544,7 @@ load_passwd_file (void)
user->xsession = g_key_file_get_string (dmrc_file, "Desktop", "Session", NULL);
user->layouts = g_key_file_get_string_list (dmrc_file, "X-Accounts", "Layouts", NULL, NULL);
user->path = g_strdup_printf ("/org/freedesktop/Accounts/User%d", uid);
- user->id = g_dbus_connection_register_object (accounts_connection,
- user->path,
- user_info->interfaces[0],
- &user_vtable,
- user,
- NULL,
- &error);
- if (error)
- g_warning ("Failed to register user: %s", error->message);
- g_clear_error (&error);
+ accounts_user_set_hidden (user, user->hidden, FALSE);
g_key_file_free (dmrc_file);
}
@@ -1009,40 +1572,32 @@ handle_accounts_call (GDBusConnection *connection,
g_variant_builder_init (&builder, G_VARIANT_TYPE ("ao"));
- load_passwd_file ();
+ load_passwd_file ();
for (link = accounts_users; link; link = link->next)
{
AccountsUser *user = link->data;
- g_variant_builder_add_value (&builder, g_variant_new_object_path (user->path));
+ if (!user->hidden)
+ g_variant_builder_add_value (&builder, g_variant_new_object_path (user->path));
}
g_dbus_method_invocation_return_value (invocation, g_variant_new ("(ao)", &builder));
}
else if (strcmp (method_name, "FindUserByName") == 0)
{
- GList *link;
AccountsUser *user = NULL;
gchar *user_name;
g_variant_get (parameters, "(&s)", &user_name);
load_passwd_file ();
- for (link = accounts_users; link; link = link->next)
- {
- AccountsUser *u = link->data;
- if (strcmp (u->user_name, user_name) == 0)
- {
- user = u;
- break;
- }
- }
- if (user)
+ user = get_accounts_user_by_name (user_name);
+ if (user && !user->hidden)
g_dbus_method_invocation_return_value (invocation, g_variant_new ("(o)", user->path));
else
g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such user: %s", user_name);
}
else
- g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name);
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name);
}
static void
@@ -1123,6 +1678,12 @@ accounts_name_acquired_cb (GDBusConnection *connection,
" <arg name='name' direction='in' type='s'/>"
" <arg name='user' direction='out' type='o'/>"
" </method>"
+ " <signal name='UserAdded'>"
+ " <arg name='user' type='o'/>"
+ " </signal>"
+ " <signal name='UserDeleted'>"
+ " <arg name='user' type='o'/>"
+ " </signal>"
" </interface>"
"</node>";
static const GDBusInterfaceVTable accounts_vtable =
@@ -1151,13 +1712,13 @@ accounts_name_acquired_cb (GDBusConnection *connection,
accounts_info = g_dbus_node_info_new_for_xml (accounts_interface, &error);
if (error)
- g_warning ("Failed to parse D-Bus interface: %s", error->message);
+ g_warning ("Failed to parse D-Bus interface: %s", error->message);
g_clear_error (&error);
if (!accounts_info)
return;
user_info = g_dbus_node_info_new_for_xml (user_interface, &error);
if (error)
- g_warning ("Failed to parse D-Bus interface: %s", error->message);
+ g_warning ("Failed to parse D-Bus interface: %s", error->message);
g_clear_error (&error);
if (!user_info)
return;
@@ -1202,15 +1763,12 @@ run_lightdm (void)
run_commands ();
- status_timeout = g_timeout_add (STATUS_TIMEOUT, status_timeout_cb, NULL);
+ status_timeout = g_timeout_add (status_timeout_ms, status_timeout_cb, NULL);
command_line = g_string_new ("lightdm");
if (getenv ("DEBUG"))
g_string_append (command_line, " --debug");
g_string_append_printf (command_line, " --cache-dir %s/cache", temp_dir);
- g_string_append_printf (command_line, " --xsessions-dir=%s/usr/share/xsessions", temp_dir);
- g_string_append_printf (command_line, " --remote-sessions-dir=%s/usr/share/remote-sessions", temp_dir);
- g_string_append_printf (command_line, " --xgreeters-dir=%s/usr/share/xgreeters", temp_dir);
test_runner_command = g_strdup_printf ("PATH=%s LD_PRELOAD=%s LD_LIBRARY_PATH=%s LIGHTDM_TEST_ROOT=%s DBUS_SESSION_BUS_ADDRESS=%s %s\n",
g_getenv ("PATH"), g_getenv ("LD_PRELOAD"), g_getenv ("LD_LIBRARY_PATH"), g_getenv ("LIGHTDM_TEST_ROOT"), g_getenv ("DBUS_SESSION_BUS_ADDRESS"),
@@ -1284,7 +1842,7 @@ main (int argc, char **argv)
g_critical ("Error getting current directory: %s", strerror (errno));
quit (EXIT_FAILURE);
}
-
+
/* Don't contact our X server */
g_unsetenv ("DISPLAY");
@@ -1299,7 +1857,7 @@ main (int argc, char **argv)
g_free (path);
/* Use locally built libraries */
- path1 = g_build_filename (BUILDDIR, "liblightdm-gobject", ".libs", NULL);
+ path1 = g_build_filename (BUILDDIR, "liblightdm-gobject", ".libs", NULL);
path2 = g_build_filename (BUILDDIR, "liblightdm-qt", ".libs", NULL);
ld_library_path = g_strdup_printf ("%s:%s", path1, path2);
g_free (path1);
@@ -1369,7 +1927,7 @@ main (int argc, char **argv)
g_mkdir_with_parents (g_strdup_printf ("%s/etc", temp_dir), 0755);
g_mkdir_with_parents (g_strdup_printf ("%s/usr/share", temp_dir), 0755);
g_mkdir_with_parents (g_strdup_printf ("%s/usr/share/xsessions", temp_dir), 0755);
- g_mkdir_with_parents (g_strdup_printf ("%s/usr/share/remote-sessions", temp_dir), 0755);
+ g_mkdir_with_parents (g_strdup_printf ("%s/usr/share/lightdm/remote-sessions", temp_dir), 0755);
g_mkdir_with_parents (g_strdup_printf ("%s/usr/share/xgreeters", temp_dir), 0755);
g_mkdir_with_parents (g_strdup_printf ("%s/tmp", temp_dir), 0755);
g_mkdir_with_parents (g_strdup_printf ("%s/var/run", temp_dir), 0755);
@@ -1383,15 +1941,15 @@ main (int argc, char **argv)
/* Always copy the script */
if (system (g_strdup_printf ("cp %s %s/script", config_path, temp_dir)))
- perror ("Failed to copy configuration");
+ perror ("Failed to copy configuration");
/* Copy over the greeter files */
if (system (g_strdup_printf ("cp %s/xsessions/* %s/usr/share/xsessions", DATADIR, temp_dir)))
- perror ("Failed to copy xsessions");
- if (system (g_strdup_printf ("cp %s/remote-sessions/* %s/usr/share/remote-sessions", DATADIR, temp_dir)))
+ perror ("Failed to copy sessions");
+ if (system (g_strdup_printf ("cp %s/remote-sessions/* %s/usr/share/lightdm/remote-sessions", DATADIR, temp_dir)))
perror ("Failed to copy remote sessions");
if (system (g_strdup_printf ("cp %s/xgreeters/* %s/usr/share/xgreeters", DATADIR, temp_dir)))
- perror ("Failed to copy xgreeters");
+ perror ("Failed to copy greeters");
/* Set up the default greeter */
path = g_build_filename (temp_dir, "usr", "share", "xgreeters", "default.desktop", NULL);
@@ -1441,7 +1999,7 @@ main (int argc, char **argv)
/* This account has a set of keyboard layouts */
{"have-layouts", "", TRUE, "Layouts User", NULL, "ru", "fr\toss;ru;", NULL, 1010},
/* This account has a language set */
- {"have-language", "", TRUE, "Language User", NULL, NULL, NULL, "en_AU.utf8", 1011},
+ {"have-language", "", TRUE, "Language User", NULL, NULL, NULL, "en_AU.utf8", 1011},
/* This account has a preconfigured session */
{"have-session", "", TRUE, "Session User", "alternative", NULL, NULL, NULL, 1012},
/* This account has the home directory mounted on login */
@@ -1529,7 +2087,7 @@ main (int argc, char **argv)
data = g_key_file_to_data (dmrc_file, NULL, NULL);
g_file_set_contents (path, data, -1, NULL);
g_free (data);
- g_free (path);
+ g_free (path);
}
g_key_file_free (dmrc_file);
@@ -1553,9 +2111,16 @@ main (int argc, char **argv)
g_free (path);
g_string_free (group_data, TRUE);
+ if (g_key_file_has_key (config, "test-runner-config", "timeout", NULL))
+ status_timeout_ms = g_key_file_get_integer (config, "test-runner-config", "timeout", NULL) * 1000;
+
/* Start D-Bus services */
+ if (!g_key_file_get_boolean (config, "test-runner-config", "disable-upower", NULL))
+ start_upower_daemon ();
if (!g_key_file_get_boolean (config, "test-runner-config", "disable-console-kit", NULL))
start_console_kit_daemon ();
+ if (!g_key_file_get_boolean (config, "test-runner-config", "disable-login1", NULL))
+ start_login1_daemon ();
if (!g_key_file_get_boolean (config, "test-runner-config", "disable-accounts-service", NULL))
start_accounts_service_daemon ();
diff --git a/tests/src/test-session.c b/tests/src/test-session.c
index 7d321cee..35b1eda6 100644
--- a/tests/src/test-session.c
+++ b/tests/src/test-session.c
@@ -158,16 +158,24 @@ request_cb (const gchar *request)
int
main (int argc, char **argv)
{
- gchar *display;
+ gchar *display, *xdg_seat, *xdg_vtnr, *xdg_current_desktop, *xdg_session_cookie;
+ GString *status_text;
int fd, open_max;
display = getenv ("DISPLAY");
- if (display == NULL)
- session_id = g_strdup ("SESSION-?");
- else if (display[0] == ':')
- session_id = g_strdup_printf ("SESSION-X-%s", display + 1);
+ xdg_seat = getenv ("XDG_SEAT");
+ xdg_vtnr = getenv ("XDG_VTNR");
+ xdg_current_desktop = getenv ("XDG_CURRENT_DESKTOP");
+ xdg_session_cookie = getenv ("XDG_SESSION_COOKIE");
+ if (display)
+ {
+ if (display[0] == ':')
+ session_id = g_strdup_printf ("SESSION-X-%s", display + 1);
+ else
+ session_id = g_strdup_printf ("SESSION-X-%s", display);
+ }
else
- session_id = g_strdup_printf ("SESSION-X-%s", display);
+ session_id = g_strdup ("SESSION-?");
open_fds = g_string_new ("");
open_max = sysconf (_SC_OPEN_MAX);
@@ -190,24 +198,36 @@ main (int argc, char **argv)
status_connect (request_cb);
+ status_text = g_string_new ("");
+ g_string_printf (status_text, "%s START", session_id);
+ if (xdg_seat)
+ g_string_append_printf (status_text, " XDG_SEAT=%s", xdg_seat);
+ if (xdg_vtnr)
+ g_string_append_printf (status_text, " XDG_VTNR=%s", xdg_vtnr);
+ if (xdg_current_desktop)
+ g_string_append_printf (status_text, " XDG_CURRENT_DESKTOP=%s", xdg_current_desktop);
+ if (xdg_session_cookie)
+ g_string_append_printf (status_text, " XDG_SESSION_COOKIE=%s", xdg_session_cookie);
if (argc > 1)
- status_notify ("%s START NAME=%s USER=%s", session_id, argv[1], getenv ("USER"));
- else
- status_notify ("%s START USER=%s", session_id, getenv ("USER"));
+ g_string_append_printf (status_text, " NAME=%s", argv[1]);
+ g_string_append_printf (status_text, " USER=%s", getenv ("USER"));
+ status_notify (status_text->str);
+ g_string_free (status_text, TRUE);
config = g_key_file_new ();
g_key_file_load_from_file (config, g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), G_KEY_FILE_NONE, NULL);
- connection = xcb_connect (NULL, NULL);
-
- if (xcb_connection_has_error (connection))
+ if (display)
{
- status_notify ("%s CONNECT-XSERVER-ERROR", session_id);
- return EXIT_FAILURE;
+ connection = xcb_connect (NULL, NULL);
+ if (xcb_connection_has_error (connection))
+ {
+ status_notify ("%s CONNECT-XSERVER-ERROR", session_id);
+ return EXIT_FAILURE;
+ }
+ status_notify ("%s CONNECT-XSERVER", session_id);
}
- status_notify ("%s CONNECT-XSERVER", session_id);
-
g_main_loop_run (loop);
return EXIT_SUCCESS;
diff --git a/tests/src/x-authority.h b/tests/src/x-authority.h
index 56497fb3..9f329f31 100644
--- a/tests/src/x-authority.h
+++ b/tests/src/x-authority.h
@@ -1,5 +1,5 @@
-#ifndef _X_AUTHORITY_H_
-#define _X_AUTHORITY_H_
+#ifndef X_AUTHORITY_H_
+#define X_AUTHORITY_H_
#include <glib-object.h>
#include <gio/gio.h>
@@ -68,4 +68,4 @@ gboolean x_authority_record_check_cookie (XAuthorityRecord *record, const guint8
G_END_DECLS
-#endif /* _X_AUTHORITY_H_ */
+#endif /* X_AUTHORITY_H_ */
diff --git a/tests/src/x-common.h b/tests/src/x-common.h
index 2904b254..2539c09c 100644
--- a/tests/src/x-common.h
+++ b/tests/src/x-common.h
@@ -1,5 +1,5 @@
-#ifndef _X_COMMON_H_
-#define _X_COMMON_H_
+#ifndef X_COMMON_H_
+#define X_COMMON_H_
#include <glib-object.h>
@@ -45,4 +45,4 @@ void write_padded_string (guint8 *buffer, gsize buffer_length, const gchar *valu
G_END_DECLS
-#endif /* _X_COMMON_H_ */
+#endif /* X_COMMON_H_ */
diff --git a/tests/src/x-server.h b/tests/src/x-server.h
index 31258481..5f5b4728 100644
--- a/tests/src/x-server.h
+++ b/tests/src/x-server.h
@@ -1,5 +1,5 @@
-#ifndef _X_SERVER_H_
-#define _X_SERVER_H_
+#ifndef X_SERVER_H_
+#define X_SERVER_H_
#include <glib-object.h>
#include <gio/gio.h>
@@ -55,4 +55,4 @@ void x_client_disconnect (XClient *client);
G_END_DECLS
-#endif /* _X_SERVER_H_ */
+#endif /* X_SERVER_H_ */
diff --git a/tests/src/xdmcp-client.h b/tests/src/xdmcp-client.h
index 8cacbf83..0f08fcc6 100644
--- a/tests/src/xdmcp-client.h
+++ b/tests/src/xdmcp-client.h
@@ -1,5 +1,5 @@
-#ifndef _XDMCP_CLIENT_H_
-#define _XDMCP_CLIENT_H_
+#ifndef XDMCP_CLIENT_H_
+#define XDMCP_CLIENT_H_
#include <glib-object.h>
#include <gio/gio.h>
@@ -78,4 +78,4 @@ void xdmcp_client_send_manage (XDMCPClient *client, guint32 session_id, guint16
G_END_DECLS
-#endif /* _XDMCP_CLIENT_H_ */
+#endif /* XDMCP_CLIENT_H_ */
diff --git a/tests/test-dbus b/tests/test-dbus
new file mode 100755
index 00000000..c4992051
--- /dev/null
+++ b/tests/test-dbus
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner dbus test-gobject-greeter
diff --git a/tests/test-greeter-allow-guest b/tests/test-greeter-allow-guest
new file mode 100755
index 00000000..f7d0d8e8
--- /dev/null
+++ b/tests/test-greeter-allow-guest
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner greeter-allow-guest test-gobject-greeter
diff --git a/tests/test-greeter-default-session b/tests/test-greeter-default-session
new file mode 100755
index 00000000..8b991d0e
--- /dev/null
+++ b/tests/test-greeter-default-session
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner greeter-default-session test-gobject-greeter
diff --git a/tests/test-greeter-hide-users b/tests/test-greeter-hide-users
new file mode 100755
index 00000000..f9874eec
--- /dev/null
+++ b/tests/test-greeter-hide-users
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner greeter-hide-users test-gobject-greeter
diff --git a/tests/test-greeter-show-manual-login b/tests/test-greeter-show-manual-login
new file mode 100755
index 00000000..ba88c277
--- /dev/null
+++ b/tests/test-greeter-show-manual-login
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner greeter-show-manual-login test-gobject-greeter
diff --git a/tests/test-greeter-show-remote-login b/tests/test-greeter-show-remote-login
new file mode 100755
index 00000000..bd0f29ac
--- /dev/null
+++ b/tests/test-greeter-show-remote-login
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner greeter-show-remote-login test-gobject-greeter
diff --git a/tests/test-lock-seat-return-session b/tests/test-lock-seat-return-session
new file mode 100755
index 00000000..047e6070
--- /dev/null
+++ b/tests/test-lock-seat-return-session
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner lock-seat-return-session test-gobject-greeter
diff --git a/tests/test-login-gobject-remember-session b/tests/test-login-gobject-remember-session
new file mode 100755
index 00000000..760fdd8f
--- /dev/null
+++ b/tests/test-login-gobject-remember-session
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner login-remember-session test-gobject-greeter
diff --git a/tests/test-login-python-remember-session b/tests/test-login-python-remember-session
new file mode 100755
index 00000000..1d720b02
--- /dev/null
+++ b/tests/test-login-python-remember-session
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner login-remember-session test-python-greeter
diff --git a/tests/test-login-qt-remember-session b/tests/test-login-qt-remember-session
new file mode 100755
index 00000000..4e0a22f4
--- /dev/null
+++ b/tests/test-login-qt-remember-session
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner login-remember-session test-qt-greeter
diff --git a/tests/test-session-env b/tests/test-session-env
new file mode 100755
index 00000000..5be5e91a
--- /dev/null
+++ b/tests/test-session-env
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner session-env test-gobject-greeter
diff --git a/tests/test-upstart-autologin b/tests/test-upstart-autologin
new file mode 100755
index 00000000..16cb197d
--- /dev/null
+++ b/tests/test-upstart-autologin
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner upstart-autologin test-gobject-greeter
diff --git a/tests/test-upstart-login b/tests/test-upstart-login
new file mode 100755
index 00000000..c8b7dab3
--- /dev/null
+++ b/tests/test-upstart-login
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner upstart-login test-gobject-greeter
diff --git a/tests/test-vnc-dimensions b/tests/test-vnc-dimensions
new file mode 100755
index 00000000..5e2de973
--- /dev/null
+++ b/tests/test-vnc-dimensions
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner vnc-dimensions test-gobject-greeter
diff --git a/tests/test-xdmcp-login b/tests/test-xdmcp-login
deleted file mode 100755
index 0b46d782..00000000
--- a/tests/test-xdmcp-login
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-./src/dbus-env ./src/test-runner xdmcp-login test-gobject-greeter
diff --git a/tests/test-xdmcp-open-file-descriptors b/tests/test-xdmcp-open-file-descriptors
deleted file mode 100755
index d8ddec32..00000000
--- a/tests/test-xdmcp-open-file-descriptors
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-./src/dbus-env ./src/test-runner xdmcp-open-file-descriptors test-gobject-greeter
diff --git a/tests/test-xdmcp-server-login b/tests/test-xdmcp-server-login
new file mode 100755
index 00000000..d48cbaae
--- /dev/null
+++ b/tests/test-xdmcp-server-login
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner xdmcp-server-login test-gobject-greeter
diff --git a/tests/test-xdmcp-server-open-file-descriptors b/tests/test-xdmcp-server-open-file-descriptors
new file mode 100755
index 00000000..03eeab4b
--- /dev/null
+++ b/tests/test-xdmcp-server-open-file-descriptors
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner xdmcp-server-open-file-descriptors test-gobject-greeter