diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2014-08-21 11:32:38 -0500 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2014-08-22 17:47:33 +0300 |
commit | c7210434d45cff0135e42bd3047988e1274d49dd (patch) | |
tree | d02d76301beeda015f4ecaee650800173cd0487a | |
parent | 3d3f48548ad4691fbc7fbc12486ff61bca0779df (diff) |
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>
-rw-r--r-- | desktop-shell/shell.c | 7 | ||||
-rw-r--r-- | shared/config-parser.c | 12 | ||||
-rw-r--r-- | shared/config-parser.h | 3 | ||||
-rw-r--r-- | src/screenshooter.c | 6 | ||||
-rw-r--r-- | src/text-backend.c | 6 | ||||
-rwxr-xr-x | tests/weston-tests-env | 2 |
6 files changed, 32 insertions, 4 deletions
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index 20536d75..99f3343f 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -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"); diff --git a/shared/config-parser.c b/shared/config-parser.c index 8defbbb4..4542ca61 100644 --- a/shared/config-parser.c +++ b/shared/config-parser.c @@ -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) { diff --git a/shared/config-parser.h b/shared/config-parser.h index 745562bc..1ecc8cc2 100644 --- a/shared/config-parser.h +++ b/shared/config-parser.h @@ -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); diff --git a/src/screenshooter.c b/src/screenshooter.c index 44039332..af2c754a 100644 --- a/src/screenshooter.c +++ b/src/screenshooter.c @@ -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 { diff --git a/src/text-backend.c b/src/text-backend.c index 1d549d43..7d2a0640 100644 --- a/src/text-backend.c +++ b/src/text-backend.c @@ -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 diff --git a/tests/weston-tests-env b/tests/weston-tests-env index 473e0925..e332354c 100755 --- a/tests/weston-tests-env +++ b/tests/weston-tests-env @@ -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 \ |