Commit c7210434 authored by Derek Foreman's avatar Derek Foreman Committed by Pekka Paalanen

tests: allow running make check without make install

desktop shell and weston keyboard both refer to themselves prefixed by
LIBEXECDIR, however this is only valid once installed.  make check will
currently either fail or run pre-existing versions.

This patch adds a way to override that location by setting the env var
WESTON_BUILD_DIR - which is then set by the test env script so make check
will test the versions in the build directory regardless of whether they're
installed or not.
Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
parent 3d3f4854
......@@ -567,7 +567,7 @@ shell_configuration(struct desktop_shell *shell)
{
struct weston_config_section *section;
int duration;
char *s;
char *s, *client;
section = weston_config_get_section(shell->compositor->config,
"screensaver", NULL, NULL);
......@@ -578,8 +578,11 @@ shell_configuration(struct desktop_shell *shell)
section = weston_config_get_section(shell->compositor->config,
"shell", NULL, NULL);
asprintf(&client, "%s/%s", weston_config_get_libexec_dir(),
WESTON_SHELL_CLIENT);
weston_config_section_get_string(section,
"client", &s, LIBEXECDIR "/" WESTON_SHELL_CLIENT);
"client", &s, client);
free(client);
shell->client = s;
weston_config_section_get_string(section,
"binding-modifier", &s, "super");
......
......@@ -282,6 +282,18 @@ weston_config_section_get_bool(struct weston_config_section *section,
return 0;
}
WL_EXPORT
const char *
weston_config_get_libexec_dir(void)
{
const char *path = getenv("WESTON_BUILD_DIR");
if (path)
return path;
return LIBEXECDIR;
}
static struct weston_config_section *
config_add_section(struct weston_config *config, const char *name)
{
......
......@@ -92,6 +92,9 @@ int
weston_config_section_get_bool(struct weston_config_section *section,
const char *key,
int *value, int default_value);
const char *
weston_config_get_libexec_dir(void);
struct weston_config *
weston_config_parse(const char *name);
......
......@@ -286,12 +286,16 @@ screenshooter_binding(struct weston_seat *seat, uint32_t time, uint32_t key,
void *data)
{
struct screenshooter *shooter = data;
const char *screenshooter_exe = LIBEXECDIR "/weston-screenshooter";
char *screenshooter_exe;
asprintf(&screenshooter_exe, "%s/%s", weston_config_get_libexec_dir(),
"/weston-screenshooter");
if (!shooter->client)
shooter->client = weston_client_launch(shooter->ec,
&shooter->process,
screenshooter_exe, screenshooter_sigchld);
free(screenshooter_exe);
}
struct weston_recorder {
......
......@@ -937,12 +937,16 @@ static void
text_backend_configuration(struct text_backend *text_backend)
{
struct weston_config_section *section;
char *client;
section = weston_config_get_section(text_backend->compositor->config,
"input-method", NULL, NULL);
asprintf(&client, "%s/weston-keyboard",
weston_config_get_libexec_dir());
weston_config_section_get_string(section, "path",
&text_backend->input_method.path,
LIBEXECDIR "/weston-keyboard");
client);
free(client);
}
static void
......
......@@ -28,6 +28,7 @@ XWAYLAND_PLUGIN=$abs_builddir/.libs/xwayland.so
case $TESTNAME in
*.la|*.so)
WESTON_BUILD_DIR=$abs_builddir \
$WESTON --backend=$BACKEND \
--no-config \
--shell=$SHELL_PLUGIN \
......@@ -37,6 +38,7 @@ case $TESTNAME in
&> "$OUTLOG"
;;
*)
WESTON_BUILD_DIR=$abs_builddir \
WESTON_TEST_CLIENT_PATH=$abs_builddir/$TESTNAME $WESTON \
--socket=test-$(basename $TESTNAME) \
--backend=$BACKEND \
......
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