Commit 2f1a715e authored by Simon McVittie's avatar Simon McVittie Committed by Ralf Habacker

test_default_session_servicedirs: use the intended data directory

If D-Bus was configured for /usr/local and built in Z:/build,
the previous code would use


whereas the intention was to replace the configured prefix /usr/local
with the detected location, more like


Bug: Ralf Habacker's avatarRalf Habacker <>
parent 50b07fbb
...@@ -3401,28 +3401,36 @@ test_default_session_servicedirs (void) ...@@ -3401,28 +3401,36 @@ test_default_session_servicedirs (void)
DBusList *dirs; DBusList *dirs;
DBusList *link; DBusList *link;
DBusString progs; DBusString progs;
DBusString install_root_based;
int i; int i;
dbus_bool_t ret = FALSE; dbus_bool_t ret = FALSE;
#ifdef DBUS_WIN #ifdef DBUS_WIN
const char *tmp;
const char *common_progs; const char *common_progs;
char buffer[1024];
#endif #endif
/* On Unix we don't actually use this variable, but it's easier to handle the /* On Unix we don't actually use these, but it's easier to handle the
* deallocation if we always allocate it, whether needed or not */ * deallocation if we always allocate them, whether needed or not */
if (!_dbus_string_init (&progs)) if (!_dbus_string_init (&progs) ||
_dbus_assert_not_reached ("OOM allocating progs"); !_dbus_string_init (&install_root_based))
_dbus_assert_not_reached ("OOM allocating strings");
#ifdef DBUS_WIN #ifdef DBUS_WIN
if (_dbus_get_install_root(buffer, sizeof(buffer))) if (!_dbus_string_append (&install_root_based, DBUS_DATADIR) ||
{ !_dbus_string_append (&install_root_based, "/dbus-1/services"))
strcat(buffer,DBUS_DATADIR); goto out;
test_session_service_dir_matches[0] = buffer; tmp = _dbus_replace_install_prefix (
} _dbus_string_get_const_data (&install_root_based));
if (tmp == NULL ||
!_dbus_string_set_length (&install_root_based, 0) ||
!_dbus_string_append (&install_root_based, tmp))
goto out;
test_session_service_dir_matches[0] = _dbus_string_get_const_data (
#ifndef DBUS_UNIX
common_progs = _dbus_getenv ("CommonProgramFiles"); common_progs = _dbus_getenv ("CommonProgramFiles");
if (common_progs) if (common_progs)
...@@ -3511,6 +3519,7 @@ test_default_session_servicedirs (void) ...@@ -3511,6 +3519,7 @@ test_default_session_servicedirs (void)
ret = TRUE; ret = TRUE;
out: out:
_dbus_string_free (&install_root_based);
_dbus_string_free (&progs); _dbus_string_free (&progs);
return ret; return ret;
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment