public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork
@ 2019-02-07 16:50 Daniel Vetter
  2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 2/7] lib/tests: make sure igt_skip in igt_fork is forbidden Daniel Vetter
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Daniel Vetter @ 2019-02-07 16:50 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter

Note that without the igt_waitchildren nothing at all gets forwarded,
maybe we should check for left-behind children somewhere on subtest
exit.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 lib/tests/igt_fork.c  | 87 +++++++++++++++++++++++++++++++++++++++++++
 lib/tests/meson.build |  1 +
 2 files changed, 88 insertions(+)
 create mode 100644 lib/tests/igt_fork.c

diff --git a/lib/tests/igt_fork.c b/lib/tests/igt_fork.c
new file mode 100644
index 000000000000..d495c7815e06
--- /dev/null
+++ b/lib/tests/igt_fork.c
@@ -0,0 +1,87 @@
+/*
+ * Copyright © 2019 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ */
+
+#include <assert.h>
+#include <errno.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+#include "igt_core.h"
+
+/*
+ * We need to hide assert from the cocci igt test refactor spatch.
+ *
+ * IMPORTANT: Test infrastructure tests are the only valid places where using
+ * assert is allowed.
+ */
+#define internal_assert assert
+
+char test[] = "test";
+char *argv_run[] = { test };
+
+static void igt_fork_vs_assert(void)
+{
+	igt_fork(i, 1) {
+		igt_assert(0);
+	}
+
+	igt_waitchildren();
+}
+
+static int do_fork(void (*test_to_run)(void))
+{
+	int pid, status;
+	int argc;
+
+	switch (pid = fork()) {
+	case -1:
+		internal_assert(0);
+	case 0:
+		argc = 1;
+		igt_simple_init(argc, argv_run);
+		test_to_run();
+		igt_exit();
+	default:
+		while (waitpid(pid, &status, 0) == -1 &&
+		       errno == EINTR)
+			;
+
+		if(WIFSIGNALED(status))
+			return WTERMSIG(status) + 128;
+
+		return WEXITSTATUS(status);
+	}
+}
+
+
+int main(int argc, char **argv)
+{
+	int ret;
+
+	ret = do_fork(igt_fork_vs_assert);
+	internal_assert(ret == IGT_EXIT_FAILURE);
+}
diff --git a/lib/tests/meson.build b/lib/tests/meson.build
index 55ab2b3d2dff..665ad4a0fbcc 100644
--- a/lib/tests/meson.build
+++ b/lib/tests/meson.build
@@ -1,5 +1,6 @@
 lib_tests = [
 	'igt_fork_helper',
+	'igt_fork',
 	'igt_list_only',
 	'igt_simulation',
 	'igt_stats',
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 2/7] lib/tests: make sure igt_skip in igt_fork is forbidden
  2019-02-07 16:50 [igt-dev] [PATCH i-g-t 1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Daniel Vetter
@ 2019-02-07 16:50 ` Daniel Vetter
  2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 3/7] lib: Don't leak children in igt_waitchildren_timeout Daniel Vetter
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Daniel Vetter @ 2019-02-07 16:50 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter

Another corner case to check.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 lib/tests/igt_fork.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/lib/tests/igt_fork.c b/lib/tests/igt_fork.c
index d495c7815e06..5ff2956dd0ab 100644
--- a/lib/tests/igt_fork.c
+++ b/lib/tests/igt_fork.c
@@ -43,6 +43,15 @@
 char test[] = "test";
 char *argv_run[] = { test };
 
+static void igt_fork_vs_skip(void)
+{
+	igt_fork(i, 1) {
+		igt_skip("skipping");
+	}
+
+	igt_waitchildren();
+}
+
 static void igt_fork_vs_assert(void)
 {
 	igt_fork(i, 1) {
@@ -82,6 +91,11 @@ int main(int argc, char **argv)
 {
 	int ret;
 
+	/* check that igt_assert is forwarded */
 	ret = do_fork(igt_fork_vs_assert);
 	internal_assert(ret == IGT_EXIT_FAILURE);
+
+	/* check that igt_skip within a fork blows up */
+	ret = do_fork(igt_fork_vs_skip);
+	internal_assert(ret == SIGABRT + 128);
 }
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 3/7] lib: Don't leak children in igt_waitchildren_timeout
  2019-02-07 16:50 [igt-dev] [PATCH i-g-t 1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Daniel Vetter
  2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 2/7] lib/tests: make sure igt_skip in igt_fork is forbidden Daniel Vetter
@ 2019-02-07 16:50 ` Daniel Vetter
  2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 4/7] lib/tests: make sure we catch igt_fork leaks Daniel Vetter
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Daniel Vetter @ 2019-02-07 16:50 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter

