public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Single tests to respond to --list-subtests
@ 2014-07-07  9:49 tim.gore
  2014-07-07  9:49 ` [PATCH v2 1/2] intel-gpu-tools: pass argc/argv to simple main tim.gore
  2014-07-07  9:49 ` [PATCH v2 2/2] intel-gpu-tools: Re-use igt_subtest_init for simple tests tim.gore
  0 siblings, 2 replies; 3+ messages in thread
From: tim.gore @ 2014-07-07  9:49 UTC (permalink / raw)
  To: intel-gfx

From: Tim Gore <tim.gore@intel.com>

A step towards towards removing the distinction between
single and multiple tests. The first step is to change
the igt_simple_main macro to pass argc/v through to the
real_main function, so that several simple tests that want
argc/v can still use this macro.
Once this is done, all the simple tests can use this
macro and we then modify this macro and the igt_simple_init
function so that argc/v are available to igt_simple_init.
Finally modify igt_simple_init to call the igt_subtest_init
function to parse the cmdline args for --list-subtest and --help.
There are some subtleties introduced by the fact that
igt_subtest_init registers the check_igt_exit exit handler,
so now single as well as multiple tests must always exit via
igt_exit.

v2: a) Moved some comments into the Doxygen function comments.
    b) Renamed the igt_simple_init function to __igt_simple_init
      to indicate that it should only be called from the framework
      macros.
    c) A few simple tests had return statements for error exits, so
       replaced these with igt_fail calls. This ensures that the
       igt_exit function is called as required by the framework.

Tim Gore (2):
  intel-gpu-tools: pass argc/argv to simple main
  intel-gpu-tools: Re-use igt_subtest_init for simple tests

 lib/igt_core.c                   | 39 ++++++++++++++++++++++-----------------
 lib/igt_core.h                   | 19 +++++++++++--------
 tests/gem_ctx_basic.c            |  6 +-----
 tests/gem_exec_blt.c             |  5 +----
 tests/gem_gtt_hog.c              |  2 +-
 tests/gem_gtt_speed.c            |  7 ++-----
 tests/gem_hang.c                 |  5 +----
 tests/gem_render_copy.c          |  4 +---
 tests/gem_render_linear_blits.c  |  9 +++------
 tests/gem_render_tiled_blits.c   |  7 ++-----
 tests/gem_seqno_wrap.c           | 11 ++++-------
 tests/gem_stress.c               |  5 +----
 tests/gen3_mixed_blits.c         |  5 +----
 tests/gen3_render_linear_blits.c |  5 +----
 tests/gen3_render_mixed_blits.c  |  5 +----
 tests/gen3_render_tiledx_blits.c |  5 +----
 tests/gen3_render_tiledy_blits.c |  5 +----
 tests/igt_simulation.c           |  4 ++--
 18 files changed, 57 insertions(+), 91 deletions(-)

-- 
1.9.2

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH v2 1/2] intel-gpu-tools: pass argc/argv to simple main
  2014-07-07  9:49 [PATCH v2 0/2] Single tests to respond to --list-subtests tim.gore
@ 2014-07-07  9:49 ` tim.gore
  2014-07-07  9:49 ` [PATCH v2 2/2] intel-gpu-tools: Re-use igt_subtest_init for simple tests tim.gore
  1 sibling, 0 replies; 3+ messages in thread
From: tim.gore @ 2014-07-07  9:49 UTC (permalink / raw)
  To: intel-gfx

From: Tim Gore <tim.gore@intel.com>

Quite a few single tests do not use the igt_simple_main
macro because they want access to argc/argv. So change the
igt_simple_main macro to pass these arguments through to the
"__real_mainxxx" function, and change these tests to use
the macro.
Also rename the igt_simple_init to __igt_simple_init to
indicate that it should be accessed via the macros

