]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Add regression tests for power functionality
authorRobert Ancell <robert.ancell@canonical.com>
Mon, 15 Apr 2013 02:21:48 +0000 (14:21 +1200)
committerRobert Ancell <robert.ancell@canonical.com>
Mon, 15 Apr 2013 02:21:48 +0000 (14:21 +1200)
Required modifying PowerInterface::canRestart() and PowerInteface::canShutdown()

27 files changed:
liblightdm-qt/QLightDM/power.h
liblightdm-qt/power.cpp
tests/Makefile.am
tests/scripts/power-no-console-kit-or-login1.conf [new file with mode: 0644]
tests/scripts/power-no-console-kit.conf [new file with mode: 0644]
tests/scripts/power-no-login1.conf [new file with mode: 0644]
tests/scripts/power.conf [new file with mode: 0644]
tests/src/test-gobject-greeter.c
tests/src/test-python-greeter
tests/src/test-qt-greeter.cpp
tests/src/test-runner.c
tests/test-gobject-power [new file with mode: 0755]
tests/test-gobject-power-no-console-kit [new file with mode: 0755]
tests/test-gobject-power-no-console-kit-or-login1 [new file with mode: 0755]
tests/test-gobject-power-no-login1 [new file with mode: 0755]
tests/test-python-power [new file with mode: 0755]
tests/test-python-power-no-console-kit [new file with mode: 0755]
tests/test-python-power-no-console-kit-or-login1 [new file with mode: 0755]
tests/test-python-power-no-login1 [new file with mode: 0755]
tests/test-qt4-power [new file with mode: 0755]
tests/test-qt4-power-no-console-kit [new file with mode: 0755]
tests/test-qt4-power-no-console-kit-or-login1 [new file with mode: 0755]
tests/test-qt4-power-no-login1 [new file with mode: 0755]
tests/test-qt5-power [new file with mode: 0755]
tests/test-qt5-power-no-console-kit [new file with mode: 0755]
tests/test-qt5-power-no-console-kit-or-login1 [new file with mode: 0755]
tests/test-qt5-power-no-login1 [new file with mode: 0755]

index 86eb2b2e508ddfa10c0843903ff0587f67f71578..59667feab65ebef52fe877adea84827b67969874 100644 (file)
@@ -36,8 +36,8 @@ namespace QLightDM
     public Q_SLOTS:
         void suspend();
         void hibernate();
-        void shutdown();
-        void restart();
+        bool shutdown();
+        bool restart();
 
     private:
         class PowerInterfacePrivate;
index 3eabc23f8283a91c9b783c7b6b8cfbf5a57a141a..180104f2ef36a1156433f793b3f42a7df4b08a6a 100644 (file)
@@ -99,12 +99,14 @@ bool PowerInterface::canShutdown()
     return false;
 }
 
-void PowerInterface::shutdown()
+bool PowerInterface::shutdown()
 {
+    QDBusReply<void> reply;
     if (d->login1Interface->isValid())
-        d->login1Interface->call("PowerOff", false);
+        reply = d->login1Interface->call("PowerOff", false);
     else
-        d->consoleKitInterface->call("Stop");
+        reply = d->consoleKitInterface->call("Stop");
+    return reply.isValid();
 }
 
 bool PowerInterface::canRestart()
@@ -125,12 +127,14 @@ bool PowerInterface::canRestart()
     return false;
 }
 
-void PowerInterface::restart()
+bool PowerInterface::restart()
 {
+    QDBusReply<void> reply;
     if (d->login1Interface->isValid())
-        d->login1Interface->call("Reboot", false);
+        reply = d->login1Interface->call("Reboot", false);
     else
-        d->consoleKitInterface->call("Restart");
+        reply = d->consoleKitInterface->call("Restart");
+    return reply.isValid();
 }
 
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
index 1301d95080fc3210c9465210db23ec20ba7bb2da..6865cce27d4a8da83ecc7c865afe62761dc5ec36 100644 (file)
@@ -137,6 +137,14 @@ TESTS = \
        test-no-console-kit \
        test-no-login1 \
        test-no-console-kit-or-login1 \
