From 3ac8c4249b016e19cc1a51918cd8d369e2d5b320 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Fri, 11 May 2018 16:39:28 +1200 Subject: Fix test failing due to random ordering of results --- tests/scripts/sessions.conf | 4 ++-- tests/src/test-gobject-greeter.c | 7 +++++++ tests/src/test-python-greeter | 8 ++++++++ tests/src/test-qt-greeter.cpp | 10 ++++++---- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/tests/scripts/sessions.conf b/tests/scripts/sessions.conf index fa25652d..95a1b7db 100644 --- a/tests/scripts/sessions.conf +++ b/tests/scripts/sessions.conf @@ -28,11 +28,11 @@ user-session=default #?*GREETER-X-0 LOG-SESSIONS #?GREETER-X-0 LOG-SESSION KEY=alternative #?GREETER-X-0 LOG-SESSION KEY=default +#?GREETER-X-0 LOG-SESSION KEY=greeter #?GREETER-X-0 LOG-SESSION KEY=mir -#?GREETER-X-0 LOG-SESSION KEY=named-legacy #?GREETER-X-0 LOG-SESSION KEY=named +#?GREETER-X-0 LOG-SESSION KEY=named-legacy #?GREETER-X-0 LOG-SESSION KEY=wayland -#?GREETER-X-0 LOG-SESSION KEY=greeter # Cleanup #?*STOP-DAEMON diff --git a/tests/src/test-gobject-greeter.c b/tests/src/test-gobject-greeter.c index 43b8b96f..54fff9a9 100644 --- a/tests/src/test-gobject-greeter.c +++ b/tests/src/test-gobject-greeter.c @@ -166,6 +166,12 @@ read_shared_data_finished (GObject *object, GAsyncResult *result, gpointer data) status_notify ("%s READ-SHARED-DATA ERROR=%s", greeter_id, error->message); } +static int +compare_session (gconstpointer a, gconstpointer b) +{ + return strcmp (lightdm_session_get_key (LIGHTDM_SESSION (a)), lightdm_session_get_key (LIGHTDM_SESSION (b))); +} + static void request_cb (const gchar *name, GHashTable *params) { @@ -312,6 +318,7 @@ request_cb (const gchar *name, GHashTable *params) else if (strcmp (name, "LOG-SESSIONS") == 0) { GList *sessions = lightdm_get_sessions (); + sessions = g_list_sort (sessions, compare_session); for (GList *link = sessions; link; link = link->next) { LightDMSession *session = link->data; diff --git a/tests/src/test-python-greeter b/tests/src/test-python-greeter index 2d7382d9..04af1b0e 100755 --- a/tests/src/test-python-greeter +++ b/tests/src/test-python-greeter @@ -107,6 +107,14 @@ def request_cb (channel, condition): r = '%s LOG-SESSIONS' % greeter_id if request == r: sessions = LightDM.get_sessions (); + def compare_session (a, b): + if a.get_key () > b.get_key (): + return 1 + elif a.get_key () < b.get_key (): + return -1 + else: + return 0 + sessions.sort (compare_session) for session in sessions: status_notify ('%s LOG-SESSION KEY=%s' % (greeter_id, session.get_key ())) diff --git a/tests/src/test-qt-greeter.cpp b/tests/src/test-qt-greeter.cpp index 87edc729..e95afa4f 100644 --- a/tests/src/test-qt-greeter.cpp +++ b/tests/src/test-qt-greeter.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include "test-qt-greeter.h" #include "status.h" @@ -190,11 +191,12 @@ request_cb (const gchar *name, GHashTable *params) else if (strcmp (name, "LOG-SESSIONS") == 0) { + QStringList names; for (int i = 0; i < sessions_model->rowCount (QModelIndex ()); i++) - { - QString key = sessions_model->data (sessions_model->index (i, 0), QLightDM::SessionsModel::KeyRole).toString (); - status_notify ("%s LOG-SESSION KEY=%s", greeter_id, qPrintable (key)); - } + names.append (sessions_model->data (sessions_model->index (i, 0), QLightDM::SessionsModel::KeyRole).toString ()); + names.sort (); + for (int i = 0; i < names.size (); i++) + status_notify ("%s LOG-SESSION KEY=%s", greeter_id, qPrintable (names.at (i))); } else if (strcmp (name, "GET-CAN-SUSPEND") == 0) -- cgit v1.2.1