Signed-off-by: Tim Gore <tim.gore@intel.com>
---
 lib/igt_core.c                   |  4 ++--
 lib/igt_core.h                   | 19 +++++++++++--------
 tests/gem_ctx_basic.c            |  6 +-----
 tests/gem_exec_blt.c             |  5 +----
 tests/gem_gtt_speed.c            |  7 ++-----
 tests/gem_hang.c                 |  5 +----
 tests/gem_render_copy.c          |  4 +---
 tests/gem_render_linear_blits.c  |  9 +++------
 tests/gem_render_tiled_blits.c   |  7 ++-----
 tests/gem_seqno_wrap.c           | 11 ++++-------
 tests/gem_stress.c               |  5 +----
 tests/gen3_mixed_blits.c         |  5 +----
 tests/gen3_render_linear_blits.c |  5 +----
 tests/gen3_render_mixed_blits.c  |  5 +----
 tests/gen3_render_tiledx_blits.c |  5 +----
 tests/gen3_render_tiledy_blits.c |  5 +----
 tests/igt_simulation.c           |  2 +-
 17 files changed, 35 insertions(+), 74 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 7ac7ebe..b822bc9 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -450,7 +450,7 @@ void igt_subtest_init(int argc, char **argv)
 }
 
 /**
- * igt_simple_init:
+ * __igt_simple_init:
  *
  * This initializes a simple test without any support for subtests.
  *
@@ -458,7 +458,7 @@ void igt_subtest_init(int argc, char **argv)
  * #igt_simple_main block instead of stitching the tests's main() function together
  * manually.
  */
-void igt_simple_init(void)
+void __igt_simple_init(void)
 {
 	print_version();
 
diff --git a/lib/igt_core.h b/lib/igt_core.h
index e252eba..75ee60c 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -166,23 +166,26 @@ bool igt_only_list_subtests(void);
  *
  * Init for simple tests without subtests
  */
-void igt_simple_init(void);
+void __igt_simple_init(void);
 
 /**
  * igt_simple_main:
  *
  * This is a magic control flow block used instead of a main() function for
- * simple tests. Open-coding the main() function is only recommended if
- * the test needs to parse additional cmdline arguments of its own.
+ * simple tests. It calls __igt_simple_init() to do basic setup
+ * and passes argc/v through to the "__real_main" function that
+ * follows the macro.
+ * Open-coding the main() function is only recommended if there is a
+ * requirement that cannot be met otherwise
  */
 #define igt_simple_main \
-	static void igt_tokencat(__real_main, __LINE__)(void); \
+	static void igt_tokencat(__real_main, __LINE__)(int argc, char **argv); \
 	int main(int argc, char **argv) { \
-		igt_simple_init(); \
-		igt_tokencat(__real_main, __LINE__)(); \
-		exit(0); \
+		__igt_simple_init(); \
+		igt_tokencat(__real_main, __LINE__)(argc, argv); \
+		igt_exit(); \
 	} \
-	static void igt_tokencat(__real_main, __LINE__)(void) \
+	static void igt_tokencat(__real_main, __LINE__)(int argc, char **argv) \
 
 __attribute__((format(printf, 1, 2)))
 void igt_skip(const char *f, ...) __attribute__((noreturn));
diff --git a/tests/gem_ctx_basic.c b/tests/gem_ctx_basic.c
index 3e9b688..fe770ea 100644
--- a/tests/gem_ctx_basic.c
+++ b/tests/gem_ctx_basic.c
@@ -145,12 +145,10 @@ static void parse(int argc, char *argv[])
 	}
 }
 
-int main(int argc, char *argv[])
+igt_simple_main
 {
 	int i;
 
-	igt_simple_init();
-
 	fd = drm_open_any_render();
 	devid = intel_get_drm_devid(fd);
 
@@ -173,6 +171,4 @@ int main(int argc, char *argv[])
 
 	free(threads);
 	close(fd);
-
-	return 0;
 }
diff --git a/tests/gem_exec_blt.c b/tests/gem_exec_blt.c
index 3bcef18..3d092fe 100644
--- a/tests/gem_exec_blt.c
+++ b/tests/gem_exec_blt.c
@@ -253,12 +253,10 @@ static void run(int object_size)
 	close(fd);
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	int i;
 
-	igt_simple_init();
-
 	igt_skip_on_simulation();
 
 	if (argc > 1) {
@@ -270,5 +268,4 @@ int main(int argc, char **argv)
 	} else
 		run(OBJECT_SIZE);
 
-	return 0;
 }
