summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2017-09-21 14:03:48 +1200
committerRobert Ancell <robert.ancell@canonical.com>2017-09-21 14:03:48 +1200
commit9da0e1b1cac28bb78d27d3c0447a48c1251de553 (patch)
tree49993e116e974870c67de326b72da63404300bd6
parent300281ef02b82b33a740bbdba46f6667407d2daa (diff)
downloadlightdm-git-9da0e1b1cac28bb78d27d3c0447a48c1251de553.tar.gz
Expose autologin-session as a hint to the greeter
Based on a patch by Roland Tapken.
-rw-r--r--doc/lightdm-gobject-1-sections.txt1
-rw-r--r--liblightdm-gobject/greeter.c27
-rw-r--r--liblightdm-gobject/lightdm/greeter.h2
-rw-r--r--liblightdm-qt/QLightDM/greeter.h1
-rw-r--r--liblightdm-qt/greeter.cpp6
-rw-r--r--src/seat.c6
-rw-r--r--tests/Makefile.am9
-rw-r--r--tests/scripts/autologin-guest-timeout.conf3
-rw-r--r--tests/scripts/autologin-session-timeout.conf51
-rw-r--r--tests/scripts/autologin-timeout-in-background.conf3
-rw-r--r--tests/scripts/autologin-timeout-logout.conf6
-rw-r--r--tests/scripts/autologin-timeout.conf3
-rw-r--r--tests/scripts/multi-seat-globbing-config-sections.conf6
-rw-r--r--tests/src/test-gobject-greeter.c22
-rwxr-xr-xtests/src/test-python-greeter17
-rw-r--r--tests/src/test-qt-greeter.cpp21
-rwxr-xr-xtests/test-autologin-session-timeout-gobject2
-rwxr-xr-xtests/test-autologin-session-timeout-python2
-rwxr-xr-xtests/test-autologin-session-timeout-qt42
-rwxr-xr-xtests/test-autologin-session-timeout-qt52
20 files changed, 144 insertions, 48 deletions
diff --git a/doc/lightdm-gobject-1-sections.txt b/doc/lightdm-gobject-1-sections.txt
index 392d1001..b4e1ad82 100644
--- a/doc/lightdm-gobject-1-sections.txt
+++ b/doc/lightdm-gobject-1-sections.txt
@@ -21,6 +21,7 @@ lightdm_greeter_get_select_user_hint
lightdm_greeter_get_select_guest_hint
lightdm_greeter_get_autologin_user_hint
lightdm_greeter_get_autologin_guest_hint
+lightdm_greeter_get_autologin_session_hint
lightdm_greeter_get_autologin_timeout_hint
lightdm_greeter_cancel_autologin
lightdm_greeter_authenticate
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c
index 38eac052..2961220a 100644
--- a/liblightdm-gobject/greeter.c
+++ b/liblightdm-gobject/greeter.c
@@ -102,6 +102,7 @@ enum {
PROP_AUTHENTICATION_USER,
PROP_IN_AUTHENTICATION,
PROP_IS_AUTHENTICATED,
+ PROP_AUTOLOGIN_SESSION_HINT,
};
enum {
@@ -1326,6 +1327,21 @@ lightdm_greeter_get_autologin_user_hint (LightDMGreeter *greeter)
}
/**
+ * lightdm_greeter_get_autologin_session_hint:
+ * @greeter: A #LightDMGreeter
+ *
+ * Get the session used to automatically log into when the timer expires.
+ *
+ * Return value: (nullable): The session name or %NULL if configured to use the default.
+ */
+const gchar *
+lightdm_greeter_get_autologin_session_hint (LightDMGreeter *greeter)
+{
+ g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL);
+ return lightdm_greeter_get_hint (greeter, "autologin-session");
+}
+
+/**
* lightdm_greeter_get_autologin_guest_hint:
* @greeter: A #LightDMGreeter
*
@@ -1955,6 +1971,9 @@ lightdm_greeter_get_property (GObject *object,
case PROP_AUTOLOGIN_USER_HINT:
g_value_set_string (value, lightdm_greeter_get_autologin_user_hint (self));
break;
+ case PROP_AUTOLOGIN_SESSION_HINT:
+ g_value_set_string (value, lightdm_greeter_get_autologin_session_hint (self));
+ break;
case PROP_AUTOLOGIN_GUEST_HINT:
g_value_set_boolean (value, lightdm_greeter_get_autologin_guest_hint (self));
break;
@@ -2090,6 +2109,14 @@ lightdm_greeter_class_init (LightDMGreeterClass *klass)
G_PARAM_READABLE));
g_object_class_install_property (object_class,
+ PROP_AUTOLOGIN_SESSION_HINT,
+ g_param_spec_string ("autologin-session-hint",
+ "autologin-session-hint",
+ "Autologin session hint",
+ NULL,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class,
PROP_AUTOLOGIN_GUEST_HINT,
g_param_spec_boolean ("autologin-guest-hint",
"autologin-guest-hint",
diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h
index ab26e5d1..62168b59 100644
--- a/liblightdm-gobject/lightdm/greeter.h
+++ b/liblightdm-gobject/lightdm/greeter.h
@@ -150,6 +150,8 @@ gboolean lightdm_greeter_get_select_guest_hint (LightDMGreeter *greeter);
const gchar *lightdm_greeter_get_autologin_user_hint (LightDMGreeter *greeter);
+const gchar *lightdm_greeter_get_autologin_session_hint (LightDMGreeter *greeter);
+
gboolean lightdm_greeter_get_autologin_guest_hint (LightDMGreeter *greeter);
gint lightdm_greeter_get_autologin_timeout_hint (LightDMGreeter *greeter);
diff --git a/liblightdm-qt/QLightDM/greeter.h b/liblightdm-qt/QLightDM/greeter.h
index ff024d62..720574fa 100644
--- a/liblightdm-qt/QLightDM/greeter.h
+++ b/liblightdm-qt/QLightDM/greeter.h
@@ -66,6 +66,7 @@ public:
QString selectUserHint() const;
bool selectGuestHint() const;
QString autologinUserHint() const;
+ QString autologinSessionHint() const;
bool autologinGuestHint() const;
int autologinTimeoutHint() const;
diff --git a/liblightdm-qt/greeter.cpp b/liblightdm-qt/greeter.cpp
index 8e09d503..462f6913 100644
--- a/liblightdm-qt/greeter.cpp
+++ b/liblightdm-qt/greeter.cpp
@@ -275,6 +275,12 @@ QString Greeter::autologinUserHint() const
return QString::fromUtf8(lightdm_greeter_get_autologin_user_hint(d->ldmGreeter));
}
+QString Greeter::autologinSessionHint() const
+{
+ Q_D(const Greeter);
+ return QString::fromUtf8(lightdm_greeter_get_autologin_session_hint(d->ldmGreeter));
+}
+
bool Greeter::autologinGuestHint() const
{
Q_D(const Greeter);
diff --git a/src/seat.c b/src/seat.c
index e3be8f98..ace2ad66 100644
--- a/src/seat.c
+++ b/src/seat.c
@@ -1290,6 +1290,7 @@ create_greeter_session (Seat *seat)
Greeter *greeter;
const gchar *greeter_wrapper;
const gchar *autologin_username;
+ const gchar *autologin_session;
int autologin_timeout;
gboolean autologin_guest;
@@ -1352,6 +1353,9 @@ create_greeter_session (Seat *seat)
autologin_username = seat_get_string_property (seat, "autologin-user");
if (g_strcmp0 (autologin_username, "") == 0)
autologin_username = NULL;
+ autologin_session = seat_get_string_property (seat, "autologin-session");
+ if (g_strcmp0 (autologin_session, "") == 0)
+ autologin_session = NULL;
autologin_timeout = seat_get_integer_property (seat, "autologin-user-timeout");
autologin_guest = seat_get_boolean_property (seat, "autologin-guest");
if (autologin_timeout > 0)
@@ -1363,6 +1367,8 @@ create_greeter_session (Seat *seat)
g_free (value);
if (autologin_username)
greeter_set_hint (greeter, "autologin-user", autologin_username);
+ if (autologin_session)
+ greeter_set_hint (greeter, "autologin-session", autologin_session);
if (autologin_guest)
greeter_set_hint (greeter, "autologin-guest", "true");
}
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 0144673a..c38ad231 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -53,6 +53,7 @@ TESTS = \
test-autologin-session-error \
test-autologin-logout \
test-autologin-session \
+ test-autologin-session-timeout-gobject \
test-autologin-timeout-logout \
test-autologin-previous-session \
test-autologin-guest \
@@ -287,6 +288,9 @@ TESTS = \
# test-autologin-create-directory
TESTS += \
+ test-autologin-timeout-python \
+ test-autologin-guest-timeout-python \
+ test-autologin-session-timeout-python \
test-cancel-authentication-python \
test-sessions-python \
test-users-python \
@@ -315,14 +319,13 @@ TESTS += \
test-login-guest-fail-setup-script-python \
test-login-guest-logout-python \
test-login-remote-session-python \
- test-autologin-timeout-python \
- test-autologin-guest-timeout-python \
test-power-python
if COMPILE_LIBLIGHTDM_QT4
TESTS += \
test-autologin-timeout-qt4 \
test-autologin-guest-timeout-qt4 \
+ test-autologin-session-timeout-qt5 \
test-cancel-authentication-qt4 \
test-login-qt4 \
test-login-manual-qt4 \
@@ -358,6 +361,7 @@ if COMPILE_LIBLIGHTDM_QT5
TESTS += \
test-autologin-timeout-qt5 \
test-autologin-guest-timeout-qt5 \
+ test-autologin-session-timeout-qt5 \
test-cancel-authentication-qt5 \
test-login-qt5 \
test-login-manual-qt5 \
@@ -438,6 +442,7 @@ EXTRA_DIST = \
scripts/autologin-session.conf \
scripts/autologin-session-crash.conf \
scripts/autologin-session-error.conf \
+ scripts/autologin-session-timeout.conf \
scripts/autologin-timeout.conf \
scripts/autologin-timeout-in-background.conf \
scripts/autologin-timeout-logout.conf \
diff --git a/tests/scripts/autologin-guest-timeout.conf b/tests/scripts/autologin-guest-timeout.conf
index 83bd7edb..91bcd74d 100644
--- a/tests/scripts/autologin-guest-timeout.conf
+++ b/tests/scripts/autologin-guest-timeout.conf
@@ -27,7 +27,8 @@ user-session=default
#?GREETER-X-0 CONNECTED-TO-DAEMON
# Greeter is requested to timeout
-#?GREETER-X-0 AUTOLOGIN-GUEST TIMEOUT=99
+#?GREETER-X-0 AUTOLOGIN-GUEST-HINT
+#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99
# Trigger autologin
#?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN
diff --git a/tests/scripts/autologin-session-timeout.conf b/tests/scripts/autologin-session-timeout.conf
new file mode 100644
index 00000000..4675f63d
--- /dev/null
+++ b/tests/scripts/autologin-session-timeout.conf
@@ -0,0 +1,51 @@
+#
+# Check autologin session is passed to greeter
+#
+
+[Seat:*]
+autologin-user=have-password1
+autologin-user-timeout=99
+user-session=default
+autologin-session=alternative
+
+#?*START-DAEMON
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER-0 START VT=7 SEAT=seat0
+
+# Daemon connects when X server is ready
+#?*XSERVER-0 INDICATE-READY
+#?XSERVER-0 INDICATE-READY
+#?XSERVER-0 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?GREETER-X-0 CONNECT-XSERVER
+#?GREETER-X-0 CONNECT-TO-DAEMON
+#?GREETER-X-0 CONNECTED-TO-DAEMON
+
+# Greeter is requested to timeout
+#?GREETER-X-0 AUTOLOGIN-USER-HINT=have-password1
+#?GREETER-X-0 AUTOLOGIN-SESSION-HINT=alternative
+#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99
+
+# Trigger autologin
+#?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN
+#?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_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c1
+#?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/autologin-timeout-in-background.conf b/tests/scripts/autologin-timeout-in-background.conf
index a3f4fbdf..a48bb458 100644
--- a/tests/scripts/autologin-timeout-in-background.conf
+++ b/tests/scripts/autologin-timeout-in-background.conf
@@ -34,7 +34,8 @@ user-session=default
#?SESSION-X-1 CONNECT-XSERVER
# Greeter is requested to timeout
-#?GREETER-X-0 AUTOLOGIN-USER USERNAME=have-password1 TIMEOUT=99
+#?GREETER-X-0 AUTOLOGIN-USER-HINT=have-password1
+#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99
# Trigger autologin
#?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN
diff --git a/tests/scripts/autologin-timeout-logout.conf b/tests/scripts/autologin-timeout-logout.conf
index 4d02099e..ad54ccdb 100644
--- a/tests/scripts/autologin-timeout-logout.conf
+++ b/tests/scripts/autologin-timeout-logout.conf
@@ -27,7 +27,8 @@ user-session=default
#?GREETER-X-0 CONNECTED-TO-DAEMON
# Greeter is requested to timeout
-#?GREETER-X-0 AUTOLOGIN-USER USERNAME=have-password1 TIMEOUT=99
+#?GREETER-X-0 AUTOLOGIN-USER-HINT=have-password1
+#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99
# Trigger autologin
#?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN
@@ -64,7 +65,8 @@ user-session=default
#?GREETER-X-0 CONNECTED-TO-DAEMON
# Greeter is requested to timeout
-#?GREETER-X-0 AUTOLOGIN-USER USERNAME=have-password1 TIMEOUT=99
+#?GREETER-X-0 AUTOLOGIN-USER-HINT=have-password1
+#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99
# Cleanup
#?*STOP-DAEMON
diff --git a/tests/scripts/autologin-timeout.conf b/tests/scripts/autologin-timeout.conf
index d2d50ec9..db634108 100644
--- a/tests/scripts/autologin-timeout.conf
+++ b/tests/scripts/autologin-timeout.conf
@@ -27,7 +27,8 @@ user-session=default
#?GREETER-X-0 CONNECTED-TO-DAEMON
# Greeter is requested to timeout
-#?GREETER-X-0 AUTOLOGIN-USER USERNAME=have-password1 TIMEOUT=99
+#?GREETER-X-0 AUTOLOGIN-USER-HINT=have-password1
+#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99
# Trigger autologin
#?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN
diff --git a/tests/scripts/multi-seat-globbing-config-sections.conf b/tests/scripts/multi-seat-globbing-config-sections.conf
index 044dd43c..bf0a3b17 100644
--- a/tests/scripts/multi-seat-globbing-config-sections.conf
+++ b/tests/scripts/multi-seat-globbing-config-sections.conf
@@ -48,7 +48,8 @@ autologin-user=have-password3
#?GREETER-X-1 CONNECTED-TO-DAEMON
# Greeter is requested to timeout
-#?GREETER-X-1 AUTOLOGIN-USER USERNAME=have-password2 TIMEOUT=99
+#?GREETER-X-1 AUTOLOGIN-USER-HINT=have-password2
+#?GREETER-X-1 AUTOLOGIN-TIMEOUT-HINT=99
# Trigger autologin
#?*GREETER-X-1 AUTHENTICATE-AUTOLOGIN
@@ -80,7 +81,8 @@ autologin-user=have-password3
#?GREETER-X-2 CONNECTED-TO-DAEMON
# Greeter is requested to timeout
-#?GREETER-X-2 AUTOLOGIN-USER USERNAME=have-password3 TIMEOUT=99
+#?GREETER-X-2 AUTOLOGIN-USER-HINT=have-password3
+#?GREETER-X-2 AUTOLOGIN-TIMEOUT-HINT=99
# Trigger autologin
#?*GREETER-X-2 AUTHENTICATE-AUTOLOGIN
diff --git a/tests/src/test-gobject-greeter.c b/tests/src/test-gobject-greeter.c
index 92486d4c..c7535ac6 100644
--- a/tests/src/test-gobject-greeter.c
+++ b/tests/src/test-gobject-greeter.c
@@ -67,8 +67,6 @@ sigterm_cb (gpointer user_data)
static void
notify_hints (LightDMGreeter *greeter)
{
- int timeout = lightdm_greeter_get_autologin_timeout_hint (greeter);
-
if (lightdm_greeter_get_select_user_hint (greeter))
status_notify ("%s SELECT-USER-HINT USERNAME=%s", greeter_id, lightdm_greeter_get_select_user_hint (greeter));
if (lightdm_greeter_get_select_guest_hint (greeter))
@@ -84,19 +82,13 @@ notify_hints (LightDMGreeter *greeter)
if (!lightdm_greeter_get_show_remote_login_hint (greeter))
status_notify ("%s SHOW-REMOTE-LOGIN-HINT=FALSE", greeter_id);
if (lightdm_greeter_get_autologin_user_hint (greeter))
- {
- if (timeout != 0)
- status_notify ("%s AUTOLOGIN-USER USERNAME=%s TIMEOUT=%d", greeter_id, lightdm_greeter_get_autologin_user_hint (greeter), timeout);
- else
- status_notify ("%s AUTOLOGIN-USER USERNAME=%s", greeter_id, lightdm_greeter_get_autologin_user_hint (greeter));
- }
- else if (lightdm_greeter_get_autologin_guest_hint (greeter))
- {
- if (timeout != 0)
- status_notify ("%s AUTOLOGIN-GUEST TIMEOUT=%d", greeter_id, timeout);
- else
- status_notify ("%s AUTOLOGIN-GUEST", greeter_id);
- }
+ status_notify ("%s AUTOLOGIN-USER-HINT=%s", greeter_id, lightdm_greeter_get_autologin_user_hint (greeter));
+ if (lightdm_greeter_get_autologin_guest_hint (greeter))
+ status_notify ("%s AUTOLOGIN-GUEST-HINT", greeter_id);
+ if (lightdm_greeter_get_autologin_session_hint (greeter))
+ status_notify ("%s AUTOLOGIN-SESSION-HINT=%s", greeter_id, lightdm_greeter_get_autologin_session_hint (greeter));
+ if (lightdm_greeter_get_autologin_timeout_hint (greeter) != 0)
+ status_notify ("%s AUTOLOGIN-TIMEOUT-HINT=%d", greeter_id, lightdm_greeter_get_autologin_timeout_hint (greeter));
}
static void
diff --git a/tests/src/test-python-greeter b/tests/src/test-python-greeter
index 63865418..2d7382d9 100755
--- a/tests/src/test-python-greeter
+++ b/tests/src/test-python-greeter
@@ -210,17 +210,14 @@ def notify_hints (greeter):
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)
- timeout = greeter.get_autologin_timeout_hint ()
if greeter.get_autologin_user_hint () is not None:
- if timeout != 0:
- status_notify ('%s AUTOLOGIN-USER USERNAME=%s TIMEOUT=%d' % (greeter_id, greeter.get_autologin_user_hint (), timeout))
- else:
- status_notify ('%s AUTOLOGIN-USER USERNAME=%s' % (greeter_id, greeter.get_autologin_user_hint ()))
- elif greeter.get_autologin_guest_hint ():
- if timeout != 0:
- status_notify ('%s AUTOLOGIN-GUEST TIMEOUT=%d' % (greeter_id, timeout))
- else:
- status_notify ('%s AUTOLOGIN-GUEST' % greeter_id)
+ status_notify ('%s AUTOLOGIN-USER-HINT=%s' % (greeter_id, greeter.get_autologin_user_hint ()))
+ if greeter.get_autologin_session_hint () is not None:
+ status_notify ('%s AUTOLOGIN-SESSION-HINT=%s' % (greeter_id, greeter.get_autologin_session_hint ()))
+ if greeter.get_autologin_guest_hint ():
+ status_notify ('%s AUTOLOGIN-GUEST-HINT' % greeter_id)
+ if greeter.get_autologin_timeout_hint () != 0:
+ status_notify ('%s AUTOLOGIN-TIMEOUT-HINT=%s' % (greeter_id, greeter.get_autologin_timeout_hint ()))
path = os.getenv ('LIGHTDM_TEST_ROOT') + '/.s'
status_socket = socket.socket (socket.AF_UNIX, socket.SOCK_STREAM)
diff --git a/tests/src/test-qt-greeter.cpp b/tests/src/test-qt-greeter.cpp
index d2c7602a..d43a9960 100644
--- a/tests/src/test-qt-greeter.cpp
+++ b/tests/src/test-qt-greeter.cpp
@@ -71,21 +71,14 @@ void TestGreeter::printHints ()
status_notify ("%s SHOW-MANUAL-LOGIN-HINT", greeter_id);
if (!showRemoteLoginHint ())
status_notify ("%s SHOW-REMOTE-LOGIN-HINT=FALSE", greeter_id);
- int timeout = autologinTimeoutHint ();
if (autologinUserHint () != "")
- {
- if (timeout != 0)
- status_notify ("%s AUTOLOGIN-USER USERNAME=%s TIMEOUT=%d", greeter_id, greeter->autologinUserHint ().toAscii ().constData (), timeout);
- else
- status_notify ("%s AUTOLOGIN-USER USERNAME=%s", greeter_id, greeter->autologinUserHint ().toAscii ().constData ());
- }
- else if (autologinGuestHint ())
- {
- if (timeout != 0)
- status_notify ("%s AUTOLOGIN-GUEST TIMEOUT=%d", greeter_id, timeout);
- else
- status_notify ("%s AUTOLOGIN-GUEST", greeter_id);
- }
+ status_notify ("%s AUTOLOGIN-USER-HINT=%s", greeter_id, autologinUserHint ().toAscii ().constData ());
+ if (autologinGuestHint ())
+ status_notify ("%s AUTOLOGIN-GUEST-HINT", greeter_id);
+ if (autologinSessionHint () != "")
+ status_notify ("%s AUTOLOGIN-SESSION-HINT=%s", greeter_id, autologinSessionHint ().toAscii ().constData ());
+ if (autologinTimeoutHint () != 0)
+ status_notify ("%s AUTOLOGIN-TIMEOUT-HINT=%d", greeter_id, autologinTimeoutHint ());
}
void TestGreeter::idle ()
diff --git a/tests/test-autologin-session-timeout-gobject b/tests/test-autologin-session-timeout-gobject
new file mode 100755
index 00000000..19ffbd58
--- /dev/null
+++ b/tests/test-autologin-session-timeout-gobject
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner autologin-session-timeout test-gobject-greeter
diff --git a/tests/test-autologin-session-timeout-python b/tests/test-autologin-session-timeout-python
new file mode 100755
index 00000000..f3d4545b
--- /dev/null
+++ b/tests/test-autologin-session-timeout-python
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner autologin-session-timeout test-python-greeter
diff --git a/tests/test-autologin-session-timeout-qt4 b/tests/test-autologin-session-timeout-qt4
new file mode 100755
index 00000000..f790255e
--- /dev/null
+++ b/tests/test-autologin-session-timeout-qt4
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner autologin-session-timeout test-qt4-greeter
diff --git a/tests/test-autologin-session-timeout-qt5 b/tests/test-autologin-session-timeout-qt5
new file mode 100755
index 00000000..1a1ab0dc
--- /dev/null
+++ b/tests/test-autologin-session-timeout-qt5
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner autologin-session-timeout test-qt5-greeter