Instead of cleaning up the mess in igt_exit make sure we don't even
let it out of the container. See also

commit 754876378d6c9b2775e8c07b4d16f9878c55949f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Feb 26 22:11:10 2016 +0000

    igt/gem_sync: Enforce a timeout of 20s

which added this helper.

To make sure that everyone follows the rules, add an assert.

We're keeping the cleanup code as a failsafe, and because it speeds
up the testcase I'm following up with.

v2: Chris pointed out that my original patch did nothing. Which I
didn't catch because my testcase was also broken. Unfortunately this
means we need to open code part of the waiting.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 lib/igt_core.c | 39 ++++++++++++++++++++++++++++++++++-----
 1 file changed, 34 insertions(+), 5 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 49fbf70deb06..a23e29ca36fe 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1525,6 +1525,7 @@ void igt_exit(void)
 
 	for (int c = 0; c < num_test_children; c++)
 		kill(test_children[c], SIGKILL);
+	assert(!num_test_children);
 
 	if (!test_with_subtests) {
 		struct timespec now;
@@ -1828,20 +1829,48 @@ void igt_waitchildren(void)
 		igt_fail(err);
 }
 
+static bool igt_killchidren_timed_out;
+
+static void igt_alarm_killchildren(int signal)
+{
+	igt_info("Timed out waiting for children\n");
+
+	igt_killchidren_timed_out = true;
+
+	for (int c = 0; c < num_test_children; c++)
+		kill(test_children[c], SIGKILL);
+}
+
 /**
  * igt_waitchildren_timeout:
  * @seconds: timeout in seconds to wait
  * @reason: debug string explaining what timedout
  *
- * Wait for all children forked with igt_fork, for a maximum of @seconds.
- *
- * Wraps igt_waitchildren() and igt_set_timeout()
+ * Wait for all children forked with igt_fork, for a maximum of @seconds. If the
+ * timeout expires, kills all children and cleans them up.
  */
 void igt_waitchildren_timeout(int seconds, const char *reason)
 {
-	igt_set_timeout(seconds, reason);
-	igt_waitchildren();
+	struct sigaction sa;
+	int ret;
+
+	sa.sa_handler = igt_alarm_killchildren;
+	sigemptyset(&sa.sa_mask);
+	sa.sa_flags = 0;
+
+	igt_killchidren_timed_out = false;
+
+	sigaction(SIGALRM, &sa, NULL);
+
+	alarm(seconds);
+
+	ret = __igt_waitchildren();
+	if (!igt_killchidren_timed_out && ret)
+		igt_fail(ret);
 	igt_reset_timeout();
+	__igt_waitchildren();
+	if (igt_killchidren_timed_out)
+		igt_fail(IGT_EXIT_FAILURE);
 }
 
 /* exit handler code */
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 4/7] lib/tests: make sure we catch igt_fork leaks
  2019-02-07 16:50 [igt-dev] [PATCH i-g-t 1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Daniel Vetter
  2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 2/7] lib/tests: make sure igt_skip in igt_fork is forbidden Daniel Vetter
  2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 3/7] lib: Don't leak children in igt_waitchildren_timeout Daniel Vetter