diff --git a/tests/gem_gtt_speed.c b/tests/gem_gtt_speed.c
index 385eeb7..42c3694 100644
--- a/tests/gem_gtt_speed.c
+++ b/tests/gem_gtt_speed.c
@@ -50,7 +50,7 @@ static double elapsed(const struct timeval *start,
 	return (1e6*(end->tv_sec - start->tv_sec) + (end->tv_usec - start->tv_usec))/loop;
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	struct timeval start, end;
 	uint8_t *buf;
@@ -59,15 +59,13 @@ int main(int argc, char **argv)
 	int loop, i, tiling;
 	int fd;
 
-	igt_simple_init();
-
 	igt_skip_on_simulation();
 
 	if (argc > 1)
 		size = atoi(argv[1]);
 	if (size == 0) {
 		igt_warn("Invalid object size specified\n");
-		return 1;
+		igt_fail(1);
 	}
 
 	buf = malloc(size);
@@ -329,5 +327,4 @@ int main(int argc, char **argv)
 	gem_close(fd, handle);
 	close(fd);
 
-	return 0;
 }
diff --git a/tests/gem_hang.c b/tests/gem_hang.c
index 6248244..a4f4d10 100644
--- a/tests/gem_hang.c
+++ b/tests/gem_hang.c
@@ -68,12 +68,10 @@ gpu_hang(void)
 	intel_batchbuffer_flush(batch);
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	int fd;
 
-	igt_simple_init();
-
 	igt_assert_f(argc == 2,
 		     "usage: %s <disabled pipe number>\n",
 		     argv[0]);
@@ -93,5 +91,4 @@ int main(int argc, char **argv)
 
 	close(fd);
 
-	return 0;
 }
diff --git a/tests/gem_render_copy.c b/tests/gem_render_copy.c
index fd26b43..12dd90d 100644
--- a/tests/gem_render_copy.c
+++ b/tests/gem_render_copy.c
@@ -117,7 +117,7 @@ scratch_buf_check(data_t *data, struct igt_buf *buf, int x, int y,
 		     color, val, x, y);
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	data_t data = {0, };
 	struct intel_batchbuffer *batch = NULL;
@@ -127,7 +127,6 @@ int main(int argc, char **argv)
 	int opt_dump_png = false;
 	int opt_dump_aub = igt_aub_dump_enabled();
 
-	igt_simple_init();
 
 	while ((opt = getopt(argc, argv, "d")) != -1) {
 		switch (opt) {
@@ -189,5 +188,4 @@ int main(int argc, char **argv)
 		scratch_buf_check(&data, &dst, WIDTH - 10, HEIGHT - 10, SRC_COLOR);
 	}
 
-	return 0;
 }
diff --git a/tests/gem_render_linear_blits.c b/tests/gem_render_linear_blits.c
index f847486..3b8c98f 100644
--- a/tests/gem_render_linear_blits.c
+++ b/tests/gem_render_linear_blits.c
@@ -81,7 +81,7 @@ check_bo(int fd, uint32_t handle, uint32_t val)
 	}
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	drm_intel_bufmgr *bufmgr;
 	struct intel_batchbuffer *batch;
@@ -90,8 +90,6 @@ int main(int argc, char **argv)
 	uint32_t start = 0;
 	int i, j, fd, count;
 
-	igt_simple_init();
-
 	fd = drm_open_any();
 
 	render_copy = igt_get_render_copyfunc(intel_get_drm_devid(fd));
