summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2011-07-21 12:10:19 +1000
committerRobert Ancell <robert.ancell@canonical.com>2011-07-21 12:10:19 +1000
commite8b06ed5b32e8a935956c30f9ffd5b8b9cfb9525 (patch)
tree3938747385507140ada30e79b7789e21644feba2
parentcd44932249833f05511e96e90c72d5483da302af (diff)
downloadlightdm-e8b06ed5b32e8a935956c30f9ffd5b8b9cfb9525.tar.gz
Added first Qt regression test
-rw-r--r--.bzrignore2
-rw-r--r--doc/lightdm-gobject-1-sections.txt2
-rw-r--r--doc/tmpl/greeter.sgml12
-rw-r--r--liblightdm-gobject/greeter.c20
-rw-r--r--liblightdm-gobject/lightdm/greeter.h2
-rw-r--r--liblightdm-qt/QLightDM/Greeter4
-rw-r--r--liblightdm-qt/greeter.cpp14
-rw-r--r--tests/Makefile.am49
-rw-r--r--tests/data/xgreeters/test-gobject-greeter.desktop4
-rw-r--r--tests/data/xgreeters/test-greeter.desktop4
-rw-r--r--tests/data/xgreeters/test-qt-greeter.desktop4
-rw-r--r--tests/scripts/login-guest-disabled.conf (renamed from tests/scripts/login-gobject-guest-disabled.conf)0
-rw-r--r--tests/scripts/login-guest-disabled.script (renamed from tests/scripts/login-gobject-guest-disabled.script)0
-rw-r--r--tests/scripts/login-guest-fail-setup-script.conf (renamed from tests/scripts/login-gobject-guest-fail-setup-script.conf)0
-rw-r--r--tests/scripts/login-guest-fail-setup-script.script (renamed from tests/scripts/login-gobject-guest-fail-setup-script.script)0
-rw-r--r--tests/scripts/login-guest-no-config.conf (renamed from tests/scripts/login-gobject-guest-no-config.conf)0
-rw-r--r--tests/scripts/login-guest-no-config.script (renamed from tests/scripts/login-gobject-guest-no-config.script)0
-rw-r--r--tests/scripts/login-guest-no-setup-script.conf (renamed from tests/scripts/login-gobject-guest-no-setup-script.conf)0
-rw-r--r--tests/scripts/login-guest-no-setup-script.script (renamed from tests/scripts/login-gobject-guest-no-setup-script.script)0
-rw-r--r--tests/scripts/login-guest.conf (renamed from tests/scripts/login-gobject-guest.conf)0
-rw-r--r--tests/scripts/login-guest.script (renamed from tests/scripts/login-gobject-guest.script)0
-rw-r--r--tests/scripts/login-invalid-user.conf (renamed from tests/scripts/login-gobject-invalid-user.conf)0
-rw-r--r--tests/scripts/login-invalid-user.script (renamed from tests/scripts/login-gobject-invalid-user.script)0
-rw-r--r--tests/scripts/login-logout.conf (renamed from tests/scripts/login-gobject-logout.conf)0
-rw-r--r--tests/scripts/login-logout.script (renamed from tests/scripts/login-gobject-logout.script)0
-rw-r--r--tests/scripts/login-manual.conf (renamed from tests/scripts/login-gobject-manual.conf)0
-rw-r--r--tests/scripts/login-manual.script (renamed from tests/scripts/login-gobject-manual.script)0
-rw-r--r--tests/scripts/login-no-password.conf (renamed from tests/scripts/login-gobject-no-password.conf)0
-rw-r--r--tests/scripts/login-no-password.script (renamed from tests/scripts/login-gobject-no-password.script)0
-rw-r--r--tests/scripts/login-session-crash.conf (renamed from tests/scripts/login-gobject-session-crash.conf)0
-rw-r--r--tests/scripts/login-session-crash.script (renamed from tests/scripts/login-gobject-session-crash.script)0
-rw-r--r--tests/scripts/login-wrong-password.conf (renamed from tests/scripts/login-gobject-wrong-password.conf)0
-rw-r--r--tests/scripts/login-wrong-password.script (renamed from tests/scripts/login-gobject-wrong-password.script)0
-rw-r--r--tests/scripts/login-xserver-crash.conf (renamed from tests/scripts/login-gobject-xserver-crash.conf)0
-rw-r--r--tests/scripts/login-xserver-crash.script (renamed from tests/scripts/login-gobject-xserver-crash.script)0
-rw-r--r--tests/scripts/login.conf (renamed from tests/scripts/login-gobject.conf)0
-rw-r--r--tests/scripts/login.script (renamed from tests/scripts/login-gobject.script)0
-rw-r--r--tests/src/Makefile.am18
-rw-r--r--tests/src/status.h8
-rw-r--r--tests/src/test-qt-greeter.cpp147
-rw-r--r--tests/src/test-qt-greeter.h14
-rw-r--r--tests/src/test-runner.c12
-rwxr-xr-xtests/test-autologin-logout2
-rwxr-xr-xtests/test-login-gobject2
-rwxr-xr-xtests/test-login-gobject-guest2
-rwxr-xr-xtests/test-login-gobject-guest-disabled2
-rwxr-xr-xtests/test-login-gobject-guest-fail-setup-script2
-rwxr-xr-xtests/test-login-gobject-guest-no-config2
-rwxr-xr-xtests/test-login-gobject-guest-no-setup-script2
-rwxr-xr-xtests/test-login-gobject-invalid-user2
-rwxr-xr-xtests/test-login-gobject-logout2
-rwxr-xr-xtests/test-login-gobject-manual2
-rwxr-xr-xtests/test-login-gobject-no-password2
-rwxr-xr-xtests/test-login-gobject-session-crash2
-rwxr-xr-xtests/test-login-gobject-wrong-password2
-rwxr-xr-xtests/test-login-gobject-xserver-crash2
-rwxr-xr-xtests/test-login-qt2
-rwxr-xr-xtests/test-no-config2
-rwxr-xr-xtests/test-plymouth-active-vt2
-rwxr-xr-xtests/test-plymouth-inactive-vt2
-rwxr-xr-xtests/test-plymouth-xserver-fail-start2
-rwxr-xr-xtests/test-switch-to-greeter2
-rwxr-xr-xtests/test-switch-to-guest2
-rwxr-xr-xtests/test-switch-to-user2
-rwxr-xr-xtests/test-xdmcp-login2
-rwxr-xr-xtests/test-xserver-fail-start2
66 files changed, 282 insertions, 82 deletions
diff --git a/.bzrignore b/.bzrignore
index 70a39e50..48fafc23 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -53,8 +53,10 @@ src/ldm-marshal.c
src/ldm-marshal.h
src/lightdm
tests/data/passwd
+tests/src/*_moc.cpp
tests/src/plymouth
tests/src/test-gobject-greeter
+tests/src/test-qt-greeter
tests/src/test-runner
tests/src/test-session
tests/src/test-xserver
diff --git a/doc/lightdm-gobject-1-sections.txt b/doc/lightdm-gobject-1-sections.txt
index e3d1821d..8ac42e18 100644
--- a/doc/lightdm-gobject-1-sections.txt
+++ b/doc/lightdm-gobject-1-sections.txt
@@ -118,10 +118,10 @@ LIGHTDM_USER_LIST_GET_CLASS
<SECTION>
<FILE>greeter</FILE>
<TITLE>Greeter Interface</TITLE>
-autologin_timer_expired
show_message
show_prompt
authentication_complete
+autologin_timer_expired
LightDMMessageType
LightDMPromptType
lightdm_greeter_new
diff --git a/doc/tmpl/greeter.sgml b/doc/tmpl/greeter.sgml
index d12b2998..101e7f02 100644
--- a/doc/tmpl/greeter.sgml
+++ b/doc/tmpl/greeter.sgml
@@ -80,15 +80,17 @@ static void quit_cb (LightDMGreeter *greeter)
<!-- ##### SECTION Image ##### -->
-<!-- ##### USER_FUNCTION autologin_timer_expired ##### -->
+<!-- ##### USER_FUNCTION show_message ##### -->
<para>
</para>
@greeter:
+@text:
+@type:
-<!-- ##### USER_FUNCTION show_message ##### -->
+<!-- ##### USER_FUNCTION show_prompt ##### -->
<para>
</para>
@@ -98,17 +100,15 @@ static void quit_cb (LightDMGreeter *greeter)
@type:
-<!-- ##### USER_FUNCTION show_prompt ##### -->
+<!-- ##### USER_FUNCTION authentication_complete ##### -->
<para>
</para>
@greeter:
-@text:
-@type:
-<!-- ##### USER_FUNCTION authentication_complete ##### -->
+<!-- ##### USER_FUNCTION autologin_timer_expired ##### -->
<para>
</para>
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c
index 053972d6..e7b3b0c3 100644
--- a/liblightdm-gobject/greeter.c
+++ b/liblightdm-gobject/greeter.c
@@ -269,30 +269,30 @@ handle_prompt_authentication (LightDMGreeter *greeter, guint8 *message, gsize me
for (i = 0; i < n_messages; i++)
{
- int msg_style;
- gchar *msg;
+ int style;
+ gchar *text;
- msg_style = read_int (message, message_length, offset);
- msg = read_string (message, message_length, offset);
+ style = read_int (message, message_length, offset);
+ text = read_string (message, message_length, offset);
// FIXME: Should stop on prompts?
- switch (msg_style)
+ switch (style)
{
case PAM_PROMPT_ECHO_OFF:
- g_signal_emit (G_OBJECT (greeter), signals[SHOW_PROMPT], 0, msg, LIGHTDM_PROMPT_TYPE_SECRET);
+ g_signal_emit (G_OBJECT (greeter), signals[SHOW_PROMPT], 0, text, LIGHTDM_PROMPT_TYPE_SECRET);
break;
case PAM_PROMPT_ECHO_ON:
- g_signal_emit (G_OBJECT (greeter), signals[SHOW_PROMPT], 0, msg, LIGHTDM_PROMPT_TYPE_QUESTION);
+ g_signal_emit (G_OBJECT (greeter), signals[SHOW_PROMPT], 0, text, LIGHTDM_PROMPT_TYPE_QUESTION);
break;
case PAM_ERROR_MSG:
- g_signal_emit (G_OBJECT (greeter), signals[SHOW_MESSAGE], 0, msg, LIGHTDM_MESSAGE_TYPE_ERROR);
+ g_signal_emit (G_OBJECT (greeter), signals[SHOW_MESSAGE], 0, text, LIGHTDM_MESSAGE_TYPE_ERROR);
break;
case PAM_TEXT_INFO:
- g_signal_emit (G_OBJECT (greeter), signals[SHOW_MESSAGE], 0, msg, LIGHTDM_MESSAGE_TYPE_INFO);
+ g_signal_emit (G_OBJECT (greeter), signals[SHOW_MESSAGE], 0, text, LIGHTDM_MESSAGE_TYPE_INFO);
break;
}
- g_free (msg);
+ g_free (text);
}
}
diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h
index b0786ef7..157af3fc 100644
--- a/liblightdm-gobject/lightdm/greeter.h
+++ b/liblightdm-gobject/lightdm/greeter.h
@@ -54,8 +54,8 @@ typedef struct
{
GObjectClass parent_class;
- void (*show_prompt)(LightDMGreeter *greeter, const gchar *text, LightDMPromptType type);
void (*show_message)(LightDMGreeter *greeter, const gchar *text, LightDMMessageType type);
+ void (*show_prompt)(LightDMGreeter *greeter, const gchar *text, LightDMPromptType type);
void (*authentication_complete)(LightDMGreeter *greeter);
void (*autologin_timer_expired)(LightDMGreeter *greeter);
} LightDMGreeterClass;
diff --git a/liblightdm-qt/QLightDM/Greeter b/liblightdm-qt/QLightDM/Greeter
index f6170e31..2f41f868 100644
--- a/liblightdm-qt/QLightDM/Greeter
+++ b/liblightdm-qt/QLightDM/Greeter
@@ -67,8 +67,8 @@ namespace QLightDM
bool startSessionSync(const QString &session=QString());
signals:
- void showPrompt(QString prompt, PromptType type);
- void showMessage(QString message, MessageType type);
+ void showMessage(QString text, QLightDM::MessageType type);
+ void showPrompt(QString text, QLightDM::PromptType type);
void authenticationComplete();
void autologinTimerExpired();
diff --git a/liblightdm-qt/greeter.cpp b/liblightdm-qt/greeter.cpp
index 69aee65f..6b4ca2e7 100644
--- a/liblightdm-qt/greeter.cpp
+++ b/liblightdm-qt/greeter.cpp
@@ -388,23 +388,23 @@ void Greeter::onRead(int fd)
qDebug() << "Prompt user with " << nMessages << " message(s)";
for(int i = 0; i < nMessages; i++)
{
- int msgStyle = readInt(message, messageLength, &offset);
- QString msg = readString(message, messageLength, &offset);
+ int style = readInt(message, messageLength, &offset);
+ QString text = readString(message, messageLength, &offset);
// FIXME: Should stop on prompts?
- switch (msgStyle)
+ switch (style)
{
case PAM_PROMPT_ECHO_OFF:
- emit showPrompt(msg, PROMPT_TYPE_SECRET);
+ emit showPrompt(text, PROMPT_TYPE_SECRET);
break;
case PAM_PROMPT_ECHO_ON:
- emit showPrompt(msg, PROMPT_TYPE_QUESTION);
+ emit showPrompt(text, PROMPT_TYPE_QUESTION);
break;
case PAM_ERROR_MSG:
- emit showMessage(msg, MESSAGE_TYPE_ERROR);
+ emit showMessage(text, MESSAGE_TYPE_ERROR);
break;
case PAM_TEXT_INFO:
- emit showMessage(msg, MESSAGE_TYPE_INFO);
+ emit showMessage(text, MESSAGE_TYPE_INFO);
break;
}
}
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 398432fa..b6fa1f31 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -19,6 +19,7 @@ TESTS = \
test-login-gobject-guest-disabled \
test-login-gobject-guest-no-setup-script \
test-login-gobject-guest-fail-setup-script \
+ test-login-qt \
test-plymouth-active-vt \
test-plymouth-inactive-vt \
test-plymouth-xserver-fail-start \
@@ -46,30 +47,30 @@ EXTRA_DIST = \
scripts/headless.script \
scripts/login-gobject.conf \
scripts/login-gobject.script \
- scripts/login-gobject-guest.conf \
- scripts/login-gobject-guest.script \
- scripts/login-gobject-guest-disabled.conf \
- scripts/login-gobject-guest-disabled.script \
- scripts/login-gobject-guest-fail-setup-script.conf \
- scripts/login-gobject-guest-fail-setup-script.script \
- scripts/login-gobject-guest-no-config.conf \
- scripts/login-gobject-guest-no-config.script \
- scripts/login-gobject-guest-no-setup-script.conf \
- scripts/login-gobject-guest-no-setup-script.script \
- scripts/login-gobject-invalid-user.conf \
- scripts/login-gobject-invalid-user.script \
- scripts/login-gobject-logout.conf \
- scripts/login-gobject-logout.script \
- scripts/login-gobject-manual.conf \
- scripts/login-gobject-manual.script \
- scripts/login-gobject-no-password.conf \
- scripts/login-gobject-no-password.script \
- scripts/login-gobject-session-crash.conf \
- scripts/login-gobject-session-crash.script \
- scripts/login-gobject-wrong-password.conf \
- scripts/login-gobject-wrong-password.script \
- scripts/login-gobject-xserver-crash.conf \
- scripts/login-gobject-xserver-crash.script \
+ scripts/login-guest.conf \
+ scripts/login-guest.script \
+ scripts/login-guest-disabled.conf \
+ scripts/login-guest-disabled.script \
+ scripts/login-guest-fail-setup-script.conf \
+ scripts/login-guest-fail-setup-script.script \
+ scripts/login-guest-no-config.conf \
+ scripts/login-guest-no-config.script \
+ scripts/login-guest-no-setup-script.conf \
+ scripts/login-guest-no-setup-script.script \
+ scripts/login-invalid-user.conf \
+ scripts/login-invalid-user.script \
+ scripts/login-logout.conf \
+ scripts/login-logout.script \
+ scripts/login-manual.conf \
+ scripts/login-manual.script \
+ scripts/login-no-password.conf \
+ scripts/login-no-password.script \
+ scripts/login-session-crash.conf \
+ scripts/login-session-crash.script \
+ scripts/login-wrong-password.conf \
+ scripts/login-wrong-password.script \
+ scripts/login-xserver-crash.conf \
+ scripts/login-xserver-crash.script \
scripts/no-config.script \
scripts/plymouth-active-vt.conf \
scripts/plymouth-active-vt.script \
diff --git a/tests/data/xgreeters/test-gobject-greeter.desktop b/tests/data/xgreeters/test-gobject-greeter.desktop
new file mode 100644
index 00000000..19e841ca
--- /dev/null
+++ b/tests/data/xgreeters/test-gobject-greeter.desktop
@@ -0,0 +1,4 @@
+[Desktop Entry]
+Name=Test GObject Greeter
+Comment=LightDM test GObject greeter
+Exec=test-gobject-greeter
diff --git a/tests/data/xgreeters/test-greeter.desktop b/tests/data/xgreeters/test-greeter.desktop
deleted file mode 100644
index fcad730f..00000000
--- a/tests/data/xgreeters/test-greeter.desktop
+++ /dev/null
@@ -1,4 +0,0 @@
-[Desktop Entry]
-Name=Test Greeter
-Comment=LightDM test greeter
-Exec=test-gobject-greeter
diff --git a/tests/data/xgreeters/test-qt-greeter.desktop b/tests/data/xgreeters/test-qt-greeter.desktop
new file mode 100644
index 00000000..64870e6d
--- /dev/null
+++ b/tests/data/xgreeters/test-qt-greeter.desktop
@@ -0,0 +1,4 @@
+[Desktop Entry]
+Name=Test Qt Greeter
+Comment=LightDM test Qt greeter
+Exec=test-qt-greeter
diff --git a/tests/scripts/login-gobject-guest-disabled.conf b/tests/scripts/login-guest-disabled.conf
index f09a8c48..f09a8c48 100644
--- a/tests/scripts/login-gobject-guest-disabled.conf
+++ b/tests/scripts/login-guest-disabled.conf
diff --git a/tests/scripts/login-gobject-guest-disabled.script b/tests/scripts/login-guest-disabled.script
index dc83a232..dc83a232 100644
--- a/tests/scripts/login-gobject-guest-disabled.script
+++ b/tests/scripts/login-guest-disabled.script
diff --git a/tests/scripts/login-gobject-guest-fail-setup-script.conf b/tests/scripts/login-guest-fail-setup-script.conf
index 51c88208..51c88208 100644
--- a/tests/scripts/login-gobject-guest-fail-setup-script.conf
+++ b/tests/scripts/login-guest-fail-setup-script.conf
diff --git a/tests/scripts/login-gobject-guest-fail-setup-script.script b/tests/scripts/login-guest-fail-setup-script.script
index 8f9ec184..8f9ec184 100644
--- a/tests/scripts/login-gobject-guest-fail-setup-script.script
+++ b/tests/scripts/login-guest-fail-setup-script.script
diff --git a/tests/scripts/login-gobject-guest-no-config.conf b/tests/scripts/login-guest-no-config.conf
index 50fc6fb5..50fc6fb5 100644
--- a/tests/scripts/login-gobject-guest-no-config.conf
+++ b/tests/scripts/login-guest-no-config.conf
diff --git a/tests/scripts/login-gobject-guest-no-config.script b/tests/scripts/login-guest-no-config.script
index 817c7522..817c7522 100644
--- a/tests/scripts/login-gobject-guest-no-config.script
+++ b/tests/scripts/login-guest-no-config.script
diff --git a/tests/scripts/login-gobject-guest-no-setup-script.conf b/tests/scripts/login-guest-no-setup-script.conf
index 51c88208..51c88208 100644
--- a/tests/scripts/login-gobject-guest-no-setup-script.conf
+++ b/tests/scripts/login-guest-no-setup-script.conf
diff --git a/tests/scripts/login-gobject-guest-no-setup-script.script b/tests/scripts/login-guest-no-setup-script.script
index f4738239..f4738239 100644
--- a/tests/scripts/login-gobject-guest-no-setup-script.script
+++ b/tests/scripts/login-guest-no-setup-script.script
diff --git a/tests/scripts/login-gobject-guest.conf b/tests/scripts/login-guest.conf
index 15dad7af..15dad7af 100644
--- a/tests/scripts/login-gobject-guest.conf
+++ b/tests/scripts/login-guest.conf
diff --git a/tests/scripts/login-gobject-guest.script b/tests/scripts/login-guest.script
index 56ebe033..56ebe033 100644
--- a/tests/scripts/login-gobject-guest.script
+++ b/tests/scripts/login-guest.script
diff --git a/tests/scripts/login-gobject-invalid-user.conf b/tests/scripts/login-invalid-user.conf
index 498627f7..498627f7 100644
--- a/tests/scripts/login-gobject-invalid-user.conf
+++ b/tests/scripts/login-invalid-user.conf
diff --git a/tests/scripts/login-gobject-invalid-user.script b/tests/scripts/login-invalid-user.script
index 5e54492c..5e54492c 100644
--- a/tests/scripts/login-gobject-invalid-user.script
+++ b/tests/scripts/login-invalid-user.script
diff --git a/tests/scripts/login-gobject-logout.conf b/tests/scripts/login-logout.conf
index 58aa488a..58aa488a 100644
--- a/tests/scripts/login-gobject-logout.conf
+++ b/tests/scripts/login-logout.conf
diff --git a/tests/scripts/login-gobject-logout.script b/tests/scripts/login-logout.script
index c296e671..c296e671 100644
--- a/tests/scripts/login-gobject-logout.script
+++ b/tests/scripts/login-logout.script
diff --git a/tests/scripts/login-gobject-manual.conf b/tests/scripts/login-manual.conf
index c345967d..c345967d 100644
--- a/tests/scripts/login-gobject-manual.conf
+++ b/tests/scripts/login-manual.conf
diff --git a/tests/scripts/login-gobject-manual.script b/tests/scripts/login-manual.script
index ffd6d17f..ffd6d17f 100644
--- a/tests/scripts/login-gobject-manual.script
+++ b/tests/scripts/login-manual.script
diff --git a/tests/scripts/login-gobject-no-password.conf b/tests/scripts/login-no-password.conf
index bb442c44..bb442c44 100644
--- a/tests/scripts/login-gobject-no-password.conf
+++ b/tests/scripts/login-no-password.conf
diff --git a/tests/scripts/login-gobject-no-password.script b/tests/scripts/login-no-password.script
index ce46e851..ce46e851 100644
--- a/tests/scripts/login-gobject-no-password.script
+++ b/tests/scripts/login-no-password.script
diff --git a/tests/scripts/login-gobject-session-crash.conf b/tests/scripts/login-session-crash.conf
index 690b8b2e..690b8b2e 100644
--- a/tests/scripts/login-gobject-session-crash.conf
+++ b/tests/scripts/login-session-crash.conf
diff --git a/tests/scripts/login-gobject-session-crash.script b/tests/scripts/login-session-crash.script
index 1534be8f..1534be8f 100644
--- a/tests/scripts/login-gobject-session-crash.script
+++ b/tests/scripts/login-session-crash.script
diff --git a/tests/scripts/login-gobject-wrong-password.conf b/tests/scripts/login-wrong-password.conf
index 5778c93c..5778c93c 100644
--- a/tests/scripts/login-gobject-wrong-password.conf
+++ b/tests/scripts/login-wrong-password.conf
diff --git a/tests/scripts/login-gobject-wrong-password.script b/tests/scripts/login-wrong-password.script
index 461bce79..461bce79 100644
--- a/tests/scripts/login-gobject-wrong-password.script
+++ b/tests/scripts/login-wrong-password.script
diff --git a/tests/scripts/login-gobject-xserver-crash.conf b/tests/scripts/login-xserver-crash.conf
index 1e9fcc92..1e9fcc92 100644
--- a/tests/scripts/login-gobject-xserver-crash.conf
+++ b/tests/scripts/login-xserver-crash.conf
diff --git a/tests/scripts/login-gobject-xserver-crash.script b/tests/scripts/login-xserver-crash.script
index 9d47566d..9d47566d 100644
--- a/tests/scripts/login-gobject-xserver-crash.script
+++ b/tests/scripts/login-xserver-crash.script
diff --git a/tests/scripts/login-gobject.conf b/tests/scripts/login.conf
index e232614d..e232614d 100644
--- a/tests/scripts/login-gobject.conf
+++ b/tests/scripts/login.conf
diff --git a/tests/scripts/login-gobject.script b/tests/scripts/login.script
index a9a9f91c..a9a9f91c 100644
--- a/tests/scripts/login-gobject.script
+++ b/tests/scripts/login.script
diff --git a/tests/src/Makefile.am b/tests/src/Makefile.am
index cc4522c9..138aafbd 100644
--- a/tests/src/Makefile.am
+++ b/tests/src/Makefile.am
@@ -1,6 +1,10 @@
noinst_PROGRAMS = test-runner test-xserver test-gobject-greeter test-session plymouth
dist_noinst_SCRIPTS = test-setup-guest test-cleanup-guest
+if COMPILE_LIBLIGHTDM_QT
+noinst_PROGRAMS += test-qt-greeter
+endif
+
test_runner_CFLAGS = \
$(WARN_CFLAGS) \
$(GLIB_CFLAGS) \
@@ -38,6 +42,17 @@ test_gobject_greeter_LDADD = \
$(GOBJECT_LIBS) \
$(XCB_LIBS)
+test-qt-greeter_moc.cpp: test-qt-greeter.h
+ moc $< -o $@
+test_qt_greeter_SOURCES = test-qt-greeter.cpp test-qt-greeter_moc.cpp status.c status.h
+test_qt_greeter_CXXFLAGS = \
+ -I$(top_srcdir)/liblightdm-qt \
+ $(LIGHTDM_QT_GREETER_CFLAGS)
+test_qt_greeter_LDADD = \
+ -L$(top_builddir)/liblightdm-qt \
+ -llightdm-qt-1 \
+ $(LIGHTDM_QT_GREETER_LIBS)
+
test_session_SOURCES = test-session.c status.c status.h
test_session_CFLAGS = \
$(WARN_CFLAGS) \
@@ -53,3 +68,6 @@ plymouth_CFLAGS = \
$(GLIB_CFLAGS)
plymouth_LDADD = \
$(GLIB_LIBS)
+
+CLEANFILES = \
+ test-qt-greeter_moc.cpp
diff --git a/tests/src/status.h b/tests/src/status.h
index 99488ae9..5a1265b4 100644
--- a/tests/src/status.h
+++ b/tests/src/status.h
@@ -1,6 +1,14 @@
#ifndef _STATUS_H_
#define _STATUS_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+
void notify_status (const char *format, ...);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _STATUS_H_ */
diff --git a/tests/src/test-qt-greeter.cpp b/tests/src/test-qt-greeter.cpp
new file mode 100644
index 00000000..6ebe9d03
--- /dev/null
+++ b/tests/src/test-qt-greeter.cpp
@@ -0,0 +1,147 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <signal.h>
+#include <xcb/xcb.h>
+#include <QLightDM/Greeter>
+#include <QtCore/QSettings>
+#include <QtCore/QDebug>
+#include <QtCore/QCoreApplication>
+
+#include "test-qt-greeter.h"
+#include "status.h"
+
+static QSettings *config = NULL;
+
+TestGreeter::TestGreeter ()
+{
+ connect (this, SIGNAL(showMessage(QString, QLightDM::MessageType)), SLOT(showMessage(QString, QLightDM::MessageType)));
+ connect (this, SIGNAL(showPrompt(QString, QLightDM::PromptType)), SLOT(showPrompt(QString, QLightDM::PromptType)));
+ connect (this, SIGNAL(authenticationComplete()), SLOT(authenticationComplete()));
+}
+
+void TestGreeter::showMessage (QString text, QLightDM::MessageType type)
+{
+ notify_status ("GREETER SHOW-MESSAGE TEXT=\"%s\"", text.toAscii ().constData ());
+}
+
+void TestGreeter::showPrompt (QString text, QLightDM::PromptType type)
+{
+ notify_status ("GREETER SHOW-PROMPT TEXT=\"%s\"", text.toAscii ().constData ());
+
+ QString username = config->value ("test-greeter-config/username").toString ();
+ QString password = config->value ("test-greeter-config/password").toString ();
+
+ QString response;
+ if (config->value ("test-greeter-config/prompt-username", "false") == "true")
+ {
+ config->setValue ("test-greeter-config/prompt-username", "false");
+ response = username;
+ }
+ else if (password != "")
+ response = password;
+
+ if (response != "")
+ {
+ notify_status ("GREETER RESPOND TEXT=\"%s\"", response.toAscii ().constData ());
+ respond (response);
+ }
+}
+
+void TestGreeter::authenticationComplete ()
+{
+ notify_status ("GREETER AUTHENTICATION-COMPLETE AUTHENTICATED=%s", isAuthenticated () ? "TRUE" : "FALSE");
+ if (!isAuthenticated ())
+ return;
+
+ if (startSessionSync ())
+ {
+ notify_status ("GREETER QUIT");
+ exit (EXIT_SUCCESS);
+ }
+ else
+ notify_status ("GREETER SESSION-FAILED");
+}
+
+static void
+signal_cb (int signum)
+{
+ notify_status ("GREETER TERMINATE SIGNAL=%d", signum);
+ exit (EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+ QCoreApplication app(argc, argv);
+
+ signal (SIGINT, signal_cb);
+ signal (SIGTERM, signal_cb);
+
+ notify_status ("GREETER START");
+
+ if (getenv ("LIGHTDM_TEST_CONFIG"))
+ config = new QSettings(getenv ("LIGHTDM_TEST_CONFIG"), QSettings::IniFormat);
+ else
+ config = new QSettings();
+
+ xcb_connection_t *connection = xcb_connect (NULL, NULL);
+
+ if (xcb_connection_has_error (connection))
+ {
+ fprintf (stderr, "Error connecting to X server\n");
+ return EXIT_FAILURE;
+ }
+
+ notify_status ("GREETER CONNECT-XSERVER %s", getenv ("DISPLAY"));
+
+ TestGreeter *greeter = new TestGreeter();
+
+ notify_status ("GREETER CONNECT-TO-DAEMON");
+ if (!greeter->connectSync())
+ return EXIT_FAILURE;
+
+ notify_status ("GREETER CONNECTED-TO-DAEMON");
+
+ if (greeter->selectUserHint() != "")
+ {
+ notify_status ("GREETER AUTHENTICATE-SELECTED USERNAME=%s", greeter->selectUserHint ().toAscii ().constData ());
+ greeter->authenticate (greeter->selectUserHint ());
+ }
+ else
+ {
+ QString login_lock = QString (getenv ("LIGHTDM_TEST_HOME_DIR")) + "/.greeter-logged-in";
+ FILE *f = fopen (login_lock.toAscii (), "r");
+ if (f == NULL)
+ {
+ if (config->value ("test-greeter-config/login-guest", "false") == "true")
+ {
+ notify_status ("GREETER AUTHENTICATE-GUEST");
+ greeter->authenticateAsGuest ();
+ }
+ else if (config->value ("test-greeter-config/prompt-username", "false") == "true")
+ {
+ notify_status ("GREETER AUTHENTICATE");
+ greeter->authenticate ();
+ }
+ else
+ {
+ QString username = config->value ("test-greeter-config/username").toString ();
+ if (username != "")
+ {
+ notify_status ("GREETER AUTHENTICATE USERNAME=%s", username.toAscii ().constData ());
+ greeter->authenticate (username);
+ }
+ }
+
+ /* Write lock to stop repeatedly logging in */
+ f = fopen (login_lock.toAscii (), "w");
+ fclose (f);
+ }
+ else
+ {
+ qDebug () << "Not logging in, lock file detected " << login_lock;
+ fclose (f);
+ }
+ }
+
+ return app.exec();
+}
diff --git a/tests/src/test-qt-greeter.h b/tests/src/test-qt-greeter.h
new file mode 100644
index 00000000..c224759f
--- /dev/null
+++ b/tests/src/test-qt-greeter.h
@@ -0,0 +1,14 @@
+#include <QLightDM/Greeter>
+
+class TestGreeter : public QLightDM::Greeter
+{
+ Q_OBJECT
+
+public:
+ TestGreeter ();
+
+private slots:
+ void showMessage(QString text, QLightDM::MessageType type);
+ void showPrompt(QString text, QLightDM::PromptType type);
+ void authenticationComplete();
+};
diff --git a/tests/src/test-runner.c b/tests/src/test-runner.c
index 487f9d28..abd49df0 100644
--- a/tests/src/test-runner.c
+++ b/tests/src/test-runner.c
@@ -433,7 +433,7 @@ int
main (int argc, char **argv)
{
GMainLoop *loop;
- gchar *script_name, *config_file, *config_path, *path, *path1, *path2, *ld_library_path, *home_dir;
+ gchar *greeter = NULL, *script_name, *config_file, *config_path, *path, *path1, *path2, *ld_library_path, *home_dir;
GString *passwd_data;
int status_socket;
gchar *dbus_command, dbus_address[1024];
@@ -453,9 +453,9 @@ main (int argc, char **argv)
loop = g_main_loop_new (NULL, FALSE);
- if (argc != 2)
+ if (argc != 2 && argc != 3)
{
- g_printerr ("Usage %s SCRIPT-NAME\n", argv[0]);
+ g_printerr ("Usage %s SCRIPT-NAME [GREETER]\n", argv[0]);
quit (EXIT_FAILURE);
}
script_name = argv[1];
@@ -463,6 +463,9 @@ main (int argc, char **argv)
config_path = g_build_filename (SRCDIR, "tests", "scripts", config_file, NULL);
g_free (config_file);
+ if (argc == 3)
+ greeter = argv[2];
+
load_script (script_name);
g_print ("----------------------------------------\n");
@@ -583,7 +586,8 @@ main (int argc, char **argv)
g_string_append_printf (command_line, " --config %s", config_path);
g_string_append (command_line, " --no-root");
g_string_append(command_line, " --xserver-command=test-xserver");
- g_string_append (command_line, " --greeter-session=test-greeter");
+ if (greeter)
+ g_string_append_printf (command_line, " --greeter-session=%s", greeter);
g_string_append (command_line, " --user-session=test-session");
g_string_append_printf (command_line, " --passwd-file %s/passwd", temp_dir);
g_string_append_printf (command_line, " --cache-dir %s/cache", temp_dir);
diff --git a/tests/test-autologin-logout b/tests/test-autologin-logout
index a70d368b..5935c6f2 100755
--- a/tests/test-autologin-logout
+++ b/tests/test-autologin-logout
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner autologin-logout
+./src/test-runner autologin-logout test-gobject-greeter
diff --git a/tests/test-login-gobject b/tests/test-login-gobject
index 132d454e..2fd28290 100755
--- a/tests/test-login-gobject
+++ b/tests/test-login-gobject
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject
+./src/test-runner login test-gobject-greeter
diff --git a/tests/test-login-gobject-guest b/tests/test-login-gobject-guest
index 539b251a..7a06c8aa 100755
--- a/tests/test-login-gobject-guest
+++ b/tests/test-login-gobject-guest
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-guest
+./src/test-runner login-guest test-gobject-greeter
diff --git a/tests/test-login-gobject-guest-disabled b/tests/test-login-gobject-guest-disabled
index 5230845a..feab997d 100755
--- a/tests/test-login-gobject-guest-disabled
+++ b/tests/test-login-gobject-guest-disabled
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-guest-disabled
+./src/test-runner login-guest-disabled test-gobject-greeter
diff --git a/tests/test-login-gobject-guest-fail-setup-script b/tests/test-login-gobject-guest-fail-setup-script
index 3d244b9c..936337a3 100755
--- a/tests/test-login-gobject-guest-fail-setup-script
+++ b/tests/test-login-gobject-guest-fail-setup-script
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-guest-fail-setup-script
+./src/test-runner login-guest-fail-setup-script test-gobject-greeter
diff --git a/tests/test-login-gobject-guest-no-config b/tests/test-login-gobject-guest-no-config
index 8df23f92..6e7c6dd2 100755
--- a/tests/test-login-gobject-guest-no-config
+++ b/tests/test-login-gobject-guest-no-config
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-guest-no-config
+./src/test-runner login-guest-no-config test-gobject-greeter
diff --git a/tests/test-login-gobject-guest-no-setup-script b/tests/test-login-gobject-guest-no-setup-script
index ae76a8c6..52f76cd6 100755
--- a/tests/test-login-gobject-guest-no-setup-script
+++ b/tests/test-login-gobject-guest-no-setup-script
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-guest-no-setup-script
+./src/test-runner login-guest-no-setup-script test-gobject-greeter
diff --git a/tests/test-login-gobject-invalid-user b/tests/test-login-gobject-invalid-user
index 0994b621..5feb87f3 100755
--- a/tests/test-login-gobject-invalid-user
+++ b/tests/test-login-gobject-invalid-user
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-invalid-user
+./src/test-runner login-invalid-user test-gobject-greeter
diff --git a/tests/test-login-gobject-logout b/tests/test-login-gobject-logout
index ed49d930..0830d44c 100755
--- a/tests/test-login-gobject-logout
+++ b/tests/test-login-gobject-logout
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-logout
+./src/test-runner login-logout test-gobject-greeter
diff --git a/tests/test-login-gobject-manual b/tests/test-login-gobject-manual
index a33ce953..29946f3f 100755
--- a/tests/test-login-gobject-manual
+++ b/tests/test-login-gobject-manual
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-manual
+./src/test-runner login-manual test-gobject-greeter \ No newline at end of file
diff --git a/tests/test-login-gobject-no-password b/tests/test-login-gobject-no-password
index 79267594..eae947a9 100755
--- a/tests/test-login-gobject-no-password
+++ b/tests/test-login-gobject-no-password
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-no-password
+./src/test-runner login-no-password test-gobject-greeter
diff --git a/tests/test-login-gobject-session-crash b/tests/test-login-gobject-session-crash
index fe96aded..3835decb 100755
--- a/tests/test-login-gobject-session-crash
+++ b/tests/test-login-gobject-session-crash
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-session-crash
+./src/test-runner login-session-crash test-gobject-greeter
diff --git a/tests/test-login-gobject-wrong-password b/tests/test-login-gobject-wrong-password
index b0960445..d9640ea7 100755
--- a/tests/test-login-gobject-wrong-password
+++ b/tests/test-login-gobject-wrong-password
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-wrong-password
+./src/test-runner login-wrong-password test-gobject-greeter
diff --git a/tests/test-login-gobject-xserver-crash b/tests/test-login-gobject-xserver-crash
index 6de9ef3d..65001c76 100755
--- a/tests/test-login-gobject-xserver-crash
+++ b/tests/test-login-gobject-xserver-crash
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner login-gobject-xserver-crash
+./src/test-runner login-xserver-crash test-gobject-greeter
diff --git a/tests/test-login-qt b/tests/test-login-qt
new file mode 100755
index 00000000..163f9ab4
--- /dev/null
+++ b/tests/test-login-qt
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/test-runner login test-qt-greeter
diff --git a/tests/test-no-config b/tests/test-no-config
index 84972d44..92fd44fc 100755
--- a/tests/test-no-config
+++ b/tests/test-no-config
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner no-config
+./src/test-runner no-config test-gobject-greeter
diff --git a/tests/test-plymouth-active-vt b/tests/test-plymouth-active-vt
index e00c63e8..7b67cf63 100755
--- a/tests/test-plymouth-active-vt
+++ b/tests/test-plymouth-active-vt
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner plymouth-active-vt
+./src/test-runner plymouth-active-vt test-gobject-greeter
diff --git a/tests/test-plymouth-inactive-vt b/tests/test-plymouth-inactive-vt
index 65b75bdb..d4380550 100755
--- a/tests/test-plymouth-inactive-vt
+++ b/tests/test-plymouth-inactive-vt
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner plymouth-inactive-vt
+./src/test-runner plymouth-inactive-vt test-gobject-greeter
diff --git a/tests/test-plymouth-xserver-fail-start b/tests/test-plymouth-xserver-fail-start
index fd125d3e..d015457e 100755
--- a/tests/test-plymouth-xserver-fail-start
+++ b/tests/test-plymouth-xserver-fail-start
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner plymouth-xserver-fail-start
+./src/test-runner plymouth-xserver-fail-start test-gobject-greeter
diff --git a/tests/test-switch-to-greeter b/tests/test-switch-to-greeter
index 4106c304..6953846b 100755
--- a/tests/test-switch-to-greeter
+++ b/tests/test-switch-to-greeter
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner switch-to-greeter
+./src/test-runner switch-to-greeter test-gobject-greeter
diff --git a/tests/test-switch-to-guest b/tests/test-switch-to-guest
index ba52aa97..75ce1123 100755
--- a/tests/test-switch-to-guest
+++ b/tests/test-switch-to-guest
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner switch-to-guest
+./src/test-runner switch-to-guest test-gobject-greeter
diff --git a/tests/test-switch-to-user b/tests/test-switch-to-user
index 172822ea..716b06d9 100755
--- a/tests/test-switch-to-user
+++ b/tests/test-switch-to-user
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner switch-to-user
+./src/test-runner switch-to-user test-gobject-greeter
diff --git a/tests/test-xdmcp-login b/tests/test-xdmcp-login
index 91ada353..d2a66b82 100755
--- a/tests/test-xdmcp-login
+++ b/tests/test-xdmcp-login
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner xdmcp-login
+./src/test-runner xdmcp-login test-gobject-greeter
diff --git a/tests/test-xserver-fail-start b/tests/test-xserver-fail-start
index dc3eddb7..bd88bbea 100755
--- a/tests/test-xserver-fail-start
+++ b/tests/test-xserver-fail-start
@@ -1,2 +1,2 @@
#!/bin/sh
-./src/test-runner xserver-fail-start
+./src/test-runner xserver-fail-start test-gobject-greeter