diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2016-01-25 16:00:32 +1300 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2016-01-25 16:00:32 +1300 |
commit | b1231a284fdec2074bc3bfd19036d3dffa44033c (patch) | |
tree | 8ebc8bb7d0d70bf9180a99233ddc9780711d110f | |
parent | 3c438ca4a21212f21618889d35fe0637aa8c33be (diff) | |
download | lightdm-b1231a284fdec2074bc3bfd19036d3dffa44033c.tar.gz |
Add a test for adding local X servers
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rw-r--r-- | tests/scripts/add-local-x-seat.conf | 47 | ||||
-rw-r--r-- | tests/src/test-runner.c | 19 | ||||
-rwxr-xr-x | tests/test-add-local-x-seat | 2 |
4 files changed, 70 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 38b1f4ec..770d96a5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -208,6 +208,7 @@ TESTS = \ test-power-no-services-gobject \ test-open-file-descriptors \ test-xdmcp-server-open-file-descriptors \ + test-add-local-x-seat \ test-multi-seat \ test-multi-seat-seat0-non-graphical \ test-multi-seat-seat0-non-graphical-disabled \ @@ -386,6 +387,7 @@ EXTRA_DIST = \ data/sessions/wayland.desktop \ scripts/0-additional.conf \ scripts/1-additional.conf \ + scripts/add-local-x-seat.conf \ scripts/additional-config.conf \ scripts/additional-config-priority.conf \ scripts/additional-system-config.conf \ diff --git a/tests/scripts/add-local-x-seat.conf b/tests/scripts/add-local-x-seat.conf new file mode 100644 index 00000000..02f70fa8 --- /dev/null +++ b/tests/scripts/add-local-x-seat.conf @@ -0,0 +1,47 @@ +# +# Check can run a local X server on demand +# + +# Start a remote X server to use +#?*START-XSERVER ARGS=":98 -listen tcp" +#?XSERVER-98 START LISTEN-TCP + +#?*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 + +# Register the local X server with LightDM +#?*ADD-LOCAL-X-SEAT DISPLAY=98 + +# LightDM connects to X server +#?XSERVER-98 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-127.0.0.1:98 START XDG_SEAT=xremote0 XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?XSERVER-98 ACCEPT-CONNECT +#?GREETER-X-127.0.0.1:98 CONNECT-XSERVER +#?GREETER-X-127.0.0.1:98 CONNECT-TO-DAEMON +#?GREETER-X-127.0.0.1:98 CONNECTED-TO-DAEMON + +# Cleanup +#?*STOP-DAEMON +#?GREETER-X-0 TERMINATE SIGNAL=15 +#?GREETER-X-127.0.0.1:98 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/src/test-runner.c b/tests/src/test-runner.c index 479a2ffa..5694e5f4 100644 --- a/tests/src/test-runner.c +++ b/tests/src/test-runner.c @@ -557,6 +557,25 @@ handle_command (const gchar *command) if (v) seat->can_multi_session = strcmp (v, "TRUE") == 0; } + else if (strcmp (name, "ADD-LOCAL-X-SEAT") == 0) + { + GVariant *result; + const gchar *v; + + v = g_hash_table_lookup (params, "DISPLAY"); + result = g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL), + "org.freedesktop.DisplayManager", + "/org/freedesktop/DisplayManager", + "org.freedesktop.DisplayManager", + "AddLocalXSeat", + g_variant_new ("(i)", v ? atoi (v) : -1), + G_VARIANT_TYPE ("(o)"), + G_DBUS_CALL_FLAGS_NONE, + G_MAXINT, + NULL, + NULL); + g_variant_unref (result); + } else if (strcmp (name, "UPDATE-SEAT") == 0) { Login1Seat *seat; diff --git a/tests/test-add-local-x-seat b/tests/test-add-local-x-seat new file mode 100755 index 00000000..b64eedbc --- /dev/null +++ b/tests/test-add-local-x-seat @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner add-local-x-seat test-gobject-greeter |