@@ -110,7 +108,7 @@ int main(int argc, char **argv)
 		count = 3 * gem_aperture_size(fd) / SIZE / 2;
 	else if (count < 2) {
 		igt_warn("count must be >= 2\n");
-		return 1;
+		igt_fail(1);
 	}
 
 	if (count > intel_get_total_ram_mb() * 9 / 10) {
@@ -154,7 +152,7 @@ int main(int argc, char **argv)
 		check_bo(fd, bo[i]->handle, start_val[i]);
 
 	if (igt_run_in_simulation())
-		return 0;
+		return;
 
 	igt_info("Cyclic blits, backward...\n");
 	for (i = 0; i < count * 4; i++) {
@@ -201,5 +199,4 @@ int main(int argc, char **argv)
 	for (i = 0; i < count; i++)
 		check_bo(fd, bo[i]->handle, start_val[i]);
 
-	return 0;
 }
diff --git a/tests/gem_render_tiled_blits.c b/tests/gem_render_tiled_blits.c
index f63c57e..7ff8335 100644
--- a/tests/gem_render_tiled_blits.c
+++ b/tests/gem_render_tiled_blits.c
@@ -95,7 +95,7 @@ check_bo(struct intel_batchbuffer *batch, struct igt_buf *buf, uint32_t val)
 		dri_bo_unmap(linear);
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	drm_intel_bufmgr *bufmgr;
 	struct intel_batchbuffer *batch;
@@ -105,8 +105,6 @@ int main(int argc, char **argv)
 	int i, j, fd, count;
 	uint32_t devid;
 
-	igt_simple_init();
-
 	igt_skip_on_simulation();
 
 	fd = drm_open_any();
@@ -132,7 +130,7 @@ int main(int argc, char **argv)
 		count = 3 * gem_aperture_size(fd) / SIZE / 2;
 	else if (count < 2) {
 		igt_warn("count must be >= 2\n");
-		return 1;
+		igt_fail(1);
 	}
 
 	if (count > intel_get_total_ram_mb() * 9 / 10) {
@@ -212,5 +210,4 @@ int main(int argc, char **argv)
 	for (i = 0; i < count; i++)
 		check_bo(batch, &buf[i], start_val[i]);
 
-	return 0;
 }
diff --git a/tests/gem_seqno_wrap.c b/tests/gem_seqno_wrap.c
index beda28b..8a54c2e 100644
--- a/tests/gem_seqno_wrap.c
+++ b/tests/gem_seqno_wrap.c
@@ -533,12 +533,9 @@ static void parse_options(int argc, char **argv)
 	}
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	int wcount = 0;
-	int r = -1;
-
-	igt_simple_init();
 
 	parse_options(argc, argv);
 
@@ -563,8 +560,8 @@ int main(int argc, char **argv)
 
 	if (options.rounds == wcount) {
 		igt_debug("done %d wraps successfully\n", wcount);
-		return 0;
 	}
-
-	return r;
+	else {
+	    igt_fail(-1);
+	}
 }
diff --git a/tests/gem_stress.c b/tests/gem_stress.c
index 2ccb6fc..35ed32f 100644
--- a/tests/gem_stress.c
+++ b/tests/gem_stress.c
@@ -860,13 +860,11 @@ static void check_render_copyfunc(void)
 }
 
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	int i, j;
 	unsigned *current_permutation, *tmp_permutation;
 
-	igt_simple_init();
-
 	drm_fd = drm_open_any();
 	devid = intel_get_drm_devid(drm_fd);
 
@@ -925,5 +923,4 @@ int main(int argc, char **argv)
 
 	igt_stop_signal_helper();
 
-	return 0;
 }
diff --git a/tests/gen3_mixed_blits.c b/tests/gen3_mixed_blits.c
index 75d61a5..f0a6b64 100644
--- a/tests/gen3_mixed_blits.c
+++ b/tests/gen3_mixed_blits.c
@@ -457,14 +457,12 @@ check_bo(int fd, uint32_t handle, uint32_t val)
 	munmap(v, WIDTH*HEIGHT*4);
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	uint32_t *handle, *tiling, *start_val;
 	uint32_t start = 0;
 	int i, fd, count;
 
-	igt_simple_init();
-
 	fd = drm_open_any();
 
 	igt_require(IS_GEN3(intel_get_drm_devid(fd)));
@@ -533,5 +531,4 @@ int main(int argc, char **argv)
 		check_bo(fd, handle[i], start_val[i]);
 	igt_info("done\n");
 
-	return 0;
 }
diff --git a/tests/gen3_render_linear_blits.c b/tests/gen3_render_linear_blits.c
index 7fe368d..60c0d0b 100644
--- a/tests/gen3_render_linear_blits.c
+++ b/tests/gen3_render_linear_blits.c
@@ -325,14 +325,12 @@ check_bo(int fd, uint32_t handle, uint32_t val)
 	}
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	uint32_t *handle, *start_val;
 	uint32_t start = 0;
 	int i, fd, count;
 
-	igt_simple_init();
-
 	fd = drm_open_any();
 
 	igt_require(IS_GEN3(intel_get_drm_devid(fd)));
@@ -393,5 +391,4 @@ int main(int argc, char **argv)
 	for (i = 0; i < count; i++)
 		check_bo(fd, handle[i], start_val[i]);
 
-	return 0;
 }
diff --git a/tests/gen3_render_mixed_blits.c b/tests/gen3_render_mixed_blits.c
index 77ac0e2..68660a3 100644
--- a/tests/gen3_render_mixed_blits.c
+++ b/tests/gen3_render_mixed_blits.c
@@ -345,14 +345,12 @@ check_bo(int fd, uint32_t handle, uint32_t val)
 	munmap(v, WIDTH*HEIGHT*4);
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	uint32_t *handle, *tiling, *start_val;
 	uint32_t start = 0;
 	int i, fd, count;
 
