From 2ab900b678abb6df62790549b55230215f20a8a4 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Fri, 5 Apr 2013 13:28:54 +0100 Subject: [PATCH] Do not suppress syslog test's stderr just because init is systemd This causes the test to fail. The assumption implicitly being made was "if pid 1 is systemd, then every caller of _dbus_init_system_log() is a systemd service" which is not valid for the regression test. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=63163 Signed-off-by: Simon McVittie Reviewed-by: Colin Walters --- bus/bus.c | 2 +- dbus/dbus-sysdeps-util-unix.c | 4 ++-- dbus/dbus-sysdeps-util-win.c | 2 +- dbus/dbus-sysdeps.h | 2 +- test/internals/syslog.c | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bus/bus.c b/bus/bus.c index e80e708..307c158 100644 --- a/bus/bus.c +++ b/bus/bus.c @@ -287,7 +287,7 @@ process_config_first_time_only (BusContext *context, auth_mechanisms = NULL; pidfile = NULL; - _dbus_init_system_log (); + _dbus_init_system_log (TRUE); if (flags & BUS_CONTEXT_FLAG_SYSTEMD_ACTIVATION) context->systemd_activation = TRUE; diff --git a/dbus/dbus-sysdeps-util-unix.c b/dbus/dbus-sysdeps-util-unix.c index 99888f0..789729c 100644 --- a/dbus/dbus-sysdeps-util-unix.c +++ b/dbus/dbus-sysdeps-util-unix.c @@ -428,14 +428,14 @@ _dbus_request_file_descriptor_limit (unsigned int limit) } void -_dbus_init_system_log (void) +_dbus_init_system_log (dbus_bool_t is_daemon) { #ifdef HAVE_SYSLOG_H int logopts = LOG_PID; #if HAVE_DECL_LOG_PERROR #ifdef HAVE_SYSTEMD - if (sd_booted () <= 0) + if (!is_daemon || sd_booted () <= 0) #endif logopts |= LOG_PERROR; #endif diff --git a/dbus/dbus-sysdeps-util-win.c b/dbus/dbus-sysdeps-util-win.c index 111db9e..abb10f7 100644 --- a/dbus/dbus-sysdeps-util-win.c +++ b/dbus/dbus-sysdeps-util-win.c @@ -262,7 +262,7 @@ _dbus_request_file_descriptor_limit (unsigned int limit) } void -_dbus_init_system_log (void) +_dbus_init_system_log (dbus_bool_t is_daemon) { /* OutputDebugStringA doesn't need any special initialization, do nothing */ } diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h index f4b0ac9..a3205cf 100644 --- a/dbus/dbus-sysdeps.h +++ b/dbus/dbus-sysdeps.h @@ -450,7 +450,7 @@ void _dbus_set_signal_handler (int sig, dbus_bool_t _dbus_user_at_console (const char *username, DBusError *error); -void _dbus_init_system_log (void); +void _dbus_init_system_log (dbus_bool_t is_daemon); typedef enum { DBUS_SYSTEM_LOG_INFO, diff --git a/test/internals/syslog.c b/test/internals/syslog.c index 4f6b7c2..658281c 100644 --- a/test/internals/syslog.c +++ b/test/internals/syslog.c @@ -54,7 +54,7 @@ test_syslog (Fixture *f, { if (g_test_trap_fork (0, 0)) { - _dbus_init_system_log (); + _dbus_init_system_log (FALSE); _dbus_system_log (DBUS_SYSTEM_LOG_FATAL, MESSAGE "%d", 23); /* should not be reached: exit 0 so the assertion in the main process * will fail */ @@ -66,7 +66,7 @@ test_syslog (Fixture *f, if (g_test_trap_fork (0, 0)) { - _dbus_init_system_log (); + _dbus_init_system_log (FALSE); _dbus_system_log (DBUS_SYSTEM_LOG_INFO, MESSAGE "%d", 42); _dbus_system_log (DBUS_SYSTEM_LOG_SECURITY, MESSAGE "%d", 666); exit (0); @@ -76,7 +76,7 @@ test_syslog (Fixture *f, g_test_trap_assert_stderr ("*" MESSAGE "42\n*" MESSAGE "666\n*"); /* manual test (this is the best we can do on Windows) */ - _dbus_init_system_log (); + _dbus_init_system_log (FALSE); _dbus_system_log (DBUS_SYSTEM_LOG_INFO, MESSAGE "%d", 42); _dbus_system_log (DBUS_SYSTEM_LOG_SECURITY, MESSAGE "%d", 666); } -- 2.7.4