All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 1/5] tests/sw_sync: use igt_fork_helper
@ 2018-01-18 13:59 ` Daniel Vetter
  0 siblings, 0 replies; 18+ messages in thread
From: Daniel Vetter @ 2018-01-18 13:59 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter, Intel Graphics Development, Daniel Vetter

I'll need to wrap a bit of magic around all the fork() calls in our
tests. Simplest way to get there is to roll out the existing helpers,
which even saves a bit of boilerplate code.

Cc: Robert Foss <robert.foss@collabora.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 tests/sw_sync.c | 54 ++++++++++++++++++------------------------------------
 1 file changed, 18 insertions(+), 36 deletions(-)

diff --git a/tests/sw_sync.c b/tests/sw_sync.c
index 20dfbbb98f58..24974a2f5e4e 100644
--- a/tests/sw_sync.c
+++ b/tests/sw_sync.c
@@ -175,6 +175,7 @@ static void test_sync_busy_fork_unixsocket(void)
 	int timeline;
 	int skip = 0;
 	int sv[2];
+	struct igt_helper_process proc;
 
 
 	timeline = sw_sync_timeline_create();
@@ -185,9 +186,7 @@ static void test_sync_busy_fork_unixsocket(void)
 		goto out;
 	}
 
-	switch (fork()) {
-	case 0:
-	{
+	igt_fork_helper(&proc) {
 		/* Child process */
 		int socket = sv[1];
 		int socket_timeline;
@@ -213,17 +212,8 @@ static void test_sync_busy_fork_unixsocket(void)
 
 		/* Advance timeline from 0 -> 1 */
 		sw_sync_timeline_inc(socket_timeline, 1);
-
-		_Exit(0);
-		break;
-	}
-	case -1:
-	{
-		/* Failed fork */
-		skip = 1;
-		break;
 	}
-	default:
+
 	{
 		/* Parent process */
 		int socket = sv[0];
@@ -252,15 +242,14 @@ static void test_sync_busy_fork_unixsocket(void)
 
 		if (sendmsg(socket, &msg, 0) < 0) {
 		    skip = 1;
-		    goto out;
+		} else {
+			igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
+				     "Fence not signaled (timeline value 1 fence seqno 1)\n");
 		}
-
-		igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
-			     "Fence not signaled (timeline value 1 fence seqno 1)\n");
-		break;
-	}
 	}
 
+	igt_stop_helper(&proc);
+
 out:
 	close(fence);
 	close(timeline);
@@ -272,32 +261,25 @@ static void test_sync_busy_fork(void)
 	int fence;
 	int timeline;
 	int skip = 0;
+	struct igt_helper_process proc;
 
 	timeline = sw_sync_timeline_create();
 	fence = sw_sync_timeline_create_fence(timeline, 1);
 
-	switch (fork()) {
-	case 0:
-		/* Child process */
+	igt_fork_helper(&proc) {
 		usleep(1*1000*1000);
 		/* Advance timeline from 0 -> 1 */
 		sw_sync_timeline_inc(timeline, 1);
-		_Exit(0);
-		break;
-	case -1:
-		/* Failed fork */
-		skip = 1;
-		break;
-	default:
-		/* Parent process */
-		igt_assert_f(sync_fence_wait(fence, 0) == -ETIME,
-			     "Fence signaled (it should not have been signalled yet)\n");
-
-		igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
-			     "Fence not signaled (timeline value 1 fence seqno 1)\n");
-		break;
 	}
 
+	igt_assert_f(sync_fence_wait(fence, 0) == -ETIME,
+		     "Fence signaled (it should not have been signalled yet)\n");
+
+	igt_assert_f(sync_fence_wait(fence, 2*1000) == 0,
+		     "Fence not signaled (timeline value 1 fence seqno 1)\n");
+
+	igt_stop_helper(&proc);
+
 	close(fence);
 	close(timeline);
 	igt_require(!skip);
-- 
2.14.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

end of thread, other threads:[~2018-02-20 15:22 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-18 13:59 [RFC PATCH 1/5] tests/sw_sync: use igt_fork_helper Daniel Vetter
2018-01-18 13:59 ` [igt-dev] " Daniel Vetter
2018-01-18 13:59 ` [RFC PATCH 2/5] lib/core: make logging pthread vs. fork safe Daniel Vetter
2018-01-18 13:59   ` [igt-dev] " Daniel Vetter
2018-01-18 13:59 ` [RFC PATCH 3/5] lib/core: Don't hide non-debug message when filtering for a debug log domain Daniel Vetter
2018-01-18 13:59   ` [igt-dev] " Daniel Vetter
2018-01-18 13:59 ` [RFC PATCH 4/5] igt/core: Initial simple interleaved kmsg filtering Daniel Vetter
2018-01-18 13:59   ` [igt-dev] " Daniel Vetter
2018-01-18 14:27   ` [RFC PATCH] " Daniel Vetter
2018-01-18 14:27     ` [igt-dev] " Daniel Vetter
2018-02-20 11:30     ` [igt-dev] [RFC PATCH v3 4/5] " Petri Latvala
2018-02-20 11:50       ` Daniel Vetter
2018-02-20 12:09         ` Daniel Vetter
2018-01-18 13:59 ` [RFC PATCH 5/5] lib/core: report subtests that hit an igt_warning as WARNING Daniel Vetter
2018-01-18 13:59   ` [igt-dev] " Daniel Vetter
2018-01-18 14:21 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper Patchwork
2018-01-18 15:05 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper (rev2) Patchwork
2018-02-20 15:22 ` [igt-dev] ✗ Fi.CI.BAT: warning for series starting with [RFC,1/5] tests/sw_sync: use igt_fork_helper (rev3) Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.