diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2012-03-26 17:50:17 +1100 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2012-03-26 17:50:17 +1100 |
commit | 08599f5ff7d7945bc994f5e7671e50673a5d3fe2 (patch) | |
tree | 9114a8985e64000e4a7b67512ce772c42900783e /tests | |
parent | 07e35c5c625fa9ce73dd58c927421678b33dcccc (diff) | |
download | lightdm-08599f5ff7d7945bc994f5e7671e50673a5d3fe2.tar.gz |
Backup .xsession-errors on login
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 4 | ||||
-rw-r--r-- | tests/scripts/session-stderr-backup.conf | 75 | ||||
-rw-r--r-- | tests/scripts/session-stderr-multi-write.conf | 36 | ||||
-rw-r--r-- | tests/scripts/session-stderr.conf | 4 | ||||
-rw-r--r-- | tests/scripts/session-stdout.conf | 4 | ||||
-rw-r--r-- | tests/src/test-session.c | 15 | ||||
-rwxr-xr-x | tests/test-session-stderr-backup | 2 | ||||
-rwxr-xr-x | tests/test-session-stderr-multi-write | 2 |
8 files changed, 131 insertions, 11 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index a26996e8..11e35486 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -25,6 +25,8 @@ TESTS = \ test-group-membership \ test-session-stdout \ test-session-stderr \ + test-session-stderr-multi-write \ + test-session-stderr-backup \ test-xauthority \ test-system-xauthority \ test-user-renamed \ @@ -203,6 +205,8 @@ EXTRA_DIST = \ scripts/script-hook-fail-session-setup.conf \ scripts/session-stdout.conf \ scripts/session-stderr.conf \ + scripts/session-stderr-multi-write.conf \ + scripts/session-stderr-backup.conf \ scripts/switch-to-greeter.conf \ scripts/switch-to-guest.conf \ scripts/switch-to-user.conf \ diff --git a/tests/scripts/session-stderr-backup.conf b/tests/scripts/session-stderr-backup.conf new file mode 100644 index 00000000..3c0dea46 --- /dev/null +++ b/tests/scripts/session-stderr-backup.conf @@ -0,0 +1,75 @@ +# +# Check session log is backed up and restart on second login +# + +[LightDM] +minimum-display-number=50 + +[SeatDefaults] +autologin-user=no-password1 + +#?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=no-password1 +#?XSERVER :50 ACCEPT-CONNECT +#?SESSION :50 CONNECT-XSERVER + +# Write to stderr and check it shows up in the log +#?*SESSION :50 WRITE-STDERR TEXT=FIRST-SESSION +#?*SESSION :50 READ FILE=.xsession-errors +#?SESSION :50 READ FILE=.xsession-errors TEXT=FIRST-SESSION + +# Logout session +#?*SESSION :50 LOGOUT + +# X server stops +#?XSERVER :50 TERMINATE SIGNAL=15 + +# 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 + +# Log in +#?*GREETER :50 AUTHENTICATE USERNAME=no-password1 +#?GREETER :50 AUTHENTICATION-COMPLETE USERNAME=no-password1 AUTHENTICATED=TRUE +#?*GREETER :50 START-SESSION +#?GREETER :50 TERMINATE SIGNAL=15 + +# Session starts +#?SESSION :50 START USER=no-password1 +#?XSERVER :50 ACCEPT-CONNECT +#?SESSION :50 CONNECT-XSERVER + +# Write to stderr and check it shows up in the log +#?*SESSION :50 WRITE-STDERR TEXT=SECOND-SESSION +#?*SESSION :50 READ FILE=.xsession-errors +#?SESSION :50 READ FILE=.xsession-errors TEXT=SECOND-SESSION + +# Check first log is backed up +#?*SESSION :50 READ FILE=.xsession-errors.old +#?SESSION :50 READ FILE=.xsession-errors.old TEXT=FIRST-SESSION + +# 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-stderr-multi-write.conf b/tests/scripts/session-stderr-multi-write.conf new file mode 100644 index 00000000..f7800785 --- /dev/null +++ b/tests/scripts/session-stderr-multi-write.conf @@ -0,0 +1,36 @@ +# +# Check session stderr is written to ~/.xsession-errors and multiple writes are appended +# + +[LightDM] +minimum-display-number=50 + +[SeatDefaults] +autologin-user=have-password1 + +#?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=have-password1 +#?XSERVER :50 ACCEPT-CONNECT +#?SESSION :50 CONNECT-XSERVER + +# Write to stderr and check all text ends up in log +#?*SESSION :50 WRITE-STDERR TEXT=MULTI- +#?*SESSION :50 WRITE-STDERR TEXT=WRITE +#?*SESSION :50 READ FILE=.xsession-errors +#?SESSION :50 READ FILE=.xsession-errors TEXT=MULTI-WRITE + +# 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-stderr.conf b/tests/scripts/session-stderr.conf index d1ec54d4..d0caa9e0 100644 --- a/tests/scripts/session-stderr.conf +++ b/tests/scripts/session-stderr.conf @@ -24,8 +24,8 @@ autologin-user=have-password1 # 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 +#?*SESSION :50 READ FILE=.xsession-errors +#?SESSION :50 READ FILE=.xsession-errors TEXT=THIS-SHOULD-BE-IN-XSESSION-ERRORS # Cleanup #?*STOP-DAEMON diff --git a/tests/scripts/session-stdout.conf b/tests/scripts/session-stdout.conf index 5d07e745..59b95e89 100644 --- a/tests/scripts/session-stdout.conf +++ b/tests/scripts/session-stdout.conf @@ -24,8 +24,8 @@ autologin-user=have-password1 # 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= +#?*SESSION :50 READ FILE=.xsession-errors +#?SESSION :50 READ FILE=.xsession-errors TEXT= # Cleanup #?*STOP-DAEMON diff --git a/tests/src/test-session.c b/tests/src/test-session.c index 3d77f0be..92599dc4 100644 --- a/tests/src/test-session.c +++ b/tests/src/test-session.c @@ -116,24 +116,25 @@ request_cb (const gchar *request) 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_print ("%s", 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_printerr ("%s", request + strlen (r)); g_free (r); - r = g_strdup_printf ("SESSION %s READ-XSESSION-ERRORS", getenv ("DISPLAY")); - if (strcmp (request, r) == 0) + r = g_strdup_printf ("SESSION %s READ FILE=", getenv ("DISPLAY")); + if (g_str_has_prefix (request, r)) { + const gchar *name = request + strlen (r); 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); + if (g_file_get_contents (name, &contents, NULL, &error)) + status_notify ("SESSION %s READ FILE=%s TEXT=%s", getenv ("DISPLAY"), name, contents); else - status_notify ("SESSION %s READ-XSESSION-ERRORS ERROR=%s", getenv ("DISPLAY"), error->message); + status_notify ("SESSION %s READ FILE=%s ERROR=%s", getenv ("DISPLAY"), name, error->message); g_clear_error (&error); } g_free (r); diff --git a/tests/test-session-stderr-backup b/tests/test-session-stderr-backup new file mode 100755 index 00000000..d11e911f --- /dev/null +++ b/tests/test-session-stderr-backup @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner session-stderr-backup test-gobject-greeter diff --git a/tests/test-session-stderr-multi-write b/tests/test-session-stderr-multi-write new file mode 100755 index 00000000..75d41f7a --- /dev/null +++ b/tests/test-session-stderr-multi-write @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner session-stderr-multi-write test-gobject-greeter |