Fix make check if uninstalled

This uses various environment variables set during make check
to find the trigger, bwrap and xdg-app-dbusproxy from the build/source dir
rather than the installed location.
tingping/wmclass
Alexander Larsson 2016-05-03 10:27:36 +02:00
parent 1df3e4845b
commit 663cfcf3a8
6 changed files with 32 additions and 8 deletions

View File

@ -150,7 +150,7 @@ xdg_app_builtin_build (int argc, char **argv, GCancellable *cancellable, GError
app_files = g_file_get_child (app_deploy, "files");
argv_array = g_ptr_array_new_with_free_func (g_free);
g_ptr_array_add (argv_array, g_strdup (HELPER));
g_ptr_array_add (argv_array, g_strdup (xdg_app_get_bwrap ()));
custom_usr = FALSE;
usr = g_file_get_child (app_deploy, "usr");
@ -220,7 +220,7 @@ xdg_app_builtin_build (int argc, char **argv, GCancellable *cancellable, GError
g_ptr_array_add (argv_array, NULL);
if (!execve (HELPER, (char **)argv_array->pdata, envp))
if (!execve (xdg_app_get_bwrap (), (char **)argv_array->pdata, envp))
{
g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno), "Unable to start app");
return FALSE;

View File

@ -1752,10 +1752,15 @@ xdg_app_dir_run_triggers (XdgAppDir *self,
g_autoptr(GFileInfo) child_info = NULL;
g_autoptr(GFile) triggersdir = NULL;
GError *temp_error = NULL;
const char *triggerspath;
g_debug ("running triggers");
triggerspath = g_getenv ("XDG_APP_TRIGGERSDIR");
if (triggerspath == NULL)
triggerspath = XDG_APP_TRIGGERDIR;
triggersdir = g_file_new_for_path (XDG_APP_TRIGGERDIR);
g_debug ("running triggers from %s", triggerspath);
triggersdir = g_file_new_for_path (triggerspath);
dir_enum = g_file_enumerate_children (triggersdir, "standard::type,standard::name",
0, cancellable, error);
@ -1784,7 +1789,7 @@ xdg_app_dir_run_triggers (XdgAppDir *self,
g_ptr_array_add (argv_array, g_file_get_path (child));
g_ptr_array_add (argv_array, g_file_get_path (self->basedir));
#else
g_ptr_array_add (argv_array, g_strdup (HELPER));
g_ptr_array_add (argv_array, g_strdup (xdg_app_get_bwrap ()));
g_ptr_array_add (argv_array, g_strdup ("--unshare-ipc"));
g_ptr_array_add (argv_array, g_strdup ("--unshare-net"));
g_ptr_array_add (argv_array, g_strdup ("--unshare-pid"));

View File

@ -2320,6 +2320,7 @@ add_dbus_proxy_args (GPtrArray *argv_array,
GError **error)
{
char x = 'x';
const char *proxy;
if (dbus_proxy_argv->len == 0)
return TRUE;
@ -2338,7 +2339,11 @@ add_dbus_proxy_args (GPtrArray *argv_array,
add_args (argv_array, "--sync-fd", fd_str, NULL);
}
g_ptr_array_insert (dbus_proxy_argv, 0, g_strdup (DBUSPROXY));
proxy = g_getenv ("XDG_APP_DBUSPROXY");
if (proxy == NULL)
proxy = DBUSPROXY;
g_ptr_array_insert (dbus_proxy_argv, 0, g_strdup (proxy));
g_ptr_array_insert (dbus_proxy_argv, 1, g_strdup_printf ("--fd=%d", sync_fds[1]));
if (enable_logging)
g_ptr_array_insert (dbus_proxy_argv, 2, g_strdup ("--log"));
@ -2951,7 +2956,7 @@ xdg_app_run_app (const char *app_ref,
}
real_argv_array = g_ptr_array_new_with_free_func (g_free);
g_ptr_array_add (real_argv_array, g_strdup (HELPER));
g_ptr_array_add (real_argv_array, g_strdup (xdg_app_get_bwrap ()));
{
gsize len;
@ -2989,7 +2994,7 @@ xdg_app_run_app (const char *app_ref,
}
else
{
if (execvpe (HELPER, (char **)real_argv_array->pdata, envp) == -1)
if (execvpe (xdg_app_get_bwrap (), (char **)real_argv_array->pdata, envp) == -1)
{
g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno), "Unable to start app");
return FALSE;

View File

@ -216,6 +216,15 @@ xdg_app_get_arch (void)
return arch;
}
const char *
xdg_app_get_bwrap (void)
{
const char *e = g_getenv ("XDG_APP_BWRAP");
if (e != NULL)
return e;
return HELPER;
}
static gboolean
is_valid_initial_name_character (gint c)
{

View File

@ -41,6 +41,8 @@ const char * xdg_app_path_match_prefix (const char *pattern,
const char * xdg_app_get_arch (void);
const char * xdg_app_get_bwrap (void);
GBytes * xdg_app_read_stream (GInputStream *in,
gboolean null_terminate,
GError **error);

View File

@ -1,4 +1,7 @@
TESTS_ENVIRONMENT += OT_TESTS_DEBUG=1 \
XDG_APP_TRIGGERSDIR=$$(cd $(top_srcdir) && pwd)/triggers \
XDG_APP_BWRAP=$$(cd $(top_builddir) && pwd)/bwrap \
XDG_APP_DBUSPROXY=$$(cd $(top_builddir) && pwd)/xdg-dbus-proxy \
GI_TYPELIB_PATH=$$(cd $(top_builddir) && pwd) \
LD_LIBRARY_PATH=$$(cd $(top_builddir)/.libs && pwd) \
PATH=$$(cd $(top_builddir) && pwd):$${PATH} \