+       test-gobject-power \
+       test-gobject-power-no-console-kit \
+       test-gobject-power-no-login1 \
+       test-gobject-power-no-console-kit-or-login1 \
+       test-python-power \
+       test-python-power-no-console-kit \
+       test-python-power-no-login1 \
+       test-python-power-no-console-kit-or-login1 \
        test-open-file-descriptors \
        test-xdmcp-open-file-descriptors
 
@@ -172,7 +180,11 @@ TESTS += \
        test-login-qt4-guest-no-setup-script \
        test-login-qt4-guest-fail-setup-script \
        test-login-qt4-guest-logout \
-       test-login-qt4-remote-session
+       test-login-qt4-remote-session \
+       test-qt4-power \
+       test-qt4-power-no-console-kit \
+       test-qt4-power-no-login1 \
+       test-qt4-power-no-console-kit-or-login1
 endif
 
 if COMPILE_LIBLIGHTDM_QT5
@@ -201,7 +213,11 @@ TESTS += \
        test-login-qt5-guest-no-setup-script \
        test-login-qt5-guest-fail-setup-script \
        test-login-qt5-guest-logout \
-       test-login-qt5-remote-session
+       test-login-qt5-remote-session \
+       test-qt4-power \
+       test-qt4-power-no-console-kit \
+       test-qt4-power-no-login1 \
+       test-qt4-power-no-console-kit-or-login1
 endif
 
 EXTRA_DIST = \
@@ -292,6 +308,10 @@ EXTRA_DIST = \
        scripts/no-login1.conf \
        scripts/open-file-descriptors.conf \
        scripts/pam.conf \
+       scripts/power.conf \
+       scripts/power-no-console-kit.conf \
+       scripts/power-no-console-kit-or-login1.conf \
+       scripts/power-no-login1.conf \
        scripts/plymouth-active-vt.conf \
        scripts/plymouth-inactive-vt.conf \
        scripts/plymouth-no-seat.conf \
diff --git a/tests/scripts/power-no-console-kit-or-login1.conf b/tests/scripts/power-no-console-kit-or-login1.conf
new file mode 100644 (file)
index 0000000..1458996
--- /dev/null
@@ -0,0 +1,49 @@
+#
+# Check can do power operations from the greeter when not ConsoleKit or login1 service (disallowed)
+#
+
+[test-runner-config]
+disable-console-kit=true
+disable-login1=true
+
+[LightDM]
+minimum-display-number=50
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER :50 START
+#?XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+#?XSERVER :50 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER :50 START
+#?XSERVER :50 ACCEPT-CONNECT
+#?GREETER :50 CONNECT-XSERVER
+#?GREETER :50 CONNECT-TO-DAEMON
+#?GREETER :50 CONNECTED-TO-DAEMON
+
+# See if can restart
+#?*GREETER :50 GET-CAN-RESTART
+#?GREETER :50 CAN-RESTART ALLOWED=FALSE
+
+# Restart
+#?*GREETER :50 RESTART
+#?GREETER :50 FAIL-RESTART
+
+# See if can shutdown
+#?*GREETER :50 GET-CAN-SHUTDOWN
+#?GREETER :50 CAN-SHUTDOWN ALLOWED=FALSE
+
+# Shutdown
+#?*GREETER :50 SHUTDOWN
+#?GREETER :50 FAIL-SHUTDOWN
+
+# Cleanup
+#?*STOP-DAEMON
+# Don't know what order they will terminate
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/power-no-console-kit.conf b/tests/scripts/power-no-console-kit.conf
new file mode 100644 (file)
index 0000000..de026b8
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# Check can do power operations from the greeter when no ConsoleKit service
+#
+
+[test-runner-config]
+disable-console-kit=true
+
+[LightDM]
+minimum-display-number=50
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER :50 START
+#?XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+#?XSERVER :50 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER :50 START
+#?XSERVER :50 ACCEPT-CONNECT
+#?GREETER :50 CONNECT-XSERVER
+#?GREETER :50 CONNECT-TO-DAEMON
+#?GREETER :50 CONNECTED-TO-DAEMON
+
+# See if can restart
+#?*GREETER :50 GET-CAN-RESTART
+#?LOGIN1 CAN-REBOOT
+#?GREETER :50 CAN-RESTART ALLOWED=TRUE
+
+# Restart
+#?*GREETER :50 RESTART
+#?LOGIN1 REBOOT
+
+# See if can shutdown
+#?*GREETER :50 GET-CAN-SHUTDOWN
+#?LOGIN1 CAN-POWER-OFF
+#?GREETER :50 CAN-SHUTDOWN ALLOWED=TRUE
+
+# Shutdown
+#?*GREETER :50 SHUTDOWN
+#?LOGIN1 POWER-OFF
+
+# Cleanup
+#?*STOP-DAEMON
+# Don't know what order they will terminate
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/power-no-login1.conf b/tests/scripts/power-no-login1.conf
new file mode 100644 (file)
index 0000000..9a19fd4
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# Check can do power operations from the greeter when no login1 service (falls back to ConsoleKit)
+#
+
+[test-runner-config]
+disable-login1=true
+
+[LightDM]
+minimum-display-number=50
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER :50 START
+#?XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+#?XSERVER :50 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER :50 START
+#?XSERVER :50 ACCEPT-CONNECT
+#?GREETER :50 CONNECT-XSERVER
+#?GREETER :50 CONNECT-TO-DAEMON
+#?GREETER :50 CONNECTED-TO-DAEMON
+
+# See if can restart
+#?*GREETER :50 GET-CAN-RESTART
+#?CONSOLE-KIT CAN-RESTART
+#?GREETER :50 CAN-RESTART ALLOWED=TRUE
+
+# Restart
+#?*GREETER :50 RESTART
+#?CONSOLE-KIT RESTART
+
+# See if can shutdown
+#?*GREETER :50 GET-CAN-SHUTDOWN
+#?CONSOLE-KIT CAN-STOP
+#?GREETER :50 CAN-SHUTDOWN ALLOWED=TRUE
+
+# Shutdown
+#?*GREETER :50 SHUTDOWN
+#?CONSOLE-KIT STOP
+
+# Cleanup
+#?*STOP-DAEMON
+# Don't know what order they will terminate
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?RUNNER DAEMON-EXIT STATUS=0
diff --git a/tests/scripts/power.conf b/tests/scripts/power.conf
new file mode 100644 (file)
index 0000000..c67679e
--- /dev/null
@@ -0,0 +1,47 @@
+#
+# Check can do power operations from the greeter
+#
+
+[LightDM]
+minimum-display-number=50
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER :50 START
+#?XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+#?XSERVER :50 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER :50 START
+#?XSERVER :50 ACCEPT-CONNECT
+#?GREETER :50 CONNECT-XSERVER
+#?GREETER :50 CONNECT-TO-DAEMON
+#?GREETER :50 CONNECTED-TO-DAEMON
+
+# See if can restart
+#?*GREETER :50 GET-CAN-RESTART
+#?LOGIN1 CAN-REBOOT
+#?GREETER :50 CAN-RESTART ALLOWED=TRUE
+
+# Restart
+#?*GREETER :50 RESTART
+#?LOGIN1 REBOOT
+
+# See if can shutdown
+#?*GREETER :50 GET-CAN-SHUTDOWN
+#?LOGIN1 CAN-POWER-OFF
+#?GREETER :50 CAN-SHUTDOWN ALLOWED=TRUE
+
+# Shutdown
+#?*GREETER :50 SHUTDOWN
+#?LOGIN1 POWER-OFF
+
+# Cleanup
+#?*STOP-DAEMON
+# Don't know what order they will terminate
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?RUNNER DAEMON-EXIT STATUS=0
index b80b705a85901917ee70e70b9a0486a65151a45d..4e490cff8ce86a38175145b07e487161323462e3 100644 (file)
@@ -194,6 +194,42 @@ request_cb (const gchar *request)
         status_notify ("GREETER %s LOG-LANGUAGE USERNAME=%s LANGUAGE=%s", getenv ("DISPLAY"), username, language ? language : "");
     }
     g_free (r);
