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 <pekka.paalanen@collabora.co.uk>
This commit is contained in:
Derek Foreman 2014-08-21 11:32:38 -05:00 committed by Pekka Paalanen
parent 3d3f48548a
commit c7210434d4
6 changed files with 32 additions and 4 deletions

View file

@ -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");

View file

@ -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)
{

View file

@ -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);

View file

@ -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 {

View file

@ -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

View file

@ -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 \