-	igt_simple_init();
-
 	fd = drm_open_any();
 
 	igt_require(IS_GEN3(intel_get_drm_devid(fd)));
@@ -421,5 +419,4 @@ int main(int argc, char **argv)
 		check_bo(fd, handle[i], start_val[i]);
 	igt_info("done\n");
 
-	return 0;
 }
diff --git a/tests/gen3_render_tiledx_blits.c b/tests/gen3_render_tiledx_blits.c
index 95c0c96..d54d714 100644
--- a/tests/gen3_render_tiledx_blits.c
+++ b/tests/gen3_render_tiledx_blits.c
@@ -332,14 +332,12 @@ check_bo(int fd, uint32_t handle, uint32_t val)
 	munmap(v, WIDTH*HEIGHT*4);
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	uint32_t *handle, *start_val;
 	uint32_t start = 0;
 	int i, fd, count;
 
-	igt_simple_init();
-
 	fd = drm_open_any();
 
 	igt_require(IS_GEN3(intel_get_drm_devid(fd)));
@@ -400,5 +398,4 @@ int main(int argc, char **argv)
 	for (i = 0; i < count; i++)
 		check_bo(fd, handle[i], start_val[i]);
 
-	return 0;
 }
diff --git a/tests/gen3_render_tiledy_blits.c b/tests/gen3_render_tiledy_blits.c
index 1b9a419..3ef08c8 100644
--- a/tests/gen3_render_tiledy_blits.c
+++ b/tests/gen3_render_tiledy_blits.c
@@ -332,14 +332,12 @@ check_bo(int fd, uint32_t handle, uint32_t val)
 	munmap(v, WIDTH*HEIGHT*4);
 }
 
-int main(int argc, char **argv)
+igt_simple_main
 {
 	uint32_t *handle, *start_val;
 	uint32_t start = 0;
 	int i, fd, count;
 
-	igt_simple_init();
-
 	fd = drm_open_any();
 
 	igt_require(IS_GEN3(intel_get_drm_devid(fd)));
@@ -407,5 +405,4 @@ int main(int argc, char **argv)
 		check_bo(fd, handle[i], start_val[i]);
 	igt_info("done\n");
 
-	return 0;
 }
diff --git a/tests/igt_simulation.c b/tests/igt_simulation.c
index 15cbe64..6d8a59a 100644
--- a/tests/igt_simulation.c
+++ b/tests/igt_simulation.c
@@ -53,7 +53,7 @@ static int do_fork(void)
 		assert(0);
 	case 0:
 		if (simple) {
-			igt_simple_init();
+			__igt_simple_init();
 
 			igt_skip_on_simulation();
 
-- 
1.9.2

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v2 2/2] intel-gpu-tools: Re-use igt_subtest_init for simple tests
  2014-07-07  9:49 [PATCH v2 0/2] Single tests to respond to --list-subtests tim.gore
  2014-07-07  9:49 ` [PATCH v2 1/2] intel-gpu-tools: pass argc/argv to simple main tim.gore
@ 2014-07-07  9:49 ` tim.gore
  1 sibling, 0 replies; 3+ messages in thread
From: tim.gore @ 2014-07-07  9:49 UTC (permalink / raw)
  To: intel-gfx

From: Tim Gore <tim.gore@intel.com>

igt_subtest_init mainly does stuff that we also want for
simple/single tests, such as looking for --list-subtests
and --help options and calling common_init. So just call
this from igt_simple_init and then set tests_with_subtests
to false. NOTE that this means that check_igt_exit is now
registered as an exit handler for single tests, so need to
make sure that ALL tests exit via igt_exit.

Signed-off-by: Tim Gore <tim.gore@intel.com>
---
 lib/igt_core.c         | 37 +++++++++++++++++++++----------------
 lib/igt_core.h         |  4 ++--
 tests/gem_gtt_hog.c    |  2 +-
 tests/igt_simulation.c |  4 ++--
 4 files changed, 26 insertions(+), 21 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index b822bc9..7871360 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -457,14 +457,21 @@ void igt_subtest_init(int argc, char **argv)
  * If there's not a reason to the contrary it's less error prone to just use an
  * #igt_simple_main block instead of stitching the tests's main() function together
  * manually.