@ 2019-02-07 16:50 ` Daniel Vetter
  2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 5/7] lib: Make sure we leak no child processes Daniel Vetter
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Daniel Vetter @ 2019-02-07 16:50 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter

Tests have to call igt_waitchildren(_timeout) before they finish
(either with success or an igt_fail/assert/skip/whatever).

Make sure we catch this.

v2: Another testcase to make sure igt_waitchildren_timeout cleans up.

v3: Actually test that igt_waitchildren_timeout kills children - we
want a proper IGT_EXIT_FAILURE, not some assert.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 lib/tests/igt_fork.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/lib/tests/igt_fork.c b/lib/tests/igt_fork.c
index 5ff2956dd0ab..e5b0ab016b23 100644
--- a/lib/tests/igt_fork.c
+++ b/lib/tests/igt_fork.c
@@ -61,6 +61,22 @@ static void igt_fork_vs_assert(void)
 	igt_waitchildren();
 }
 
+static void igt_fork_leak(void)
+{
+	igt_fork(i, 1) {
+		sleep(10);
+	}
+}
+
+static void igt_fork_timeout_leak(void)
+{
+	igt_fork(i, 1) {
+		sleep(10);
+	}
+
+	igt_waitchildren_timeout(1, "library test");
+}
+
 static int do_fork(void (*test_to_run)(void))
 {
 	int pid, status;
@@ -98,4 +114,12 @@ int main(int argc, char **argv)
 	/* check that igt_skip within a fork blows up */
 	ret = do_fork(igt_fork_vs_skip);
 	internal_assert(ret == SIGABRT + 128);
+
+	/* check that failure to clean up fails */
+	ret = do_fork(igt_fork_leak);
+	internal_assert(ret == SIGABRT + 128);
+
+	/* check that igt_waitchildren_timeout cleans up*/
+	ret = do_fork(igt_fork_timeout_leak);
+	internal_assert(ret == IGT_EXIT_FAILURE);
 }
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 5/7] lib: Make sure we leak no child processes
  2019-02-07 16:50 [igt-dev] [PATCH i-g-t 1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Daniel Vetter
                   ` (2 preceding siblings ...)
  2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 4/7] lib/tests: make sure we catch igt_fork leaks Daniel Vetter
@ 2019-02-07 16:50 ` Daniel Vetter
  2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 6/7] lib: Drop igt_child_done Daniel Vetter
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Daniel Vetter @ 2019-02-07 16:50 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter

There's a lot more ways to leak children than igt_fork, some even
handrolled. So check for that. Also have a nice littel testcase for
that too.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 lib/igt_core.c       |  4 ++++
 lib/tests/igt_fork.c | 18 ++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index a23e29ca36fe..7329a85b69bf 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1492,6 +1492,8 @@ void __igt_fail_assert(const char *domain, const char *file, const int line,
  */
 void igt_exit(void)
 {
+	int tmp;
+
 	igt_exit_called = true;
 
 	if (igt_key_file)
@@ -1527,6 +1529,8 @@ void igt_exit(void)
 		kill(test_children[c], SIGKILL);
 	assert(!num_test_children);
 
+	assert(wait(&tmp) == -1 && errno == ECHILD);
+
 	if (!test_with_subtests) {
 		struct timespec now;
 		const char *result;
diff --git a/lib/tests/igt_fork.c b/lib/tests/igt_fork.c
index e5b0ab016b23..b486d07000bb 100644
--- a/lib/tests/igt_fork.c
+++ b/lib/tests/igt_fork.c
@@ -68,6 +68,20 @@ static void igt_fork_leak(void)
 	}
 }
 
+static void plain_fork_leak(void)
+{
+	int pid;
+
+	switch (pid = fork()) {
+	case -1:
+		internal_assert(0);
+	case 0:
+		sleep(1);
+	default:
+		exit(0);
+	}
+}
+
 static void igt_fork_timeout_leak(void)
 {
 	igt_fork(i, 1) {
@@ -122,4 +136,8 @@ int main(int argc, char **argv)
 	/* check that igt_waitchildren_timeout cleans up*/
 	ret = do_fork(igt_fork_timeout_leak);
 	internal_assert(ret == IGT_EXIT_FAILURE);
+
+	/* check that any other process leaks are caught*/
+	ret = do_fork(plain_fork_leak);
+	internal_assert(ret == SIGABRT + 128);
 }
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 6/7] lib: Drop igt_child_done
  2019-02-07 16:50 [igt-dev] [PATCH i-g-t 1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Daniel Vetter
                   ` (3 preceding siblings ...)
  2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 5/7] lib: Make sure we leak no child processes Daniel Vetter