+
+    r = g_strdup_printf ("GREETER %s GET-CAN-RESTART", getenv ("DISPLAY"));
+    if (strcmp (request, r) == 0)
+    {
+        gboolean can_restart = lightdm_get_can_restart ();
+        status_notify ("GREETER %s CAN-RESTART ALLOWED=%s", getenv ("DISPLAY"), can_restart ? "TRUE" : "FALSE");
+    }
+    g_free (r);
+
+    r = g_strdup_printf ("GREETER %s RESTART", getenv ("DISPLAY"));
+    if (strcmp (request, r) == 0)
+    {
+        GError *error = NULL;
+        if (!lightdm_restart (&error))
+            status_notify ("GREETER %s FAIL-RESTART", getenv ("DISPLAY"));
+        g_clear_error (&error);
+    }
+    g_free (r);
+
+    r = g_strdup_printf ("GREETER %s GET-CAN-SHUTDOWN", getenv ("DISPLAY"));
+    if (strcmp (request, r) == 0)
+    {
+        gboolean can_shutdown = lightdm_get_can_shutdown ();
+        status_notify ("GREETER %s CAN-SHUTDOWN ALLOWED=%s", getenv ("DISPLAY"), can_shutdown ? "TRUE" : "FALSE");
+    }
+    g_free (r);
+
+    r = g_strdup_printf ("GREETER %s SHUTDOWN", getenv ("DISPLAY"));
+    if (strcmp (request, r) == 0)
+    {
+        GError *error = NULL;
+        if (!lightdm_shutdown (&error))
+            status_notify ("GREETER %s FAIL-SHUTDOWN", getenv ("DISPLAY"));
+        g_clear_error (&error);
+    }
+    g_free (r);
 }
 
 int
index 91050f180d3dfe1d3dd2ed75ef526c80dd3a177c..13d510fdb2bee184e2cff257228086ce5b6ff1b2 100755 (executable)
@@ -94,6 +94,36 @@ def request_cb (channel, condition):
             language = ''
         status_notify ('GREETER %s LOG-LANGUAGE USERNAME=%s LANGUAGE=%s' % (os.getenv ('DISPLAY'), username, language))
 
+    r = 'GREETER %s GET-CAN-RESTART' % os.getenv ('DISPLAY')
+    if request == r:
+        if LightDM.get_can_restart ():
+            allowed = "TRUE"
+        else:
+            allowed = "FALSE"
+        status_notify ('GREETER %s CAN-RESTART ALLOWED=%s' % (os.getenv ('DISPLAY'), allowed))
+
+    r = 'GREETER %s RESTART' % os.getenv ('DISPLAY')
+    if request == r:
+        try:
+            LightDM.restart ()
+        except:
+            status_notify ('GREETER %s FAIL-RESTART' % os.getenv ('DISPLAY'))
+
+    r = 'GREETER %s GET-CAN-SHUTDOWN' % os.getenv ('DISPLAY')
+    if request == r:
+        if LightDM.get_can_shutdown ():
+            allowed = "TRUE"
+        else:
+            allowed = "FALSE"
+        status_notify ('GREETER %s CAN-SHUTDOWN ALLOWED=%s' % (os.getenv ('DISPLAY'), allowed))
+
+    r = 'GREETER %s SHUTDOWN' % os.getenv ('DISPLAY')
+    if request == r:
+        try:
+            LightDM.shutdown ()
+        except:
+            status_notify ('GREETER %s FAIL-SHUTDOWN' % os.getenv ('DISPLAY'))
+
     return True
 
 path = os.getenv ('LIGHTDM_TEST_ROOT') + '/.status-socket'