+ * We now call through to the igt_subtest_init function since we want most of its
+ * functionality. Note that this will install the igt_exit_handler so you need to
+ * exit via igt_exit(), Dont call exit()
+ *
  */
-void __igt_simple_init(void)
+void __igt_simple_init(int argc, char **argv)
 {
-	print_version();
-
-	oom_adjust_for_doom();
-
-	common_init();
+        /* use igt_subtest_init, it does mostly what we want */
+	igt_subtest_init(argc, argv);
+	/* but of course we dont have subtests - so mark this */
+	test_with_subtests = false;
+	if (list_subtests)
+		igt_exit();
+	if (run_single_subtest)
+		igt_fail(1);    /* we dont have subtests ! */
 }
 
 /*
@@ -565,7 +572,7 @@ void igt_skip(const char *f, ...)
 		assert(in_fixture);
 		__igt_fixture_end();
 	} else {
-		exit(IGT_EXIT_SKIP);
+		igt_exit();
 	}
 }
 
@@ -655,7 +662,7 @@ void igt_fail(int exitcode)
 			__igt_fixture_end();
 		}
 
-		exit(exitcode);
+		igt_exit();
 	}
 }
 
@@ -713,18 +720,16 @@ void igt_exit(void)
 	if (igt_only_list_subtests())
 		exit(IGT_EXIT_SUCCESS);
 
-	if (!test_with_subtests)
-		exit(IGT_EXIT_SUCCESS);
-
-	/* Calling this without calling one of the above is a failure */
-	assert(skipped_one || succeeded_one || failed_one);
+	if (test_with_subtests)
+		/* Calling this without calling one of the above is a failure */
+		assert(skipped_one || succeeded_one || failed_one);
 
 	if (failed_one)
 		exit(igt_exitcode);
-	else if (succeeded_one)
-		exit(IGT_EXIT_SUCCESS);
-	else
+	else if (skipped_one)
 		exit(IGT_EXIT_SKIP);
+	else
+		exit(IGT_EXIT_SUCCESS);
 }
 
 /* fork support code */
diff --git a/lib/igt_core.h b/lib/igt_core.h
index 75ee60c..448beed 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -166,7 +166,7 @@ bool igt_only_list_subtests(void);
  *
  * Init for simple tests without subtests
  */
-void __igt_simple_init(void);
+void __igt_simple_init(int argc, char **argv);
 
 /**
  * igt_simple_main:
@@ -181,7 +181,7 @@ void __igt_simple_init(void);
 #define igt_simple_main \
 	static void igt_tokencat(__real_main, __LINE__)(int argc, char **argv); \
 	int main(int argc, char **argv) { \
-		__igt_simple_init(); \
+		__igt_simple_init(argc, argv); \
 		igt_tokencat(__real_main, __LINE__)(argc, argv); \
 		igt_exit(); \
 	} \
diff --git a/tests/gem_gtt_hog.c b/tests/gem_gtt_hog.c
index 5d47540..f607ea0 100644
--- a/tests/gem_gtt_hog.c
+++ b/tests/gem_gtt_hog.c
@@ -150,7 +150,7 @@ static void run(data_t *data, int child)
 	munmap(ptr, size);
 
 	igt_assert(x == canary);
-	exit(0);
+	_exit(0);
 }
 
 igt_simple_main
diff --git a/tests/igt_simulation.c b/tests/igt_simulation.c
index 6d8a59a..5d38026 100644
--- a/tests/igt_simulation.c
+++ b/tests/igt_simulation.c
@@ -53,11 +53,11 @@ static int do_fork(void)
 		assert(0);
 	case 0:
 		if (simple) {
-			__igt_simple_init();
+			__igt_simple_init(1, argv_run);
 
 			igt_skip_on_simulation();
 
-			exit(0);
+			igt_exit();
 		} else {
 			if (list_subtests)
 				igt_subtest_init(2, argv_list);
-- 
1.9.2

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-07-07  9:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-07  9:49 [PATCH v2 0/2] Single tests to respond to --list-subtests tim.gore
2014-07-07  9:49 ` [PATCH v2 1/2] intel-gpu-tools: pass argc/argv to simple main tim.gore
2014-07-07  9:49 ` [PATCH v2 2/2] intel-gpu-tools: Re-use igt_subtest_init for simple tests tim.gore

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox