f->ge = NULL;
dbus_error_init (&f->e);
- address = test_get_dbus_daemon (NULL, TEST_USER_ME, &f->daemon_pid);
+ address = test_get_dbus_daemon (NULL, TEST_USER_ME, NULL, &f->daemon_pid);
f->sender = test_connect_to_bus (f->ctx, address);
dbus_bus_request_name (f->sender, SENDER_NAME, DBUS_NAME_FLAG_DO_NOT_QUEUE,
f->address = test_get_dbus_daemon (
"valid-config-files/systemd-activation.conf",
- TEST_USER_ME, &f->daemon_pid);
+ TEST_USER_ME, NULL, &f->daemon_pid);
if (f->address == NULL)
return;
const gchar *configuration,
const gchar *listen_address,
TestUser user,
+ const gchar *runtime_dir,
GPid *daemon_pid)
{
GError *error = NULL;
GString *address;
gint address_fd;
GPtrArray *argv;
+ gchar **envp;
#ifdef DBUS_UNIX
const struct passwd *pwd = NULL;
#endif
#endif
}
+ envp = g_get_environ ();
+
+ if (runtime_dir != NULL)
+ envp = g_environ_setenv (envp, "XDG_RUNTIME_DIR", runtime_dir, TRUE);
+
argv = g_ptr_array_new_with_free_func (g_free);
g_ptr_array_add (argv, g_strdup (binary));
g_ptr_array_add (argv, g_strdup (configuration));
g_spawn_async_with_pipes (NULL, /* working directory */
(gchar **) argv->pdata,
- NULL, /* envp */
+ envp,
G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH,
#ifdef DBUS_UNIX
child_setup, (gpointer) pwd,
g_assert_no_error (error);
g_ptr_array_free (argv, TRUE);
+ g_strfreev (envp);
address = g_string_new (NULL);
gchar *
test_get_dbus_daemon (const gchar *config_file,
TestUser user,
+ const gchar *runtime_dir,
GPid *daemon_pid)
{
gchar *dbus_daemon;
else
{
address = spawn_dbus_daemon (dbus_daemon, arg,
- listen_address, user, daemon_pid);
+ listen_address, user, runtime_dir, daemon_pid);
}
g_free (dbus_daemon);