index 65926250b7c1d1abed56f5a537e28ecd515f9e11..2bf64703930f45ae6de3ef41890d39de60f52a84 100644 (file)
@@ -5,6 +5,7 @@
 #include <glib-object.h>
 #include <xcb/xcb.h>
 #include <QLightDM/Greeter>
+#include <QLightDM/Power>
 #include <QtCore/QSettings>
 #include <QtCore/QDebug>
 #include <QtCore/QCoreApplication>
@@ -14,6 +15,7 @@
 
 static QCoreApplication *app = NULL;
 static QSettings *config = NULL;
+static QLightDM::PowerInterface *power = NULL;
 static TestGreeter *greeter = NULL;
 
 TestGreeter::TestGreeter ()
@@ -122,6 +124,38 @@ request_cb (const gchar *request)
             status_notify ("GREETER %s SESSION-FAILED", getenv ("DISPLAY"));
     }
     g_free (r);
+
+    r = g_strdup_printf ("GREETER %s GET-CAN-RESTART", getenv ("DISPLAY"));
+    if (strcmp (request, r) == 0)
+    {
+        gboolean can_restart = power->canRestart ();
+        status_notify ("GREETER %s CAN-RESTART ALLOWED=%s", getenv ("DISPLAY"), can_restart ? "TRUE" : "FALSE");
+    }
+    g_free (r);
+
+    r = g_strdup_printf ("GREETER %s RESTART", getenv ("DISPLAY"));
+    if (strcmp (request, r) == 0)
+    {
+        if (!power->restart ())
+            status_notify ("GREETER %s FAIL-RESTART", getenv ("DISPLAY"));
+    }
+    g_free (r);
+
+    r = g_strdup_printf ("GREETER %s GET-CAN-SHUTDOWN", getenv ("DISPLAY"));
+    if (strcmp (request, r) == 0)
+    {
+        gboolean can_shutdown = power->canShutdown ();
+        status_notify ("GREETER %s CAN-SHUTDOWN ALLOWED=%s", getenv ("DISPLAY"), can_shutdown ? "TRUE" : "FALSE");
+    }
+    g_free (r);
+
+    r = g_strdup_printf ("GREETER %s SHUTDOWN", getenv ("DISPLAY"));
+    if (strcmp (request, r) == 0)
+    {
+        if (!power->shutdown ())
+            status_notify ("GREETER %s FAIL-SHUTDOWN", getenv ("DISPLAY"));
+    }
+    g_free (r);
 }
 
 int
@@ -152,6 +186,8 @@ main(int argc, char *argv[])
 
     status_notify ("GREETER %s CONNECT-XSERVER", getenv ("DISPLAY"));
 
+    power = new QLightDM::PowerInterface();
+
     greeter = new TestGreeter();
   
     status_notify ("GREETER %s CONNECT-TO-DAEMON", getenv ("DISPLAY"));
index 813a3733a33131417ce30ca33973ce91032b7e3d..46253994e48ceed9ee239503b826bd1a43db995c 100644 (file)
@@ -678,9 +678,15 @@ handle_ck_call (GDBusConnection       *connection,
                 gpointer               user_data)
 {
     if (strcmp (method_name, "CanRestart") == 0)
+    {
+        check_status ("CONSOLE-KIT CAN-RESTART");
         g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", TRUE));
+    }
     else if (strcmp (method_name, "CanStop") == 0)
+    {
+        check_status ("CONSOLE-KIT CAN-STOP");
         g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", TRUE));
+    }
     else if (strcmp (method_name, "CloseSession") == 0)
         g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", TRUE));
     else if (strcmp (method_name, "OpenSession") == 0)
@@ -715,9 +721,15 @@ handle_ck_call (GDBusConnection       *connection,
         g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "Unable to find session for cookie");
     }
     else if (strcmp (method_name, "Restart") == 0)
+    {
+        check_status ("CONSOLE-KIT RESTART");
         g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
+    }
     else if (strcmp (method_name, "Stop") == 0)
+    {
+        check_status ("CONSOLE-KIT STOP");
         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);
 }
@@ -848,19 +860,27 @@ handle_login1_call (GDBusConnection       *connection,
                     gpointer               user_data)
 {
     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 ("()"));
     }
-    if (strcmp (method_name, "CanPowerOff") == 0)
+    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, "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
diff --git a/tests/test-gobject-power b/tests/test-gobject-power
new file mode 100755 (executable)
index 0000000..da2743a
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power test-gobject-greeter
diff --git a/tests/test-gobject-power-no-console-kit b/tests/test-gobject-power-no-console-kit
new file mode 100755 (executable)
index 0000000..3bd175c
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-console-kit test-gobject-greeter
diff --git a/tests/test-gobject-power-no-console-kit-or-login1 b/tests/test-gobject-power-no-console-kit-or-login1
new file mode 100755 (executable)
index 0000000..11abed1
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-console-kit-or-login1 test-gobject-greeter
diff --git a/tests/test-gobject-power-no-login1 b/tests/test-gobject-power-no-login1
new file mode 100755 (executable)
index 0000000..c59b888
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-login1 test-gobject-greeter
diff --git a/tests/test-python-power b/tests/test-python-power
new file mode 100755 (executable)
index 0000000..8cc7ec4
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power test-python-greeter
diff --git a/tests/test-python-power-no-console-kit b/tests/test-python-power-no-console-kit
new file mode 100755 (executable)
index 0000000..7136108
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-console-kit test-python-greeter
diff --git a/tests/test-python-power-no-console-kit-or-login1 b/tests/test-python-power-no-console-kit-or-login1
new file mode 100755 (executable)
index 0000000..ecc5a3f
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-console-kit-or-login1 test-python-greeter
diff --git a/tests/test-python-power-no-login1 b/tests/test-python-power-no-login1
new file mode 100755 (executable)
index 0000000..526abc2
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-login1 test-python-greeter
diff --git a/tests/test-qt4-power b/tests/test-qt4-power
new file mode 100755 (executable)
index 0000000..11d7cb2
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power test-qt4-greeter
diff --git a/tests/test-qt4-power-no-console-kit b/tests/test-qt4-power-no-console-kit
new file mode 100755 (executable)
index 0000000..91df1a1
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-console-kit test-qt4-greeter
diff --git a/tests/test-qt4-power-no-console-kit-or-login1 b/tests/test-qt4-power-no-console-kit-or-login1
new file mode 100755 (executable)
index 0000000..577ce86
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-console-kit-or-login1 test-qt4-greeter
diff --git a/tests/test-qt4-power-no-login1 b/tests/test-qt4-power-no-login1
new file mode 100755 (executable)
index 0000000..929176f
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-login1 test-qt4-greeter
diff --git a/tests/test-qt5-power b/tests/test-qt5-power
new file mode 100755 (executable)
index 0000000..de0f4f0
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power test-qt5-greeter
diff --git a/tests/test-qt5-power-no-console-kit b/tests/test-qt5-power-no-console-kit
new file mode 100755 (executable)
index 0000000..f8d2718
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-console-kit test-qt5-greeter
diff --git a/tests/test-qt5-power-no-console-kit-or-login1 b/tests/test-qt5-power-no-console-kit-or-login1
new file mode 100755 (executable)
index 0000000..9658857
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-console-kit-or-login1 test-qt5-greeter
diff --git a/tests/test-qt5-power-no-login1 b/tests/test-qt5-power-no-login1
new file mode 100755 (executable)
index 0000000..6fe8689
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner power-no-login1 test-qt5-greeter