[PATCH weston 3/6] weston-test: Get the test client path from args

Quentin Glidic sardemff7+wayland at sardemff7.net
Tue Apr 23 05:54:47 PDT 2013


From: Quentin Glidic <sardemff7+git at sardemff7.net>

Signed-off-by: Quentin Glidic <sardemff7+git at sardemff7.net>
---
 tests/weston-test.c    | 18 ++++++++++++------
 tests/weston-tests-env |  3 ++-
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/tests/weston-test.c b/tests/weston-test.c
index 55c5da4..c19db3a 100644
--- a/tests/weston-test.c
+++ b/tests/weston-test.c
@@ -29,6 +29,7 @@
 #include "wayland-test-server-protocol.h"
 
 struct weston_test {
+	char *client;
 	struct weston_compositor *compositor;
 	struct weston_layer layer;
 	struct weston_process process;
@@ -202,19 +203,15 @@ idle_launch_client(void *data)
 	struct weston_test *test = data;
 	pid_t pid;
 	sigset_t allsigs;
-	char *path;
 
-	path = getenv("WESTON_TEST_CLIENT_PATH");
-	if (path == NULL)
-		exit(EXIT_FAILURE);
 	pid = fork();
 	if (pid == -1)
 		exit(EXIT_FAILURE);
 	if (pid == 0) {
 		sigfillset(&allsigs);
 		sigprocmask(SIG_UNBLOCK, &allsigs, NULL);
-		execl(path, path, NULL);
-		weston_log("compositor: executing '%s' failed: %m\n", path);
+		execl(test->client, test->client, NULL);
+		weston_log("compositor: executing '%s' failed: %m\n", test->client);
 		exit(EXIT_FAILURE);
 	}
 
@@ -229,6 +226,7 @@ module_init(struct weston_compositor *ec,
 {
 	struct weston_test *test;
 	struct wl_event_loop *loop;
+	int i;
 
 	test = malloc(sizeof *test);
 	if (test == NULL)
@@ -242,6 +240,14 @@ module_init(struct weston_compositor *ec,
 				  test, bind_test) == NULL)
 		return -1;
 
+	if (*argc < 2)
+		exit(EXIT_FAILURE);
+	test->client = strdup(argv[1]);
+	for (i = 1; i < *argc; ++i)
+		argv[i] = argv[i+1];
+	*argc = i-1;
+
+
 	loop = wl_display_get_event_loop(ec->wl_display);
 	wl_event_loop_add_idle(loop, idle_launch_client, test);
 
diff --git a/tests/weston-tests-env b/tests/weston-tests-env
index 2e5fa95..8ae0bcf 100755
--- a/tests/weston-tests-env
+++ b/tests/weston-tests-env
@@ -27,10 +27,11 @@ case $1 in
 			&> "$OUTLOG"
 		;;
 	*)
-		WESTON_TEST_CLIENT_PATH=$abs_builddir/$1 $WESTON \
+		$WESTON \
 			--socket=test-$(basename $1) \
 			--backend=$BACKEND \
 			--log="$SERVERLOG" \
 			--modules=$abs_builddir/.libs/weston-test.so,xwayland.so \
+			$abs_builddir/$1 \
 			&> "$OUTLOG"
 esac
-- 
1.8.2.1



More information about the wayland-devel mailing list