igt-dev.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/2] runner/resultgen: Add a new field to carry overall runtimes
@ 2018-08-30 13:00 Petri Latvala
  2018-08-30 13:00 ` [igt-dev] [PATCH i-g-t 2/2] runner: Introduce --piglit-style-dmesg Petri Latvala
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Petri Latvala @ 2018-08-30 13:00 UTC (permalink / raw)
  To: igt-dev; +Cc: Martin Peres

Previously, the total runtime of binary foo with subtests bar and quz
was accumulated to the tests field under 'igt@foo' with just a
TimeAttribute field. This confuses piglit-derived scripts deep down
the CI pipeline, so move the overall binary runtime to a new field
'runtimes', with TimeAttribute fields for 'igt@foo'.

Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Martin Peres <martin.peres@linux.intel.com>
---
 runner/resultgen.c | 73 +++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 47 insertions(+), 26 deletions(-)

diff --git a/runner/resultgen.c b/runner/resultgen.c
index 1c713b53..b2d080e4 100644
--- a/runner/resultgen.c
+++ b/runner/resultgen.c
@@ -29,6 +29,13 @@ struct subtests
 	size_t size;
 };
 
+struct results
+{
+	struct json_object *tests;
+	struct json_object *totals;
+	struct json_object *runtimes;
+};
+
 /*
  * A lot of string handling here operates on an mmapped buffer, and
  * thus we can't assume null-terminated strings. Buffers will be
@@ -725,7 +732,7 @@ static void add_subtest(struct subtests *subtests, char *subtest)
 static void fill_from_journal(int fd,
 			      struct job_list_entry *entry,
 			      struct subtests *subtests,
-			      struct json_object *tests)
+			      struct results *results)
 {
 	FILE *f = fdopen(fd, "r");
 	char *line = NULL;
@@ -735,6 +742,8 @@ static void fill_from_journal(int fd,
 	char timeoutline[] = "timeout:";
 	int exitcode = INCOMPLETE_EXITCODE;
 	bool has_timeout = false;
+	struct json_object *tests = results->tests;
+	struct json_object *runtimes = results->runtimes;
 
 	while ((read = getline(&line, &linelen, f)) > 0) {
 		if (read >= strlen(exitline) && !memcmp(line, exitline, strlen(exitline))) {
@@ -743,15 +752,20 @@ static void fill_from_journal(int fd,
 			double time = 0.0;
 			struct json_object *obj;
 
-			generate_piglit_name(entry->binary, NULL, piglit_name, sizeof(piglit_name));
-			obj = get_or_create_json_object(tests, piglit_name);
-
 			exitcode = atoi(line + strlen(exitline));
 
 			if (p)
 				time = strtod(p + 1, NULL);
 
+			generate_piglit_name(entry->binary, NULL, piglit_name, sizeof(piglit_name));
+			obj = get_or_create_json_object(runtimes, piglit_name);
 			add_runtime(obj, time);
+
+			/* If no subtests, the test result node also gets the runtime */
+			if (subtests->size == 0) {
+				obj = get_or_create_json_object(tests, piglit_name);
+				add_runtime(obj, time);
+			}
 		} else if (read >= strlen(timeoutline) && !memcmp(line, timeoutline, strlen(timeoutline))) {
 			has_timeout = true;
 
@@ -776,7 +790,7 @@ static void fill_from_journal(int fd,
 
 				/* ... and also for the binary */
 				generate_piglit_name(entry->binary, NULL, piglit_name, sizeof(piglit_name));
-				obj = get_or_create_json_object(tests, piglit_name);
+				obj = get_or_create_json_object(runtimes, piglit_name);
 				add_runtime(obj, time);
 			}
 		} else {
@@ -900,8 +914,7 @@ static void add_result_to_totals(struct json_object *totals,
 
 static void add_to_totals(char *binary,
 			  struct subtests *subtests,
-			  struct json_object *tests,
-			  struct json_object *totals)
+			  struct results *results)
 {
 	struct json_object *test, *resultobj, *roottotal, *binarytotal;
 	char piglit_name[256];
@@ -909,11 +922,11 @@ static void add_to_totals(char *binary,
 	size_t i;
 
 	generate_piglit_name(binary, NULL, piglit_name, sizeof(piglit_name));
-	roottotal = get_totals_object(totals, "");
-	binarytotal = get_totals_object(totals, piglit_name);
+	roottotal = get_totals_object(results->totals, "");
+	binarytotal = get_totals_object(results->totals, piglit_name);
 
 	if (subtests->size == 0) {
-		test = get_or_create_json_object(tests, piglit_name);
+		test = get_or_create_json_object(results->tests, piglit_name);
 		if (!json_object_object_get_ex(test, "result", &resultobj)) {
 			fprintf(stderr, "Warning: No results set for %s\n", piglit_name);
 			return;
@@ -926,7 +939,7 @@ static void add_to_totals(char *binary,
 
 	for (i = 0; i < subtests->size; i++) {
 		generate_piglit_name(binary, subtests->names[i], piglit_name, sizeof(piglit_name));
-		test = get_or_create_json_object(tests, piglit_name);
+		test = get_or_create_json_object(results->tests, piglit_name);
 		if (!json_object_object_get_ex(test, "result", &resultobj)) {
 			fprintf(stderr, "Warning: No results set for %s\n", piglit_name);
 			return;
@@ -939,8 +952,7 @@ static void add_to_totals(char *binary,
 
 static bool parse_test_directory(int dirfd,
 				 struct job_list_entry *entry,
-				 struct json_object *tests,
-				 struct json_object *totals)
+				 struct results *results)
 {
 	int fds[_F_LAST];
 	struct subtests subtests = {};
@@ -954,28 +966,40 @@ static bool parse_test_directory(int dirfd,
 	 * fill_from_journal fills the subtests struct and adds
 	 * timeout results where applicable.
 	 */
-	fill_from_journal(fds[_F_JOURNAL], entry, &subtests, tests);
+	fill_from_journal(fds[_F_JOURNAL], entry, &subtests, results);
 
-	if (!fill_from_output(fds[_F_OUT], entry->binary, "out", &subtests, tests) ||
-	    !fill_from_output(fds[_F_ERR], entry->binary, "err", &subtests, tests) ||
-	    !fill_from_dmesg(fds[_F_DMESG], entry->binary, &subtests, tests)) {
+	if (!fill_from_output(fds[_F_OUT], entry->binary, "out", &subtests, results->tests) ||
+	    !fill_from_output(fds[_F_ERR], entry->binary, "err", &subtests, results->tests) ||
+	    !fill_from_dmesg(fds[_F_DMESG], entry->binary, &subtests, results->tests)) {
 		fprintf(stderr, "Error parsing output files\n");
 		return false;
 	}
 
-	override_results(entry->binary, &subtests, tests);
-	add_to_totals(entry->binary, &subtests, tests, totals);
+	override_results(entry->binary, &subtests, results->tests);
+	add_to_totals(entry->binary, &subtests, results);
 
 	close_outputs(fds);
 
 	return true;
 }
 
+static void create_result_root_nodes(struct json_object *root,
+				     struct results *results)
+{
+	results->tests = json_object_new_object();
+	json_object_object_add(root, "tests", results->tests);
+	results->totals = json_object_new_object();
+	json_object_object_add(root, "totals", results->totals);
+	results->runtimes = json_object_new_object();
+	json_object_object_add(root, "runtimes", results->runtimes);
+}
+
 bool generate_results(int dirfd)
 {
 	struct settings settings;
 	struct job_list job_list;
-	struct json_object *obj, *tests, *totals;
+	struct json_object *obj;
+	struct results results;
 	int resultsfd, testdirfd, unamefd;
 	const char *json_string;
 	size_t i;
@@ -1019,6 +1043,8 @@ bool generate_results(int dirfd)
 		close(unamefd);
 	}
 
+	create_result_root_nodes(obj, &results);
+
 	/*
 	 * Result fields that won't be added:
 	 *
@@ -1033,11 +1059,6 @@ bool generate_results(int dirfd)
 	 * - time_elapsed
 	 */
 
-	tests = json_object_new_object();
-	json_object_object_add(obj, "tests", tests);
-	totals = json_object_new_object();
-	json_object_object_add(obj, "totals", totals);
-
 	for (i = 0; i < job_list.size; i++) {
 		char name[16];
 
@@ -1047,7 +1068,7 @@ bool generate_results(int dirfd)
 			break;
 		}
 
-		if (!parse_test_directory(testdirfd, &job_list.entries[i], tests, totals)) {
+		if (!parse_test_directory(testdirfd, &job_list.entries[i], &results)) {
 			close(resultsfd);
 			return false;
 		}
-- 
2.14.1

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

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

* [igt-dev] [PATCH i-g-t 2/2] runner: Introduce --piglit-style-dmesg
  2018-08-30 13:00 [igt-dev] [PATCH i-g-t 1/2] runner/resultgen: Add a new field to carry overall runtimes Petri Latvala
@ 2018-08-30 13:00 ` Petri Latvala
  2018-08-30 13:27   ` Martin Peres
  2018-08-30 17:58 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] runner/resultgen: Add a new field to carry overall runtimes Patchwork
  2018-08-31  1:37 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  2 siblings, 1 reply; 5+ messages in thread
From: Petri Latvala @ 2018-08-30 13:00 UTC (permalink / raw)
  To: igt-dev; +Cc: Martin Peres

With the flag, dmesg handling is done exactly as piglit does it: Level
5 (info) and higher dmesg lines, if they match a regexp, cause test
result to change to dmesg-*.

The default is false (use new method).

Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Martin Peres <martin.peres@linux.intel.com>
---
 runner/resultgen.c    | 37 +++++++++++++++++++++++++++----------
 runner/runner_tests.c | 21 +++++++++++++++++++++
 runner/settings.c     | 13 +++++++++++++
 runner/settings.h     |  1 +
 4 files changed, 62 insertions(+), 10 deletions(-)

diff --git a/runner/resultgen.c b/runner/resultgen.c
index b2d080e4..ea680914 100644
--- a/runner/resultgen.c
+++ b/runner/resultgen.c
@@ -525,15 +525,22 @@ static const char igt_dmesg_whitelist[] =
 	;
 #undef _
 
+static const char igt_piglit_style_dmesg_blacklist[] =
+	"(\\[drm:|drm_|intel_|i915_)";
+
 static regex_t re;
 
-static int init_regex_whitelist(void)
+static int init_regex_whitelist(struct settings *settings)
 {
 	static int status = -1;
 
 	if (status == -1) {
-		if (regcomp(&re, igt_dmesg_whitelist, REG_EXTENDED | REG_NOSUB) != 0) {
-			fprintf(stderr, "Cannot compile dmesg whitelist regexp\n");
+		const char *regex = settings->piglit_style_dmesg ?
+			igt_piglit_style_dmesg_blacklist :
+			igt_dmesg_whitelist;
+
+		if (regcomp(&re, regex, REG_EXTENDED | REG_NOSUB) != 0) {
+			fprintf(stderr, "Cannot compile dmesg regexp\n");
 			status = 1;
 			return false;
 		}
@@ -604,7 +611,9 @@ static void add_empty_dmesgs_where_missing(struct json_object *tests,
 
 }
 
-static bool fill_from_dmesg(int fd, char *binary,
+static bool fill_from_dmesg(int fd,
+			    struct settings *settings,
+			    char *binary,
 			    struct subtests *subtests,
 			    struct json_object *tests)
 {
@@ -620,7 +629,7 @@ static bool fill_from_dmesg(int fd, char *binary,
 		return false;
 	}
 
-	if (init_regex_whitelist()) {
+	if (init_regex_whitelist(settings)) {
 		fclose(f);
 		return false;
 	}
@@ -654,9 +663,16 @@ static bool fill_from_dmesg(int fd, char *binary,
 			current_test = get_or_create_json_object(tests, piglit_name);
 		}
 
-		if ((flags & 0x07) <= 4 && continuation != 'c' &&
-		    regexec(&re, message, (size_t)0, NULL, 0) == REG_NOMATCH) {
-			append_line(&warnings, &warningslen, formatted);
+		if (settings->piglit_style_dmesg) {
+			if ((flags & 0x07) <= 5 && continuation != 'c' &&
+			    regexec(&re, message, (size_t)0, NULL, 0) != REG_NOMATCH) {
+				append_line(&warnings, &warningslen, formatted);
+			}
+		} else {
+			if ((flags & 0x07) <= 4 && continuation != 'c' &&
+			    regexec(&re, message, (size_t)0, NULL, 0) == REG_NOMATCH) {
+				append_line(&warnings, &warningslen, formatted);
+			}
 		}
 		append_line(&dmesg, &dmesglen, formatted);
 		free(formatted);
@@ -952,6 +968,7 @@ static void add_to_totals(char *binary,
 
 static bool parse_test_directory(int dirfd,
 				 struct job_list_entry *entry,
+				 struct settings *settings,
 				 struct results *results)
 {
 	int fds[_F_LAST];
@@ -970,7 +987,7 @@ static bool parse_test_directory(int dirfd,
 
 	if (!fill_from_output(fds[_F_OUT], entry->binary, "out", &subtests, results->tests) ||
 	    !fill_from_output(fds[_F_ERR], entry->binary, "err", &subtests, results->tests) ||
-	    !fill_from_dmesg(fds[_F_DMESG], entry->binary, &subtests, results->tests)) {
+	    !fill_from_dmesg(fds[_F_DMESG], settings, entry->binary, &subtests, results->tests)) {
 		fprintf(stderr, "Error parsing output files\n");
 		return false;
 	}
@@ -1068,7 +1085,7 @@ bool generate_results(int dirfd)
 			break;
 		}
 
-		if (!parse_test_directory(testdirfd, &job_list.entries[i], &results)) {
+		if (!parse_test_directory(testdirfd, &job_list.entries[i], &settings, &results)) {
 			close(resultsfd);
 			return false;
 		}
diff --git a/runner/runner_tests.c b/runner/runner_tests.c
index 942ba26b..1a95a75a 100644
--- a/runner/runner_tests.c
+++ b/runner/runner_tests.c
@@ -152,6 +152,7 @@ static void assert_settings_equal(struct settings *one, struct settings *two)
 	igt_assert_eq(one->use_watchdog, two->use_watchdog);
 	igt_assert_eqstr(one->test_root, two->test_root);
 	igt_assert_eqstr(one->results_path, two->results_path);
+	igt_assert_eq(one->piglit_style_dmesg, two->piglit_style_dmesg);
 }
 
 static void assert_job_list_equal(struct job_list *one, struct job_list *two)
@@ -219,6 +220,7 @@ igt_main
 		igt_assert(!settings.use_watchdog);
 		igt_assert(strstr(settings.test_root, "test-root-dir") != NULL);
 		igt_assert(strstr(settings.results_path, "path-to-results") != NULL);
+		igt_assert(!settings.piglit_style_dmesg);
 	}
 
 	igt_subtest_group {
@@ -332,6 +334,7 @@ igt_main
 		igt_assert(!settings.use_watchdog);
 		igt_assert(strstr(settings.test_root, testdatadir) != NULL);
 		igt_assert(strstr(settings.results_path, "path-to-results") != NULL);
+		igt_assert(!settings.piglit_style_dmesg);
 	}
 
 	igt_fixture {
@@ -355,6 +358,7 @@ igt_main
 				 "--multiple-mode",
 				 "--inactivity-timeout", "27",
 				 "--use-watchdog",
+				 "--piglit-style-dmesg",
 				 "test-root-dir",
 				 "path-to-results",
 		};
@@ -379,6 +383,7 @@ igt_main
 		igt_assert(settings.use_watchdog);
 		igt_assert(strstr(settings.test_root, "test-root-dir") != NULL);
 		igt_assert(strstr(settings.results_path, "path-to-results") != NULL);
+		igt_assert(settings.piglit_style_dmesg);
 	}
 
 	igt_subtest("invalid-option") {
@@ -578,6 +583,22 @@ igt_main
 
 		igt_subtest("settings-serialize") {
 			char *argv[] = { "runner",
+					 "-n", "foo",
+					 "--abort-on-monitored-error",
+					 "--test-list", "path-to-test-list",
+					 "--ignore-missing",
+					 "--dry-run",
+					 "-t", "pattern1",
+					 "-t", "pattern2",
+					 "-x", "xpattern1",
+					 "-x", "xpattern2",
+					 "-s",
+					 "-l", "verbose",
+					 "--overwrite",
+					 "--multiple-mode",
+					 "--inactivity-timeout", "27",
+					 "--use-watchdog",
+					 "--piglit-style-dmesg",
 					 testdatadir,
 					 dirname,
 			};
diff --git a/runner/settings.c b/runner/settings.c
index 060459b0..70fff3c0 100644
--- a/runner/settings.c
+++ b/runner/settings.c
@@ -16,6 +16,7 @@ enum {
 	OPT_ABORT_ON_ERROR,
 	OPT_TEST_LIST,
 	OPT_IGNORE_MISSING,
+	OPT_PIGLIT_DMESG,
 	OPT_HELP = 'h',
 	OPT_NAME = 'n',
 	OPT_DRY_RUN = 'd',
@@ -89,6 +90,12 @@ static const char *usage_str =
 	"  --use-watchdog        Use hardware watchdog for lethal enforcement of the\n"
 	"                        above timeout. Killing the test process is still\n"
 	"                        attempted at timeout trigger.\n"
+	"  --piglit-style-dmesg  Filter dmesg like piglit does. Piglit considers matches\n"
+	"                        against a short filter list to mean the test result\n"
+	"                        should be changed to dmesg-warn/dmesg-fail. Without\n"
+	"                        this option everything except matches against a\n"
+	"                        (longer) filter list means the test result should\n"
+	"                        change.\n"
 	"  [test_root]           Directory that contains the IGT tests. The environment\n"
 	"                        variable IGT_TEST_ROOT will be used if set, overriding\n"
 	"                        this option if given.\n"
@@ -192,6 +199,7 @@ bool parse_options(int argc, char **argv,
 		{"multiple-mode", no_argument, NULL, OPT_MULTIPLE},
 		{"inactivity-timeout", required_argument, NULL, OPT_TIMEOUT},
 		{"use-watchdog", no_argument, NULL, OPT_WATCHDOG},
+		{"piglit-style-dmesg", no_argument, NULL, OPT_PIGLIT_DMESG},
 		{ 0, 0, 0, 0},
 	};
 
@@ -248,6 +256,9 @@ bool parse_options(int argc, char **argv,
 		case OPT_WATCHDOG:
 			settings->use_watchdog = true;
 			break;
+		case OPT_PIGLIT_DMESG:
+			settings->piglit_style_dmesg = true;
+			break;
 		case '?':
 			usage(NULL, stderr);
 			goto error;
@@ -438,6 +449,7 @@ bool serialize_settings(struct settings *settings)
 	SERIALIZE_LINE(f, settings, multiple_mode, "%d");
 	SERIALIZE_LINE(f, settings, inactivity_timeout, "%d");
 	SERIALIZE_LINE(f, settings, use_watchdog, "%d");
+	SERIALIZE_LINE(f, settings, piglit_style_dmesg, "%d");
 	SERIALIZE_LINE(f, settings, test_root, "%s");
 	SERIALIZE_LINE(f, settings, results_path, "%s");
 
@@ -491,6 +503,7 @@ bool read_settings(struct settings *settings, int dirfd)
 		PARSE_LINE(settings, name, val, multiple_mode, numval);
 		PARSE_LINE(settings, name, val, inactivity_timeout, numval);
 		PARSE_LINE(settings, name, val, use_watchdog, numval);
+		PARSE_LINE(settings, name, val, piglit_style_dmesg, numval);
 		PARSE_LINE(settings, name, val, test_root, val ? strdup(val) : NULL);
 		PARSE_LINE(settings, name, val, results_path, val ? strdup(val) : NULL);
 
diff --git a/runner/settings.h b/runner/settings.h
index 9d1f03fb..e534b845 100644
--- a/runner/settings.h
+++ b/runner/settings.h
@@ -33,6 +33,7 @@ struct settings {
 	bool use_watchdog;
 	char *test_root;
 	char *results_path;
+	bool piglit_style_dmesg;
 };
 
 /**
-- 
2.14.1

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

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

* Re: [igt-dev] [PATCH i-g-t 2/2] runner: Introduce --piglit-style-dmesg
  2018-08-30 13:00 ` [igt-dev] [PATCH i-g-t 2/2] runner: Introduce --piglit-style-dmesg Petri Latvala
@ 2018-08-30 13:27   ` Martin Peres
  0 siblings, 0 replies; 5+ messages in thread
From: Martin Peres @ 2018-08-30 13:27 UTC (permalink / raw)
  To: Petri Latvala, igt-dev

On 30/08/2018 16:00, Petri Latvala wrote:
> With the flag, dmesg handling is done exactly as piglit does it: Level
> 5 (info) and higher dmesg lines, if they match a regexp, cause test
> result to change to dmesg-*.
> 
> The default is false (use new method).
> 
> Signed-off-by: Petri Latvala <petri.latvala@intel.com>
> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> Cc: Martin Peres <martin.peres@linux.intel.com>

Both patches are:

Acked-by: Martin Peres <martin.peres@linux.intel.com>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] runner/resultgen: Add a new field to carry overall runtimes
  2018-08-30 13:00 [igt-dev] [PATCH i-g-t 1/2] runner/resultgen: Add a new field to carry overall runtimes Petri Latvala
  2018-08-30 13:00 ` [igt-dev] [PATCH i-g-t 2/2] runner: Introduce --piglit-style-dmesg Petri Latvala
@ 2018-08-30 17:58 ` Patchwork
  2018-08-31  1:37 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-08-30 17:58 UTC (permalink / raw)
  To: Petri Latvala; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/2] runner/resultgen: Add a new field to carry overall runtimes
URL   : https://patchwork.freedesktop.org/series/48949/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4737 -> IGTPW_1760 =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
      {fi-byt-clapper}:   PASS -> FAIL (fdo#103191, fdo#107362)

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-snb-2520m:       PASS -> INCOMPLETE (fdo#103713)
      fi-blb-e6850:       PASS -> INCOMPLETE (fdo#107718)

    
    ==== Possible fixes ====

    igt@kms_pipe_crc_basic@read-crc-pipe-a:
      {fi-byt-clapper}:   FAIL (fdo#107362) -> PASS

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

  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718


== Participating hosts (53 -> 49) ==

  Missing    (4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


== Build changes ==

    * IGT: IGT_4611 -> IGTPW_1760

  CI_DRM_4737: c8fe77635992b1f6b32102657faced7c9165c942 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_1760: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1760/
  IGT_4611: b966dd93a30f41581fe1dbf9bc1c4a29b552ca05 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/2] runner/resultgen: Add a new field to carry overall runtimes
  2018-08-30 13:00 [igt-dev] [PATCH i-g-t 1/2] runner/resultgen: Add a new field to carry overall runtimes Petri Latvala
  2018-08-30 13:00 ` [igt-dev] [PATCH i-g-t 2/2] runner: Introduce --piglit-style-dmesg Petri Latvala
  2018-08-30 17:58 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] runner/resultgen: Add a new field to carry overall runtimes Patchwork