@ 2019-02-07 16:50 ` Daniel Vetter
  2019-02-07 16:51 ` [igt-dev] [PATCH i-g-t 7/7] lib: Drop IGT_EXIT_TIMEOUT Daniel Vetter
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Daniel Vetter @ 2019-02-07 16:50 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter, Tvrtko Ursulin

Added in

commit 054eb1abecd1cce2e4ee0516f3ff8a67a35dca22
Author: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Date:   Thu Mar 30 14:32:29 2017 +0100

    benchmarks/gem_wsim: Command submission workload simulator

but since then the only user was lost.

Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 lib/igt_core.c | 26 --------------------------
 lib/igt_core.h |  1 -
 2 files changed, 27 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 7329a85b69bf..89f476ca1807 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1738,32 +1738,6 @@ bool __igt_fork(void)
 
 }
 
-/**
- * igt_child_done:
- *
- * Lets the IGT core know that one of the children has exited.
- */
-void igt_child_done(pid_t pid)
-{
-	int i = 0;
-	int found = -1;
-
-	igt_assert(num_test_children > 1);
-
-	for (i = 0; i < num_test_children; i++) {
-		if (pid == test_children[i]) {
-			found = i;
-			break;
-		}
-	}
-
-	igt_assert(found >= 0);
-
-	num_test_children--;
-	for (i = found; i < num_test_children; i++)
-		test_children[i] = test_children[i + 1];
-}
-
 int __igt_waitchildren(void)
 {
 	int err = 0;
diff --git a/lib/igt_core.h b/lib/igt_core.h
index 0d02c90beec1..46bc935a428c 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -775,7 +775,6 @@ bool __igt_fork(void);
 #define igt_fork(child, num_children) \
 	for (int child = 0; child < (num_children); child++) \
 		for (; __igt_fork(); exit(0))
-void igt_child_done(pid_t pid);
 int __igt_waitchildren(void);
 void igt_waitchildren(void);
 void igt_waitchildren_timeout(int seconds, const char *reason);
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 7/7] lib: Drop IGT_EXIT_TIMEOUT
  2019-02-07 16:50 [igt-dev] [PATCH i-g-t 1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Daniel Vetter
                   ` (4 preceding siblings ...)
  2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 6/7] lib: Drop igt_child_done Daniel Vetter
@ 2019-02-07 16:51 ` Daniel Vetter
  2019-02-07 17:10 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Patchwork
  2019-02-07 18:44 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  7 siblings, 0 replies; 9+ messages in thread
From: Daniel Vetter @ 2019-02-07 16:51 UTC (permalink / raw)
  To: IGT development; +Cc: Daniel Vetter

We use the timeout status for when the runner had to kill a testcase,
which indicates a more sever issue than an operation failing that we
expected to complete within seconds.

Since it's unused, drop it.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 docs/reference/igt-gpu-tools/igt_test_programs.xml | 5 -----
 lib/igt_core.c                                     | 8 +-------
 lib/igt_core.h                                     | 7 -------
 runner/resultgen.c                                 | 3 ---
 4 files changed, 1 insertion(+), 22 deletions(-)

diff --git a/docs/reference/igt-gpu-tools/igt_test_programs.xml b/docs/reference/igt-gpu-tools/igt_test_programs.xml
index 2487da79588b..b64ba474a5f7 100644
--- a/docs/reference/igt-gpu-tools/igt_test_programs.xml
+++ b/docs/reference/igt-gpu-tools/igt_test_programs.xml
@@ -81,11 +81,6 @@
               <entry>77</entry>
               <entry>The test was skipped</entry>
             </row>
-            <row>
-              <entry>#IGT_EXIT_TIMEOUT</entry>
-              <entry>78</entry>
-              <entry>The test took longer than expected and was stopped</entry>
-            </row>
             <row>
               <entry>#IGT_EXIT_INVALID</entry>
               <entry>79</entry>
diff --git a/lib/igt_core.c b/lib/igt_core.c
index 89f476ca1807..9f29666969c0 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1135,10 +1135,7 @@ void igt_fail(int exitcode)
 	_igt_log_buffer_dump();
 
 	if (in_subtest) {
-		if (exitcode == IGT_EXIT_TIMEOUT)
-			exit_subtest("TIMEOUT");
-		else
-			exit_subtest("FAIL");
+		exit_subtest("FAIL");
 	} else {
 		assert(igt_can_fail());
 
@@ -1541,9 +1538,6 @@ void igt_exit(void)
 			case IGT_EXIT_SUCCESS:
 				result = "SUCCESS";
 				break;
-			case IGT_EXIT_TIMEOUT:
-				result = "TIMEOUT";
-				break;
 			case IGT_EXIT_SKIP:
 				result = "SKIP";
 				break;
diff --git a/lib/igt_core.h b/lib/igt_core.h
index 46bc935a428c..47ffd9e77308 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -93,13 +93,6 @@ extern char *igt_frame_dump_path;
  */
 #define IGT_TEST_DESCRIPTION(str) const char* __igt_test_description = str
 
-/**
- * IGT_EXIT_TIMEOUT:
- *
- * Exit status indicating a timeout occurred.
- */
-#define IGT_EXIT_TIMEOUT 78
-
 /**
  * IGT_EXIT_SKIP:
  *
diff --git a/runner/resultgen.c b/runner/resultgen.c
index be884955e86c..32b59d59aad2 100644
--- a/runner/resultgen.c
+++ b/runner/resultgen.c
@@ -18,7 +18,6 @@
 
 #define INCOMPLETE_EXITCODE -1
 
-_Static_assert(INCOMPLETE_EXITCODE != IGT_EXIT_TIMEOUT, "exit code clash");
 _Static_assert(INCOMPLETE_EXITCODE != IGT_EXIT_SKIP, "exit code clash");
 _Static_assert(INCOMPLETE_EXITCODE != IGT_EXIT_SUCCESS, "exit code clash");
 _Static_assert(INCOMPLETE_EXITCODE != IGT_EXIT_INVALID, "exit code clash");
@@ -731,8 +730,6 @@ static bool fill_from_dmesg(int fd,
 static const char *result_from_exitcode(int exitcode)
 {
 	switch (exitcode) {
-	case IGT_EXIT_TIMEOUT:
-		return "timeout";
 	case IGT_EXIT_SKIP:
 		return "skip";
 	case IGT_EXIT_SUCCESS:
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork
  2019-02-07 16:50 [igt-dev] [PATCH i-g-t 1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Daniel Vetter
                   ` (5 preceding siblings ...)
  2019-02-07 16:51 ` [igt-dev] [PATCH i-g-t 7/7] lib: Drop IGT_EXIT_TIMEOUT Daniel Vetter
@ 2019-02-07 17:10 ` Patchwork
  2019-02-07 18:44 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  7 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2019-02-07 17:10 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork
URL   : https://patchwork.freedesktop.org/series/56353/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5560 -> IGTPW_2355
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56353/revisions/1/mbox/

Known issues
------------

  Here are the changes found in IGTPW_2355 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_busy@basic-flip-a:
    - fi-gdg-551:         PASS -> FAIL [fdo#103182]

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-kbl-7500u:       NOTRUN -> DMESG-WARN [fdo#102505] / [fdo#103558] / [fdo#105079] / [fdo#105602]

  * igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence:
    - fi-byt-clapper:     PASS -> FAIL [fdo#103191] / [fdo#107362] +1

  * igt@prime_vgem@basic-fence-flip:
    - fi-gdg-551:         PASS -> DMESG-FAIL [fdo#103182]

  
#### Possible fixes ####

  * igt@i915_selftest@live_hangcheck:
    - fi-skl-gvtdvm:      INCOMPLETE [fdo#105600] / [fdo#108744] -> PASS

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-kbl-7567u:       WARN [fdo#109380] -> PASS

  * igt@kms_pipe_crc_basic@hang-read-crc-pipe-b:
    - fi-byt-clapper:     FAIL [fdo#103191] / [fdo#107362] -> PASS

  * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c:
    - fi-kbl-7567u:       {SKIP} [fdo#109271] -> PASS +33

  * igt@pm_rpm@basic-pci-d3-state:
    - fi-byt-j1900:       {SKIP} [fdo#109271] -> PASS

  * igt@pm_rpm@basic-rte:
    - fi-byt-j1900:       FAIL [fdo#108800] -> PASS

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#102505]: https://bugs.freedesktop.org/show_bug.cgi?id=102505
  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558
  [fdo#105079]: https://bugs.freedesktop.org/show_bug.cgi?id=105079
  [fdo#105600]: https://bugs.freedesktop.org/show_bug.cgi?id=105600
  [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
  [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109380]: https://bugs.freedesktop.org/show_bug.cgi?id=109380
  [fdo#109527]: https://bugs.freedesktop.org/show_bug.cgi?id=109527


Participating hosts (48 -> 45)
------------------------------

  Additional (1): fi-kbl-7500u 
  Missing    (4): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-bdw-samus 


Build changes
-------------

    * IGT: IGT_4813 -> IGTPW_2355

  CI_DRM_5560: b3cc6ae9211bbf4e40195469147a884b74c0ec8e @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2355: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2355/
  IGT_4813: 09f506726d0e115ee7f4a1604ae71adcf9f12690 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2355/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork
  2019-02-07 16:50 [igt-dev] [PATCH i-g-t 1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Daniel Vetter
                   ` (6 preceding siblings ...)
  2019-02-07 17:10 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Patchwork
@ 2019-02-07 18:44 ` Patchwork
  7 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2019-02-07 18:44 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork
URL   : https://patchwork.freedesktop.org/series/56353/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5560_full -> IGTPW_2355_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2355_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2355_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56353/revisions/1/mbox/

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_2355_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_exec_reuse@baggage:
    - shard-snb:          PASS -> TIMEOUT +2

  * igt@gem_exec_reuse@contexts:
    - shard-hsw:          PASS -> TIMEOUT +2
    - shard-kbl:          PASS -> TIMEOUT +2
    - shard-apl:          PASS -> TIMEOUT +2

  * igt@gem_exec_reuse@single:
    - shard-glk:          PASS -> TIMEOUT +2

  
#### Warnings ####

  * igt@i915_missed_irq:
    - shard-hsw:          {SKIP} [fdo#109271] -> TIMEOUT
    - shard-glk:          {SKIP} [fdo#109271] -> TIMEOUT
    - shard-apl:          {SKIP} [fdo#109271] -> TIMEOUT

  
Known issues
------------

  Here are the changes found in IGTPW_2355_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s3:
    - shard-kbl:          PASS -> INCOMPLETE [fdo#103665]

  * igt@gem_tiled_swapping@non-threaded:
    - shard-hsw:          PASS -> INCOMPLETE [fdo#103540]

  * igt@kms_available_modes_crc@available_mode_test_crc:
    - shard-kbl:          PASS -> FAIL [fdo#106641]

  * igt@kms_cursor_crc@cursor-256x256-onscreen:
    - shard-kbl:          PASS -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-256x256-random:
    - shard-glk:          PASS -> FAIL [fdo#103232] +6
    - shard-apl:          PASS -> FAIL [fdo#103232] +3

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
    - shard-glk:          PASS -> FAIL [fdo#105363]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt:
    - shard-glk:          PASS -> FAIL [fdo#103167] +8

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff:
    - shard-apl:          PASS -> FAIL [fdo#103167] +2

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite:
    - shard-snb:          PASS -> INCOMPLETE [fdo#105411]

  * igt@kms_plane_alpha_blend@pipe-a-alpha-transparant-fb:
    - shard-glk:          NOTRUN -> FAIL [fdo#108145]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-none:
    - shard-glk:          PASS -> FAIL [fdo#103166] +5

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-yf:
    - shard-apl:          PASS -> FAIL [fdo#103166] +1

  * igt@kms_setmode@basic:
    - shard-hsw:          PASS -> FAIL [fdo#99912]
    - shard-snb:          NOTRUN -> FAIL [fdo#99912]

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@vcs0-s3:
    - shard-kbl:          INCOMPLETE [fdo#103665] -> PASS

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
    - shard-apl:          FAIL [fdo#106510] / [fdo#108145] -> PASS

  * igt@kms_cursor_crc@cursor-64x64-sliding:
    - shard-apl:          FAIL [fdo#103232] -> PASS +1
    - shard-kbl:          FAIL [fdo#103232] -> PASS

  * igt@kms_cursor_crc@cursor-alpha-opaque:
    - shard-apl:          FAIL [fdo#109350] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt:
    - shard-snb:          {SKIP} [fdo#109271] -> PASS +1

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-glk:          FAIL [fdo#103167] -> PASS

  * igt@kms_plane@plane-position-covered-pipe-c-planes:
    - shard-apl:          FAIL [fdo#103166] -> PASS +1
    - shard-glk:          FAIL [fdo#103166] -> PASS

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
    - shard-glk:          FAIL [fdo#108145] -> PASS +2

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#106510]: https://bugs.freedesktop.org/show_bug.cgi?id=106510
  [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109350]: https://bugs.freedesktop.org/show_bug.cgi?id=109350
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (7 -> 5)
------------------------------

  Missing    (2): shard-skl shard-iclb 


Build changes
-------------

    * IGT: IGT_4813 -> IGTPW_2355
    * Piglit: piglit_4509 -> None

  CI_DRM_5560: b3cc6ae9211bbf4e40195469147a884b74c0ec8e @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2355: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2355/
  IGT_4813: 09f506726d0e115ee7f4a1604ae71adcf9f12690 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2355/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2019-02-07 18:44 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-07 16:50 [igt-dev] [PATCH i-g-t 1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Daniel Vetter
2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 2/7] lib/tests: make sure igt_skip in igt_fork is forbidden Daniel Vetter
2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 3/7] lib: Don't leak children in igt_waitchildren_timeout Daniel Vetter
2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 4/7] lib/tests: make sure we catch igt_fork leaks Daniel Vetter
2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 5/7] lib: Make sure we leak no child processes Daniel Vetter
2019-02-07 16:50 ` [igt-dev] [PATCH i-g-t 6/7] lib: Drop igt_child_done Daniel Vetter
2019-02-07 16:51 ` [igt-dev] [PATCH i-g-t 7/7] lib: Drop IGT_EXIT_TIMEOUT Daniel Vetter
2019-02-07 17:10 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/7] lib/tests: Check that igt_assert forwards correctly through igt_fork Patchwork
2019-02-07 18:44 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork

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