diff options
Diffstat (limited to 'bus/dispatch.c')
-rw-r--r-- | bus/dispatch.c | 47 |
1 files changed, 41 insertions, 6 deletions
diff --git a/bus/dispatch.c b/bus/dispatch.c index b020bb0b..d434e808 100644 --- a/bus/dispatch.c +++ b/bus/dispatch.c @@ -4408,6 +4408,40 @@ check2_try_iterations (BusContext *context, } static dbus_bool_t +setenv_TEST_LAUNCH_HELPER_CONFIG(const DBusString *test_data_dir, + const char *filename) +{ + DBusString full; + DBusString file; + + if (!_dbus_string_init (&full)) + return FALSE; + + if (!_dbus_string_copy (test_data_dir, 0, &full, 0)) + { + _dbus_string_free (&full); + return FALSE; + } + + _dbus_string_init_const (&file, filename); + + if (!_dbus_concat_dir_and_file (&full, &file)) + { + _dbus_string_free (&full); + return FALSE; + } + + _dbus_verbose ("Setting TEST_LAUNCH_HELPER_CONFIG to '%s'\n", + _dbus_string_get_const_data (&full)); + + _dbus_setenv ("TEST_LAUNCH_HELPER_CONFIG", _dbus_string_get_const_data (&full)); + + _dbus_string_free (&full); + + return TRUE; +} + +static dbus_bool_t bus_dispatch_test_conf (const DBusString *test_data_dir, const char *filename, dbus_bool_t use_launcher) @@ -4419,7 +4453,8 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, DBusError error; /* save the config name for the activation helper */ - _dbus_setenv ("TEST_LAUNCH_HELPER_CONFIG", filename); + if (!setenv_TEST_LAUNCH_HELPER_CONFIG (test_data_dir, filename)) + _dbus_assert_not_reached ("no memory setting TEST_LAUNCH_HELPER_CONFIG"); dbus_error_init (&error); @@ -4524,9 +4559,8 @@ bus_dispatch_test_conf (const DBusString *test_data_dir, #endif /* only do the shell fail test if we are not using the launcher */ - if (!use_launcher) - check2_try_iterations (context, foo, "shell_fail_service_auto_start", - check_shell_fail_service_auto_start); + check2_try_iterations (context, foo, "shell_fail_service_auto_start", + check_shell_fail_service_auto_start); /* specific to launcher */ if (use_launcher) @@ -4572,8 +4606,9 @@ bus_dispatch_test_conf_fail (const DBusString *test_data_dir, DBusError error; /* save the config name for the activation helper */ - _dbus_setenv ("TEST_LAUNCH_HELPER_CONFIG", filename); - + if (!setenv_TEST_LAUNCH_HELPER_CONFIG (test_data_dir, filename)) + _dbus_assert_not_reached ("no memory setting TEST_LAUNCH_HELPER_CONFIG"); + dbus_error_init (&error); context = bus_context_new_test (test_data_dir, filename); |