@ 2018-08-31  1:37 ` Patchwork
  2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-08-31  1:37 UTC (permalink / raw)
  To: Petri Latvala; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/2] runner/resultgen: Add a new field to carry overall runtimes
URL   : https://patchwork.freedesktop.org/series/48949/
State : success

== Summary ==

= CI Bug Log - changes from IGT_4611_full -> IGTPW_1760_full =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_hangman@error-state-capture-bsd2:
      shard-snb:          SKIP -> INCOMPLETE (fdo#105411)

    igt@drv_suspend@shrink:
      shard-apl:          PASS -> INCOMPLETE (fdo#103927, fdo#106886)

    igt@gem_exec_big:
      shard-hsw:          PASS -> INCOMPLETE (fdo#103540)

    {igt@gem_render_copy@linear}:
      shard-kbl:          PASS -> INCOMPLETE (fdo#103665)

    igt@kms_setmode@basic:
      shard-apl:          PASS -> FAIL (fdo#99912)

    igt@perf@blocking:
      shard-hsw:          PASS -> FAIL (fdo#102252)

    
    ==== Possible fixes ====

    igt@drv_selftest@live_hangcheck:
      shard-kbl:          DMESG-FAIL (fdo#106560, fdo#106947) -> PASS

    igt@gem_render_copy_redux@normal:
      shard-kbl:          INCOMPLETE (fdo#106650, fdo#103665) -> PASS

    igt@kms_cursor_crc@cursor-64x64-suspend:
      shard-kbl:          INCOMPLETE (fdo#107556, fdo#103665) -> PASS

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
      shard-snb:          INCOMPLETE (fdo#105411) -> PASS

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

  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
  fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
  fdo#106650 https://bugs.freedesktop.org/show_bug.cgi?id=106650
  fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
  fdo#106947 https://bugs.freedesktop.org/show_bug.cgi?id=106947
  fdo#107556 https://bugs.freedesktop.org/show_bug.cgi?id=107556
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

    * IGT: IGT_4611 -> IGTPW_1760
    * Linux: CI_DRM_4715 -> CI_DRM_4737

  CI_DRM_4715: 1b73a69651beab39192502181c83e77a1022014a @ git://anongit.freedesktop.org/gfx-ci/linux
  CI_DRM_4737: c8fe77635992b1f6b32102657faced7c9165c942 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_1760: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1760/
  IGT_4611: b966dd93a30f41581fe1dbf9bc1c4a29b552ca05 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

end of thread, other threads:[~2018-08-31  1:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-30 13:00 [igt-dev] [PATCH i-g-t 1/2] runner/resultgen: Add a new field to carry overall runtimes Petri Latvala
2018-08-30 13:00 ` [igt-dev] [PATCH i-g-t 2/2] runner: Introduce --piglit-style-dmesg Petri Latvala
2018-08-30 13:27   ` Martin Peres
2018-08-30 17:58 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] runner/resultgen: Add a new field to carry overall runtimes Patchwork
2018-08-31  1:37 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).