diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2012-02-28 16:10:01 +1100 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2012-02-28 16:10:01 +1100 |
commit | 3a0488018cbd380eb7c764e486f1a43e749d9c61 (patch) | |
tree | 8b10f53a842c6b25e54c0656f8760376a78fde76 /tests | |
parent | 1d1f307891899c489bb568c8391b6fad347fe954 (diff) | |
download | lightdm-3a0488018cbd380eb7c764e486f1a43e749d9c61.tar.gz |
Don't send session stdout to .xsession-errors, add regression tests to confirm logging is working
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 4 | ||||
-rw-r--r-- | tests/scripts/session-stderr.conf | 35 | ||||
-rw-r--r-- | tests/scripts/session-stdout.conf | 35 | ||||
-rw-r--r-- | tests/src/test-session.c | 24 | ||||
-rwxr-xr-x | tests/test-session-stderr | 2 | ||||
-rwxr-xr-x | tests/test-session-stdout | 2 |
6 files changed, 102 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 6600704e..3ee37195 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -17,6 +17,8 @@ TESTS = \ test-autologin-guest \ test-autologin-guest-fail-setup-script \ test-autologin-guest-logout \ + test-session-stdout \ + test-session-stderr \ test-user-renamed \ test-user-renamed-invalid \ test-keyboard-layout \ @@ -163,6 +165,8 @@ EXTRA_DIST = \ scripts/script-hook-fail-display-setup.conf \ scripts/script-hook-fail-greeter-setup.conf \ scripts/script-hook-fail-session-setup.conf \ + scripts/session-stdout.conf \ + scripts/session-stderr.conf \ scripts/switch-to-greeter.conf \ scripts/switch-to-guest.conf \ scripts/switch-to-user.conf \ diff --git a/tests/scripts/session-stderr.conf b/tests/scripts/session-stderr.conf new file mode 100644 index 00000000..498dbc92 --- /dev/null +++ b/tests/scripts/session-stderr.conf @@ -0,0 +1,35 @@ +# +# Check session stderr is written to ~/.xsession-errors +# + +[LightDM] +minimum-display-number=50 + +[SeatDefaults] +autologin-user=alice + +#?RUNNER DAEMON-START + +# X server starts +#?XSERVER :50 START +#?XSERVER :50 INDICATE-READY + +# LightDM connects to X server +#?XSERVER :50 ACCEPT-CONNECT + +# Session starts +#?SESSION :50 START USER=alice +#?XSERVER :50 ACCEPT-CONNECT +#?SESSION :50 CONNECT-XSERVER + +# Write to stderr and check it shows up in the log +#?*SESSION :50 WRITE-STDERR TEXT=THIS-SHOULD-BE-IN-XSESSION-ERRORS +#?*SESSION :50 READ-XSESSION-ERRORS +#?SESSION :50 READ-XSESSION-ERRORS TEXT=THIS-SHOULD-BE-IN-XSESSION-ERRORS + +# Cleanup +#?*STOP-DAEMON +# Don't know what order they will terminate +#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) +#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/session-stdout.conf b/tests/scripts/session-stdout.conf new file mode 100644 index 00000000..cc48b500 --- /dev/null +++ b/tests/scripts/session-stdout.conf @@ -0,0 +1,35 @@ +# +# Check session stdout is not written anywhere +# + +[LightDM] +minimum-display-number=50 + +[SeatDefaults] +autologin-user=alice + +#?RUNNER DAEMON-START + +# X server starts +#?XSERVER :50 START +#?XSERVER :50 INDICATE-READY + +# LightDM connects to X server +#?XSERVER :50 ACCEPT-CONNECT + +# Session starts +#?SESSION :50 START USER=alice +#?XSERVER :50 ACCEPT-CONNECT +#?SESSION :50 CONNECT-XSERVER + +# Write to stdout and check it doesn't end up in the session error log (you should also manually check when running the test if it is printed) +#?*SESSION :50 WRITE-STDOUT TEXT=YOU-SHOULD-NOT-SEE-THIS +#?*SESSION :50 READ-XSESSION-ERRORS +#?SESSION :50 READ-XSESSION-ERRORS TEXT= + +# Cleanup +#?*STOP-DAEMON +# Don't know what order they will terminate +#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) +#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/src/test-session.c b/tests/src/test-session.c index 36dc7f85..8f66e0a3 100644 --- a/tests/src/test-session.c +++ b/tests/src/test-session.c @@ -70,6 +70,30 @@ request_cb (const gchar *request) status_notify ("SESSION %s LOCK-SESSION", getenv ("DISPLAY")); } g_free (r); + + r = g_strdup_printf ("SESSION %s WRITE-STDOUT TEXT=", getenv ("DISPLAY")); + if (g_str_has_prefix (request, r)) + g_print ("%s\n", request + strlen (r)); + g_free (r); + + r = g_strdup_printf ("SESSION %s WRITE-STDERR TEXT=", getenv ("DISPLAY")); + if (g_str_has_prefix (request, r)) + g_printerr ("%s\n", request + strlen (r)); + g_free (r); + + r = g_strdup_printf ("SESSION %s READ-XSESSION-ERRORS", getenv ("DISPLAY")); + if (strcmp (request, r) == 0) + { + gchar *contents; + GError *error = NULL; + + if (g_file_get_contents (".xsession-errors", &contents, NULL, &error)) + status_notify ("SESSION %s READ-XSESSION-ERRORS TEXT=%s", getenv ("DISPLAY"), contents); + else + status_notify ("SESSION %s READ-XSESSION-ERRORS ERROR=%s", getenv ("DISPLAY"), error->message); + g_clear_error (&error); + } + g_free (r); } int diff --git a/tests/test-session-stderr b/tests/test-session-stderr new file mode 100755 index 00000000..2d6fe353 --- /dev/null +++ b/tests/test-session-stderr @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner session-stderr test-gobject-greeter diff --git a/tests/test-session-stdout b/tests/test-session-stdout new file mode 100755 index 00000000..6566af55 --- /dev/null +++ b/tests/test-session-stdout @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner session-stdout test-gobject-greeter |