All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH] runner: add --list-all and --blacklist
@ 2019-06-14 13:24 Oleg Vasilev
  2019-06-14 13:43 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork
                   ` (9 more replies)
  0 siblings, 10 replies; 17+ messages in thread
From: Oleg Vasilev @ 2019-06-14 13:24 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala

Currently, runner already collects all subtest names into job_list.
--list-all allows to output it to stdout.

--blacklist option takes a filename as an argument and adds all regexes
from that file to the exclusion list.

Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
---
 runner/job_list.c     |  18 +++++++
 runner/job_list.h     |   1 +
 runner/runner.c       |   5 ++
 runner/runner_tests.c |  14 ++++-
 runner/settings.c     | 118 ++++++++++++++++++++++++++++++++++--------
 runner/settings.h     |   1 +
 6 files changed, 135 insertions(+), 22 deletions(-)

diff --git a/runner/job_list.c b/runner/job_list.c
index 4a16742f..2a50dc5c 100644
--- a/runner/job_list.c
+++ b/runner/job_list.c
@@ -291,6 +291,24 @@ static bool job_list_from_test_list(struct job_list *job_list,
 	return any;
 }
 
+void list_all_tests(struct job_list* lst)
+{
+	for (size_t test_idx = 0; test_idx < lst->size; ++test_idx){
+		struct job_list_entry* current_entry = lst->entries+test_idx;
+		if (current_entry->subtest_count==0) {
+			printf("igt@%s\n", current_entry->binary);
+			continue;
+		}
+		for (size_t subtest_idx = 0;
+		    subtest_idx < current_entry->subtest_count;
+		    ++subtest_idx) {
+			char *subtest_name = current_entry->subtests[subtest_idx];
+			printf("igt@%s@%s\n", current_entry->binary, subtest_name);
+		}
+	}
+}
+
+
 static char *lowercase(const char *str)
 {
 	char *ret = malloc(strlen(str) + 1);
diff --git a/runner/job_list.h b/runner/job_list.h
index f8bbbddc..cee4bff6 100644
--- a/runner/job_list.h
+++ b/runner/job_list.h
@@ -36,5 +36,6 @@ bool create_job_list(struct job_list *job_list, struct settings *settings);
 
 bool serialize_job_list(struct job_list *job_list, struct settings *settings);
 bool read_job_list(struct job_list *job_list, int dirfd);
+void list_all_tests(struct job_list* lst);
 
 #endif
diff --git a/runner/runner.c b/runner/runner.c
index e1a6ccba..909ec861 100644
--- a/runner/runner.c
+++ b/runner/runner.c
@@ -24,6 +24,11 @@ int main(int argc, char **argv)
 		return 1;
 	}
 
+	if(settings.list_all) {
+		list_all_tests(&job_list);
+		return 0;
+	}
+
 	if (!initialize_execute_state(&state, &settings, &job_list)) {
 		return 1;
 	}
diff --git a/runner/runner_tests.c b/runner/runner_tests.c
index c09cda70..00bb9de3 100644
--- a/runner/runner_tests.c
+++ b/runner/runner_tests.c
@@ -388,6 +388,8 @@ igt_main
 				       "-t", "pattern2",
 				       "-x", "xpattern1",
 				       "-x", "xpattern2",
+				       "-b", "../runner/testdata/test-blacklist.txt",
+				       "--blacklist", "../runner/testdata/test-blacklist2.txt",
 				       "-s",
 				       "-l", "verbose",
 				       "--overwrite",
@@ -410,9 +412,11 @@ igt_main
 		igt_assert_eq(settings->include_regexes.size, 2);
 		igt_assert_eqstr(settings->include_regexes.regex_strings[0], "pattern1");
 		igt_assert_eqstr(settings->include_regexes.regex_strings[1], "pattern2");
-		igt_assert_eq(settings->exclude_regexes.size, 2);
+		igt_assert_eq(settings->exclude_regexes.size, 4);
 		igt_assert_eqstr(settings->exclude_regexes.regex_strings[0], "xpattern1");
 		igt_assert_eqstr(settings->exclude_regexes.regex_strings[1], "xpattern2");
+		igt_assert_eqstr(settings->exclude_regexes.regex_strings[2], "xpattern3"); /* From blacklist */
+		igt_assert_eqstr(settings->exclude_regexes.regex_strings[3], "xpattern4"); /* From blacklist2 */
 		igt_assert(settings->sync);
 		igt_assert_eq(settings->log_level, LOG_LEVEL_VERBOSE);
 		igt_assert(settings->overwrite);
@@ -426,6 +430,14 @@ igt_main
 		igt_assert(settings->piglit_style_dmesg);
 		igt_assert_eq(settings->dmesg_warn_level, 3);
 	}
+	igt_subtest("parse-list-all") {
+		const char *argv[] = { "runner",
+				       "--list-all",
+				       "test-root-dir"};
+
+		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
+		igt_assert_eq(settings->list_all, 1);
+	}
 
 	igt_subtest("dmesg-warn-level-inferred") {
 		const char *argv[] = { "runner",
diff --git a/runner/settings.c b/runner/settings.c
index ad38ae8d..2692370f 100644
--- a/runner/settings.c
+++ b/runner/settings.c
@@ -1,5 +1,6 @@
 #include "settings.h"
 
+#include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <getopt.h>
@@ -30,6 +31,8 @@ enum {
 	OPT_MULTIPLE = 'm',
 	OPT_TIMEOUT = 'c',
 	OPT_WATCHDOG = 'g',
+	OPT_BLACKLIST = 'b',
+	OPT_LIST_ALL = 'L',
 };
 
 static struct {
@@ -117,7 +120,8 @@ static bool parse_abort_conditions(struct settings *settings, const char *optarg
 }
 
 static const char *usage_str =
-	"usage: runner [options] [test_root] results-path\n\n"
+	"usage: runner [options] [test_root] results-path\n"
+	"   or: runner --list-all [options] [test_root] \n\n"
 	"Options:\n"
 	" Piglit compatible:\n"
 	"  -h, --help            Show this help message and exit\n"
@@ -172,6 +176,10 @@ static const char *usage_str =
 	"                        (longer) filter list means the test result should\n"
 	"                        change. KERN_NOTICE dmesg level is treated as warn,\n"
 	"                        unless overridden with --dmesg-warn-level.\n"
+	"  -b, --blacklist FILENAME\n"
+	"                        Exclude all test matching to regexes from FILENAME\n"
+	"                        (can be used more than once)\n"
+	"  -L, --list-all        List all matching subtests instead of running\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"
@@ -213,6 +221,51 @@ static bool add_regex(struct regex_list *list, char *new)
 	return true;
 }
 
+static bool parse_blacklist(struct regex_list *exclude_regexes, char *blacklist_filename)
+{
+	FILE *f;
+	char *line = NULL;
+	size_t line_len = 0;
+	bool status;
+
+
+	if ((f = fopen(blacklist_filename, "r")) == NULL) {
+		fprintf(stderr, "Cannot open blacklist file %s\n", blacklist_filename);
+		return false;
+	}
+	while (1) {
+		size_t str_size = 0, idx = 0;
+
+		if (getline(&line, &line_len, f) == -1) {
+			if (errno == EINTR)
+				continue;
+			else
+				break;
+		}
+
+		while (true) {
+			if(line[idx]=='\n' ||
+			   line[idx]=='#'  || /* # starts a comment */
+			   line[idx]=='\0')
+				break;
+			idx++;
+			if (!isspace(line[str_size]))
+				str_size = idx;
+			}
+		if (str_size > 0) {
+			char * test_regex = strndup(line, str_size);
+			status = add_regex(exclude_regexes, test_regex);
+			if(!status){
+				break;
+			}
+		}
+	}
+
+	free(line);
+	fclose(f);
+	return status;
+}
+
 static void free_regexes(struct regex_list *regexes)
 {
 	size_t i;
@@ -272,6 +325,8 @@ bool parse_options(int argc, char **argv,
 		{"use-watchdog", no_argument, NULL, OPT_WATCHDOG},
 		{"piglit-style-dmesg", no_argument, NULL, OPT_PIGLIT_DMESG},
 		{"dmesg-warn-level", required_argument, NULL, OPT_DMESG_WARN_LEVEL},
+		{"blacklist", required_argument, NULL, OPT_BLACKLIST},
+		{"list-all", no_argument, NULL, OPT_LIST_ALL},
 		{ 0, 0, 0, 0},
 	};
 
@@ -281,7 +336,7 @@ bool parse_options(int argc, char **argv,
 
 	settings->dmesg_warn_level = -1;
 
-	while ((c = getopt_long(argc, argv, "hn:dt:x:sl:om", long_options, NULL)) != -1) {
+	while ((c = getopt_long(argc, argv, "hn:dt:x:sl:omb:L", long_options, NULL)) != -1) {
 		switch (c) {
 		case OPT_HELP:
 			usage(NULL, stdout);
@@ -342,6 +397,13 @@ bool parse_options(int argc, char **argv,
 		case OPT_DMESG_WARN_LEVEL:
 			settings->dmesg_warn_level = atoi(optarg);
 			break;
+		case OPT_BLACKLIST:
+			if (!parse_blacklist(&settings->exclude_regexes, absolute_path(optarg)))
+				goto error;
+			break;
+		case OPT_LIST_ALL:
+			settings->list_all = true;
+			break;
 		case '?':
 			usage(NULL, stderr);
 			goto error;
@@ -354,20 +416,39 @@ bool parse_options(int argc, char **argv,
 	if (settings->dmesg_warn_level < 0)
 		settings->dmesg_warn_level = 4; /* KERN_WARN */
 
-	switch (argc - optind) {
-	case 2:
-		settings->test_root = absolute_path(argv[optind]);
-		++optind;
-		/* fallthrough */
-	case 1:
-		settings->results_path = absolute_path(argv[optind]);
-		break;
-	case 0:
-		usage("Results-path missing", stderr);
-		goto error;
-	default:
-		usage("Extra arguments after results-path", stderr);
-		goto error;
+	if (settings->list_all) { /* --list-all doesn't requrie results path */
+		switch (argc - optind) {
+		case 1:
+			settings->test_root = absolute_path(argv[optind]);
+			++optind;
+			/* fallthrough */
+		case 0:
+			break;
+		default:
+			usage("Too many arguments for --list-all", stderr);
+			goto error;
+		}
+	} else {
+		switch (argc - optind) {
+		case 2:
+			settings->test_root = absolute_path(argv[optind]);
+			++optind;
+			/* fallthrough */
+		case 1:
+			settings->results_path = absolute_path(argv[optind]);
+			break;
+		case 0:
+			usage("Results-path missing", stderr);
+			goto error;
+		default:
+			usage("Extra arguments after results-path", stderr);
+			goto error;
+		}
+		if (!settings->name) {
+			char *name = strdup(settings->results_path);
+			settings->name = strdup(basename(name));
+			free(name);
+		}
 	}
 
 	if ((env_test_root = getenv("IGT_TEST_ROOT")) != NULL) {
@@ -380,11 +461,6 @@ bool parse_options(int argc, char **argv,
 		goto error;
 	}
 
-	if (!settings->name) {
-		char *name = strdup(settings->results_path);
-		settings->name = strdup(basename(name));
-		free(name);
-	}
 
 	return true;
 
diff --git a/runner/settings.h b/runner/settings.h
index 0a1ee08d..6dcfa8c5 100644
--- a/runner/settings.h
+++ b/runner/settings.h
@@ -43,6 +43,7 @@ struct settings {
 	char *results_path;
 	bool piglit_style_dmesg;
 	int dmesg_warn_level;
+	bool list_all;
 };
 
 /**
-- 
2.21.0

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

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

* [igt-dev] ✗ Fi.CI.BAT: failure for runner: add --list-all and --blacklist
  2019-06-14 13:24 [igt-dev] [PATCH] runner: add --list-all and --blacklist Oleg Vasilev
@ 2019-06-14 13:43 ` Patchwork
  2019-06-14 14:28 ` [igt-dev] [PATCH] " Petri Latvala
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2019-06-14 13:43 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

== Series Details ==

Series: runner: add --list-all and --blacklist
URL   : https://patchwork.freedesktop.org/series/62106/
State : failure

== Summary ==

IGT patchset build failed on latest successful build
c7b717f0126374a02fc86de5eb5fb1f3e7b3335b lib/ehl: Add EHL PCI IDs to match table

                        A file containing a list of tests to run
  -o, --overwrite       If the results-path already exists, delete it
  --ignore-missing      Ignored but accepted, for piglit compatibility

 Incompatible options:
  -m, --multiple-mode   Run multiple subtests in the same binary execution.
                        If a testlist file is given, consecutive subtests are
                        run in the same execution if they are from the same
                        binary. Note that in that case relative ordering of the
                        subtest execution is dictated by the test binary, not
                        the testlist
  --inactivity-timeout <seconds>
                        Kill the running test after <seconds> of inactivity in
                        the test's stdout, stderr, or dmesg
  --overall-timeout <seconds>
                        Don't execute more tests after <seconds> has elapsed
  --use-watchdog        Use hardware watchdog for lethal enforcement of the
                        above timeout. Killing the test process is still
                        attempted at timeout trigger.
  --dmesg-warn-level <level>
                        Messages with log level equal or lower (more serious)
                        to the given one will override the test result to
                        dmesg-warn/dmesg-fail, assuming they go through filtering.
                        Defaults to 4 (KERN_WARNING).
  --piglit-style-dmesg  Filter dmesg like piglit does. Piglit considers matches
                        against a short filter list to mean the test result
                        should be changed to dmesg-warn/dmesg-fail. Without
                        this option everything except matches against a
                        (longer) filter list means the test result should
                        change. KERN_NOTICE dmesg level is treated as warn,
                        unless overridden with --dmesg-warn-level.
  -b, --blacklist FILENAME
                        Exclude all test matching to regexes from FILENAME
                        (can be used more than once)
  -L, --list-all        List all matching subtests instead of running
  [test_root]           Directory that contains the IGT tests. The environment
                        variable IGT_TEST_ROOT will be used if set, overriding
                        this option if given.
Cannot open /home/cidrm/igt-gpu-tools/build/tmpdirAFULv5/test-list.txt
Warning: Adjusting oom score failed.
Warning: Adjusting oom score failed.
Warning: Adjusting oom score failed.
Warning: Adjusting oom score failed.
Warning: Adjusting oom score failed.
-------

Full log written to /home/cidrm/igt-gpu-tools/build/meson-logs/testlog.txt
FAILED: meson-test 
/usr/bin/python3 -u /usr/bin/meson test --no-rebuild --print-errorlogs
ninja: build stopped: subcommand failed.

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

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

* Re: [igt-dev] [PATCH] runner: add --list-all and --blacklist
  2019-06-14 13:24 [igt-dev] [PATCH] runner: add --list-all and --blacklist Oleg Vasilev
  2019-06-14 13:43 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork
@ 2019-06-14 14:28 ` Petri Latvala
  2019-06-17 11:49 ` [igt-dev] [PATCH v2] " Oleg Vasilev
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Petri Latvala @ 2019-06-14 14:28 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

On Fri, Jun 14, 2019 at 04:24:29PM +0300, Oleg Vasilev wrote:
> Currently, runner already collects all subtest names into job_list.
> --list-all allows to output it to stdout.
> 
> --blacklist option takes a filename as an argument and adds all regexes
> from that file to the exclusion list.
> 
> Cc: Petri Latvala <petri.latvala@intel.com>
> Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
> ---
>  runner/job_list.c     |  18 +++++++
>  runner/job_list.h     |   1 +
>  runner/runner.c       |   5 ++
>  runner/runner_tests.c |  14 ++++-
>  runner/settings.c     | 118 ++++++++++++++++++++++++++++++++++--------
>  runner/settings.h     |   1 +
>  6 files changed, 135 insertions(+), 22 deletions(-)
> 
> diff --git a/runner/job_list.c b/runner/job_list.c
> index 4a16742f..2a50dc5c 100644
> --- a/runner/job_list.c
> +++ b/runner/job_list.c
> @@ -291,6 +291,24 @@ static bool job_list_from_test_list(struct job_list *job_list,
>  	return any;
>  }
>  
> +void list_all_tests(struct job_list* lst)
> +{
> +	for (size_t test_idx = 0; test_idx < lst->size; ++test_idx){
> +		struct job_list_entry* current_entry = lst->entries+test_idx;
> +		if (current_entry->subtest_count==0) {
> +			printf("igt@%s\n", current_entry->binary);
> +			continue;
> +		}
> +		for (size_t subtest_idx = 0;
> +		    subtest_idx < current_entry->subtest_count;
> +		    ++subtest_idx) {
> +			char *subtest_name = current_entry->subtests[subtest_idx];
> +			printf("igt@%s@%s\n", current_entry->binary, subtest_name);
> +		}
> +	}
> +}
> +
> +
>  static char *lowercase(const char *str)
>  {
>  	char *ret = malloc(strlen(str) + 1);
> diff --git a/runner/job_list.h b/runner/job_list.h
> index f8bbbddc..cee4bff6 100644
> --- a/runner/job_list.h
> +++ b/runner/job_list.h
> @@ -36,5 +36,6 @@ bool create_job_list(struct job_list *job_list, struct settings *settings);
>  
>  bool serialize_job_list(struct job_list *job_list, struct settings *settings);
>  bool read_job_list(struct job_list *job_list, int dirfd);
> +void list_all_tests(struct job_list* lst);
>  
>  #endif
> diff --git a/runner/runner.c b/runner/runner.c
> index e1a6ccba..909ec861 100644
> --- a/runner/runner.c
> +++ b/runner/runner.c
> @@ -24,6 +24,11 @@ int main(int argc, char **argv)
>  		return 1;
>  	}
>  
> +	if(settings.list_all) {

Add space after if


> +		list_all_tests(&job_list);
> +		return 0;
> +	}
> +
>  	if (!initialize_execute_state(&state, &settings, &job_list)) {
>  		return 1;
>  	}
> diff --git a/runner/runner_tests.c b/runner/runner_tests.c
> index c09cda70..00bb9de3 100644
> --- a/runner/runner_tests.c
> +++ b/runner/runner_tests.c
> @@ -388,6 +388,8 @@ igt_main
>  				       "-t", "pattern2",
>  				       "-x", "xpattern1",
>  				       "-x", "xpattern2",
> +				       "-b", "../runner/testdata/test-blacklist.txt",
> +				       "--blacklist", "../runner/testdata/test-blacklist2.txt",

Don't use relative paths, you don't know what the CWD is.

Use the variable testdatadir to find runner/testdata. And remember to git add those files.



>  				       "-s",
>  				       "-l", "verbose",
>  				       "--overwrite",
> @@ -410,9 +412,11 @@ igt_main
>  		igt_assert_eq(settings->include_regexes.size, 2);
>  		igt_assert_eqstr(settings->include_regexes.regex_strings[0], "pattern1");
>  		igt_assert_eqstr(settings->include_regexes.regex_strings[1], "pattern2");
> -		igt_assert_eq(settings->exclude_regexes.size, 2);
> +		igt_assert_eq(settings->exclude_regexes.size, 4);
>  		igt_assert_eqstr(settings->exclude_regexes.regex_strings[0], "xpattern1");
>  		igt_assert_eqstr(settings->exclude_regexes.regex_strings[1], "xpattern2");
> +		igt_assert_eqstr(settings->exclude_regexes.regex_strings[2], "xpattern3"); /* From blacklist */
> +		igt_assert_eqstr(settings->exclude_regexes.regex_strings[3], "xpattern4"); /* From blacklist2 */
>  		igt_assert(settings->sync);
>  		igt_assert_eq(settings->log_level, LOG_LEVEL_VERBOSE);
>  		igt_assert(settings->overwrite);
> @@ -426,6 +430,14 @@ igt_main
>  		igt_assert(settings->piglit_style_dmesg);
>  		igt_assert_eq(settings->dmesg_warn_level, 3);
>  	}
> +	igt_subtest("parse-list-all") {
> +		const char *argv[] = { "runner",
> +				       "--list-all",
> +				       "test-root-dir"};
> +
> +		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
> +		igt_assert_eq(settings->list_all, 1);
> +	}
>  
>  	igt_subtest("dmesg-warn-level-inferred") {
>  		const char *argv[] = { "runner",
> diff --git a/runner/settings.c b/runner/settings.c
> index ad38ae8d..2692370f 100644
> --- a/runner/settings.c
> +++ b/runner/settings.c
> @@ -1,5 +1,6 @@
>  #include "settings.h"
>  
> +#include <ctype.h>
>  #include <errno.h>
>  #include <fcntl.h>
>  #include <getopt.h>
> @@ -30,6 +31,8 @@ enum {
>  	OPT_MULTIPLE = 'm',
>  	OPT_TIMEOUT = 'c',
>  	OPT_WATCHDOG = 'g',
> +	OPT_BLACKLIST = 'b',
> +	OPT_LIST_ALL = 'L',
>  };
>  
>  static struct {
> @@ -117,7 +120,8 @@ static bool parse_abort_conditions(struct settings *settings, const char *optarg
>  }
>  
>  static const char *usage_str =
> -	"usage: runner [options] [test_root] results-path\n\n"
> +	"usage: runner [options] [test_root] results-path\n"
> +	"   or: runner --list-all [options] [test_root] \n\n"
>  	"Options:\n"
>  	" Piglit compatible:\n"
>  	"  -h, --help            Show this help message and exit\n"
> @@ -172,6 +176,10 @@ static const char *usage_str =
>  	"                        (longer) filter list means the test result should\n"
>  	"                        change. KERN_NOTICE dmesg level is treated as warn,\n"
>  	"                        unless overridden with --dmesg-warn-level.\n"
> +	"  -b, --blacklist FILENAME\n"
> +	"                        Exclude all test matching to regexes from FILENAME\n"
> +	"                        (can be used more than once)\n"
> +	"  -L, --list-all        List all matching subtests instead of running\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"
> @@ -213,6 +221,51 @@ static bool add_regex(struct regex_list *list, char *new)
>  	return true;
>  }
>  
> +static bool parse_blacklist(struct regex_list *exclude_regexes, char *blacklist_filename)
> +{
> +	FILE *f;
> +	char *line = NULL;
> +	size_t line_len = 0;
> +	bool status;
> +
> +

You have an extra newline here.

> +	if ((f = fopen(blacklist_filename, "r")) == NULL) {
> +		fprintf(stderr, "Cannot open blacklist file %s\n", blacklist_filename);
> +		return false;
> +	}
> +	while (1) {
> +		size_t str_size = 0, idx = 0;
> +
> +		if (getline(&line, &line_len, f) == -1) {
> +			if (errno == EINTR)
> +				continue;
> +			else
> +				break;
> +		}
> +
> +		while (true) {
> +			if(line[idx]=='\n' ||
> +			   line[idx]=='#'  || /* # starts a comment */
> +			   line[idx]=='\0')
> +				break;
> +			idx++;
> +			if (!isspace(line[str_size]))
> +				str_size = idx;
> +			}
> +		if (str_size > 0) {
> +			char * test_regex = strndup(line, str_size);
> +			status = add_regex(exclude_regexes, test_regex);
> +			if(!status){
> +				break;
> +			}
> +		}

There's something in this parsing code that feels funky but as long as
it works (more on that later)...

> +	}
> +
> +	free(line);
> +	fclose(f);
> +	return status;
> +}
> +
>  static void free_regexes(struct regex_list *regexes)
>  {
>  	size_t i;
> @@ -272,6 +325,8 @@ bool parse_options(int argc, char **argv,
>  		{"use-watchdog", no_argument, NULL, OPT_WATCHDOG},
>  		{"piglit-style-dmesg", no_argument, NULL, OPT_PIGLIT_DMESG},
>  		{"dmesg-warn-level", required_argument, NULL, OPT_DMESG_WARN_LEVEL},
> +		{"blacklist", required_argument, NULL, OPT_BLACKLIST},
> +		{"list-all", no_argument, NULL, OPT_LIST_ALL},
>  		{ 0, 0, 0, 0},
>  	};
>  
> @@ -281,7 +336,7 @@ bool parse_options(int argc, char **argv,
>  
>  	settings->dmesg_warn_level = -1;
>  
> -	while ((c = getopt_long(argc, argv, "hn:dt:x:sl:om", long_options, NULL)) != -1) {
> +	while ((c = getopt_long(argc, argv, "hn:dt:x:sl:omb:L", long_options, NULL)) != -1) {
>  		switch (c) {
>  		case OPT_HELP:
>  			usage(NULL, stdout);
> @@ -342,6 +397,13 @@ bool parse_options(int argc, char **argv,
>  		case OPT_DMESG_WARN_LEVEL:
>  			settings->dmesg_warn_level = atoi(optarg);
>  			break;
> +		case OPT_BLACKLIST:
> +			if (!parse_blacklist(&settings->exclude_regexes, absolute_path(optarg)))
> +				goto error;
> +			break;
> +		case OPT_LIST_ALL:
> +			settings->list_all = true;
> +			break;
>  		case '?':
>  			usage(NULL, stderr);
>  			goto error;
> @@ -354,20 +416,39 @@ bool parse_options(int argc, char **argv,
>  	if (settings->dmesg_warn_level < 0)
>  		settings->dmesg_warn_level = 4; /* KERN_WARN */
>  
> -	switch (argc - optind) {
> -	case 2:
> -		settings->test_root = absolute_path(argv[optind]);
> -		++optind;
> -		/* fallthrough */
> -	case 1:
> -		settings->results_path = absolute_path(argv[optind]);
> -		break;
> -	case 0:
> -		usage("Results-path missing", stderr);
> -		goto error;
> -	default:
> -		usage("Extra arguments after results-path", stderr);
> -		goto error;
> +	if (settings->list_all) { /* --list-all doesn't requrie results path */


Typo, require


> +		switch (argc - optind) {
> +		case 1:
> +			settings->test_root = absolute_path(argv[optind]);
> +			++optind;
> +			/* fallthrough */
> +		case 0:
> +			break;
> +		default:
> +			usage("Too many arguments for --list-all", stderr);
> +			goto error;
> +		}
> +	} else {
> +		switch (argc - optind) {
> +		case 2:
> +			settings->test_root = absolute_path(argv[optind]);
> +			++optind;
> +			/* fallthrough */
> +		case 1:
> +			settings->results_path = absolute_path(argv[optind]);
> +			break;
> +		case 0:
> +			usage("Results-path missing", stderr);
> +			goto error;
> +		default:
> +			usage("Extra arguments after results-path", stderr);
> +			goto error;
> +		}
> +		if (!settings->name) {
> +			char *name = strdup(settings->results_path);
> +			settings->name = strdup(basename(name));
> +			free(name);
> +		}

TODO for later: Refactor this duplicated switch.




Looks good otherwise, but nack for merging as of yet, because:

While performance is better:

# time ./scripts/run-tests.sh -l
.......
real	0m5.188s
user	0m3.890s
sys	0m1.354s

# time build/runner/igt_runner -L build/tests
.......
real	0m3.065s
user	0m2.222s
sys	0m0.895s

(I won't compare listing with blacklist processing, that's a horrible
shell kludge)

the results are different:

original-kludge.txt - blacklist-processed testlist with horrible shell
kludge

runner.txt - igt_runner -L -b tests/intel-ci/blacklist.txt
build/tests, sorted and downcased to compare apples to apples

diff -u original-kludge.txt runner.txt

+igt@gem_exec_lut_handle
+igt@gem_fd_exhaustion
+igt@gem_gtt_hog
+igt@gem_gtt_speed
+igt@gem_lut_handle
+igt@gem_ring_sync_loop

Those are blacklisted with e.g.

igt@gem_exec_lut_handle(@.*)?


Please check whether the fault is glib regex being unable to process
that or our usage of it.



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

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

* [igt-dev] [PATCH v2] runner: add --list-all and --blacklist
  2019-06-14 13:24 [igt-dev] [PATCH] runner: add --list-all and --blacklist Oleg Vasilev
  2019-06-14 13:43 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork
  2019-06-14 14:28 ` [igt-dev] [PATCH] " Petri Latvala
@ 2019-06-17 11:49 ` Oleg Vasilev
  2019-06-17 12:41   ` Petri Latvala
  2019-06-17 13:41   ` [igt-dev] [PATCH v3] " Oleg Vasilev
  2019-06-17 14:14 ` [igt-dev] ✓ Fi.CI.BAT: success for runner: add --list-all and --blacklist (rev2) Patchwork
                   ` (6 subsequent siblings)
  9 siblings, 2 replies; 17+ messages in thread
From: Oleg Vasilev @ 2019-06-17 11:49 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala

Currently, runner already collects all subtest names into job_list.
--list-all allows to output it to stdout.

--blacklist option takes a filename as an argument and adds all regexes
from that file to the exclusion list.

v2:
 - Update exclude/include regex matches for tests without
	subtests to be matched with pigtit-like name (Petri)
 - Replace relative paths with those formatted with testdatadir (Petri)
 - Minor codestyle changes

Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
---
 runner/job_list.c                   |  27 ++++++-
 runner/job_list.h                   |   1 +
 runner/runner.c                     |   5 ++
 runner/runner_tests.c               |  18 ++++-
 runner/settings.c                   | 117 +++++++++++++++++++++++-----
 runner/settings.h                   |   1 +
 runner/testdata/meson.build         |   5 ++
 runner/testdata/test-blacklist.txt  |   2 +
 runner/testdata/test-blacklist2.txt |   2 +
 9 files changed, 154 insertions(+), 24 deletions(-)
 create mode 100644 runner/testdata/test-blacklist.txt
 create mode 100644 runner/testdata/test-blacklist2.txt

diff --git a/runner/job_list.c b/runner/job_list.c
index 4a16742f..e78e0358 100644
--- a/runner/job_list.c
+++ b/runner/job_list.c
@@ -111,11 +111,16 @@ static void add_subtests(struct job_list *job_list, struct settings *settings,
 		fprintf(stderr, "popen error when executing %s: %s\n", binary, strerror(errno));
 	} else if (WIFEXITED(s)) {
 		if (WEXITSTATUS(s) == IGT_EXIT_INVALID) {
+			char piglitname[256];
+			generate_piglit_name(binary, NULL,
+					     piglitname, sizeof(piglitname));
+
 			/* No subtests on this one */
-			if (exclude && exclude->size && matches_any(binary, exclude)) {
+			if (exclude && exclude->size &&
+					matches_any(piglitname, exclude)) {
 				return;
 			}
-			if (!include || !include->size || matches_any(binary, include)) {
+			if (!include || !include->size || matches_any(piglitname, include)) {
 				add_job_list_entry(job_list, strdup(binary), NULL, 0);
 				return;
 			}
@@ -291,6 +296,24 @@ static bool job_list_from_test_list(struct job_list *job_list,
 	return any;
 }
 
+void list_all_tests(struct job_list* lst)
+{
+	for (size_t test_idx = 0; test_idx < lst->size; ++test_idx){
+		struct job_list_entry* current_entry = lst->entries+test_idx;
+		if (current_entry->subtest_count==0) {
+			printf("igt@%s\n", current_entry->binary);
+			continue;
+		}
+		for (size_t subtest_idx = 0;
+		    subtest_idx < current_entry->subtest_count;
+		    ++subtest_idx) {
+			char *subtest_name = current_entry->subtests[subtest_idx];
+			printf("igt@%s@%s\n", current_entry->binary, subtest_name);
+		}
+	}
+}
+
+
 static char *lowercase(const char *str)
 {
 	char *ret = malloc(strlen(str) + 1);
diff --git a/runner/job_list.h b/runner/job_list.h
index f8bbbddc..cee4bff6 100644
--- a/runner/job_list.h
+++ b/runner/job_list.h
@@ -36,5 +36,6 @@ bool create_job_list(struct job_list *job_list, struct settings *settings);
 
 bool serialize_job_list(struct job_list *job_list, struct settings *settings);
 bool read_job_list(struct job_list *job_list, int dirfd);
+void list_all_tests(struct job_list* lst);
 
 #endif
diff --git a/runner/runner.c b/runner/runner.c
index e1a6ccba..4855ad64 100644
--- a/runner/runner.c
+++ b/runner/runner.c
@@ -24,6 +24,11 @@ int main(int argc, char **argv)
 		return 1;
 	}
 
+	if (settings.list_all) {
+		list_all_tests(&job_list);
+		return 0;
+	}
+
 	if (!initialize_execute_state(&state, &settings, &job_list)) {
 		return 1;
 	}
diff --git a/runner/runner_tests.c b/runner/runner_tests.c
index c09cda70..39d4a078 100644
--- a/runner/runner_tests.c
+++ b/runner/runner_tests.c
@@ -378,6 +378,7 @@ igt_main
 	}
 
 	igt_subtest("parse-all-settings") {
+		char blacklist_name[PATH_MAX], blacklist2_name[PATH_MAX];
 		const char *argv[] = { "runner",
 				       "-n", "foo",
 				       "--abort-on-monitored-error=taint,lockdep",
@@ -388,6 +389,8 @@ igt_main
 				       "-t", "pattern2",
 				       "-x", "xpattern1",
 				       "-x", "xpattern2",
+				       "-b", blacklist_name,
+				       "--blacklist", blacklist2_name,
 				       "-s",
 				       "-l", "verbose",
 				       "--overwrite",
@@ -401,6 +404,9 @@ igt_main
 				       "path-to-results",
 		};
 
+		sprintf(blacklist_name, "%s/test-blacklist.txt", testdatadir);
+		sprintf(blacklist2_name, "%s/test-blacklist2.txt", testdatadir);
+
 		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
 
 		igt_assert_eq(settings->abort_mask, ABORT_TAINT | ABORT_LOCKDEP);
@@ -410,9 +416,11 @@ igt_main
 		igt_assert_eq(settings->include_regexes.size, 2);
 		igt_assert_eqstr(settings->include_regexes.regex_strings[0], "pattern1");
 		igt_assert_eqstr(settings->include_regexes.regex_strings[1], "pattern2");
-		igt_assert_eq(settings->exclude_regexes.size, 2);
+		igt_assert_eq(settings->exclude_regexes.size, 4);
 		igt_assert_eqstr(settings->exclude_regexes.regex_strings[0], "xpattern1");
 		igt_assert_eqstr(settings->exclude_regexes.regex_strings[1], "xpattern2");
+		igt_assert_eqstr(settings->exclude_regexes.regex_strings[2], "xpattern3"); /* From blacklist */
+		igt_assert_eqstr(settings->exclude_regexes.regex_strings[3], "xpattern4"); /* From blacklist2 */
 		igt_assert(settings->sync);
 		igt_assert_eq(settings->log_level, LOG_LEVEL_VERBOSE);
 		igt_assert(settings->overwrite);
@@ -426,6 +434,14 @@ igt_main
 		igt_assert(settings->piglit_style_dmesg);
 		igt_assert_eq(settings->dmesg_warn_level, 3);
 	}
+	igt_subtest("parse-list-all") {
+		const char *argv[] = { "runner",
+				       "--list-all",
+				       "test-root-dir"};
+
+		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
+		igt_assert_eq(settings->list_all, 1);
+	}
 
 	igt_subtest("dmesg-warn-level-inferred") {
 		const char *argv[] = { "runner",
diff --git a/runner/settings.c b/runner/settings.c
index ad38ae8d..f4b4af90 100644
--- a/runner/settings.c
+++ b/runner/settings.c
@@ -1,5 +1,6 @@
 #include "settings.h"
 
+#include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <getopt.h>
@@ -30,6 +31,8 @@ enum {
 	OPT_MULTIPLE = 'm',
 	OPT_TIMEOUT = 'c',
 	OPT_WATCHDOG = 'g',
+	OPT_BLACKLIST = 'b',
+	OPT_LIST_ALL = 'L',
 };
 
 static struct {
@@ -117,7 +120,8 @@ static bool parse_abort_conditions(struct settings *settings, const char *optarg
 }
 
 static const char *usage_str =
-	"usage: runner [options] [test_root] results-path\n\n"
+	"usage: runner [options] [test_root] results-path\n"
+	"   or: runner --list-all [options] [test_root] \n\n"
 	"Options:\n"
 	" Piglit compatible:\n"
 	"  -h, --help            Show this help message and exit\n"
@@ -172,6 +176,10 @@ static const char *usage_str =
 	"                        (longer) filter list means the test result should\n"
 	"                        change. KERN_NOTICE dmesg level is treated as warn,\n"
 	"                        unless overridden with --dmesg-warn-level.\n"
+	"  -b, --blacklist FILENAME\n"
+	"                        Exclude all test matching to regexes from FILENAME\n"
+	"                        (can be used more than once)\n"
+	"  -L, --list-all        List all matching subtests instead of running\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"
@@ -213,6 +221,50 @@ static bool add_regex(struct regex_list *list, char *new)
 	return true;
 }
 
+static bool parse_blacklist(struct regex_list *exclude_regexes, char *blacklist_filename)
+{
+	FILE *f;
+	char *line = NULL;
+	size_t line_len = 0;
+	bool status;
+
+	if ((f = fopen(blacklist_filename, "r")) == NULL) {
+		fprintf(stderr, "Cannot open blacklist file %s\n", blacklist_filename);
+		return false;
+	}
+	while (1) {
+		size_t str_size = 0, idx = 0;
+
+		if (getline(&line, &line_len, f) == -1) {
+			if (errno == EINTR)
+				continue;
+			else
+				break;
+		}
+
+		while (true) {
+			if(line[idx]=='\n' ||
+			   line[idx]=='#'  || /* # starts a comment */
+			   line[idx]=='\0')
+				break;
+			if (!isspace(line[idx]))
+				str_size = idx+1;
+			idx++;
+		}
+		if (str_size > 0) {
+			char * test_regex = strndup(line, str_size);
+			status = add_regex(exclude_regexes, test_regex);
+			if(!status){
+				break;
+			}
+		}
+	}
+
+	free(line);
+	fclose(f);
+	return status;
+}
+
 static void free_regexes(struct regex_list *regexes)
 {
 	size_t i;
@@ -272,6 +324,8 @@ bool parse_options(int argc, char **argv,
 		{"use-watchdog", no_argument, NULL, OPT_WATCHDOG},
 		{"piglit-style-dmesg", no_argument, NULL, OPT_PIGLIT_DMESG},
 		{"dmesg-warn-level", required_argument, NULL, OPT_DMESG_WARN_LEVEL},
+		{"blacklist", required_argument, NULL, OPT_BLACKLIST},
+		{"list-all", no_argument, NULL, OPT_LIST_ALL},
 		{ 0, 0, 0, 0},
 	};
 
@@ -281,7 +335,7 @@ bool parse_options(int argc, char **argv,
 
 	settings->dmesg_warn_level = -1;
 
-	while ((c = getopt_long(argc, argv, "hn:dt:x:sl:om", long_options, NULL)) != -1) {
+	while ((c = getopt_long(argc, argv, "hn:dt:x:sl:omb:L", long_options, NULL)) != -1) {
 		switch (c) {
 		case OPT_HELP:
 			usage(NULL, stdout);
@@ -342,6 +396,13 @@ bool parse_options(int argc, char **argv,
 		case OPT_DMESG_WARN_LEVEL:
 			settings->dmesg_warn_level = atoi(optarg);
 			break;
+		case OPT_BLACKLIST:
+			if (!parse_blacklist(&settings->exclude_regexes, absolute_path(optarg)))
+				goto error;
+			break;
+		case OPT_LIST_ALL:
+			settings->list_all = true;
+			break;
 		case '?':
 			usage(NULL, stderr);
 			goto error;
@@ -354,20 +415,39 @@ bool parse_options(int argc, char **argv,
 	if (settings->dmesg_warn_level < 0)
 		settings->dmesg_warn_level = 4; /* KERN_WARN */
 
-	switch (argc - optind) {
-	case 2:
-		settings->test_root = absolute_path(argv[optind]);
-		++optind;
-		/* fallthrough */
-	case 1:
-		settings->results_path = absolute_path(argv[optind]);
-		break;
-	case 0:
-		usage("Results-path missing", stderr);
-		goto error;
-	default:
-		usage("Extra arguments after results-path", stderr);
-		goto error;
+	if (settings->list_all) { /* --list-all doesn't require results path */
+		switch (argc - optind) {
+		case 1:
+			settings->test_root = absolute_path(argv[optind]);
+			++optind;
+			/* fallthrough */
+		case 0:
+			break;
+		default:
+			usage("Too many arguments for --list-all", stderr);
+			goto error;
+		}
+	} else {
+		switch (argc - optind) {
+		case 2:
+			settings->test_root = absolute_path(argv[optind]);
+			++optind;
+			/* fallthrough */
+		case 1:
+			settings->results_path = absolute_path(argv[optind]);
+			break;
+		case 0:
+			usage("Results-path missing", stderr);
+			goto error;
+		default:
+			usage("Extra arguments after results-path", stderr);
+			goto error;
+		}
+		if (!settings->name) {
+			char *name = strdup(settings->results_path);
+			settings->name = strdup(basename(name));
+			free(name);
+		}
 	}
 
 	if ((env_test_root = getenv("IGT_TEST_ROOT")) != NULL) {
@@ -380,11 +460,6 @@ bool parse_options(int argc, char **argv,
 		goto error;
 	}
 
-	if (!settings->name) {
-		char *name = strdup(settings->results_path);
-		settings->name = strdup(basename(name));
-		free(name);
-	}
 
 	return true;
 
diff --git a/runner/settings.h b/runner/settings.h
index 0a1ee08d..6dcfa8c5 100644
--- a/runner/settings.h
+++ b/runner/settings.h
@@ -43,6 +43,7 @@ struct settings {
 	char *results_path;
 	bool piglit_style_dmesg;
 	int dmesg_warn_level;
+	bool list_all;
 };
 
 /**
diff --git a/runner/testdata/meson.build b/runner/testdata/meson.build
index 011eff8e..2456f82a 100644
--- a/runner/testdata/meson.build
+++ b/runner/testdata/meson.build
@@ -12,6 +12,11 @@ foreach prog : testdata_progs
 					   install : false)
 endforeach
 
+configure_file(input : 'test-blacklist.txt',
+	       output : 'test-blacklist.txt', copy : true)
+configure_file(input : 'test-blacklist2.txt',
+	       output : 'test-blacklist2.txt', copy : true)
+
 testdata_list = custom_target('testdata_testlist',
 			      output : 'test-list.txt',
 			      command : [ gen_testlist, '@OUTPUT@', testdata_progs ],
diff --git a/runner/testdata/test-blacklist.txt b/runner/testdata/test-blacklist.txt
new file mode 100644
index 00000000..6b09ae5c
--- /dev/null
+++ b/runner/testdata/test-blacklist.txt
@@ -0,0 +1,2 @@
+xpattern3    # Comment 1
+# Comment 2
diff --git a/runner/testdata/test-blacklist2.txt b/runner/testdata/test-blacklist2.txt
new file mode 100644
index 00000000..d0f6e612
--- /dev/null
+++ b/runner/testdata/test-blacklist2.txt
@@ -0,0 +1,2 @@
+
+xpattern4
-- 
2.21.0

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

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

* Re: [igt-dev] [PATCH v2] runner: add --list-all and --blacklist
  2019-06-17 11:49 ` [igt-dev] [PATCH v2] " Oleg Vasilev
@ 2019-06-17 12:41   ` Petri Latvala
  2019-06-17 13:41   ` [igt-dev] [PATCH v3] " Oleg Vasilev
  1 sibling, 0 replies; 17+ messages in thread
From: Petri Latvala @ 2019-06-17 12:41 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

On Mon, Jun 17, 2019 at 02:49:37PM +0300, Oleg Vasilev wrote:
> Currently, runner already collects all subtest names into job_list.
> --list-all allows to output it to stdout.
> 
> --blacklist option takes a filename as an argument and adds all regexes
> from that file to the exclusion list.
> 
> v2:
>  - Update exclude/include regex matches for tests without
> 	subtests to be matched with pigtit-like name (Petri)
>  - Replace relative paths with those formatted with testdatadir (Petri)
>  - Minor codestyle changes
> 
> Cc: Petri Latvala <petri.latvala@intel.com>
> Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
> ---
>  runner/job_list.c                   |  27 ++++++-
>  runner/job_list.h                   |   1 +
>  runner/runner.c                     |   5 ++
>  runner/runner_tests.c               |  18 ++++-
>  runner/settings.c                   | 117 +++++++++++++++++++++++-----
>  runner/settings.h                   |   1 +
>  runner/testdata/meson.build         |   5 ++
>  runner/testdata/test-blacklist.txt  |   2 +
>  runner/testdata/test-blacklist2.txt |   2 +
>  9 files changed, 154 insertions(+), 24 deletions(-)
>  create mode 100644 runner/testdata/test-blacklist.txt
>  create mode 100644 runner/testdata/test-blacklist2.txt
> 
> diff --git a/runner/job_list.c b/runner/job_list.c
> index 4a16742f..e78e0358 100644
> --- a/runner/job_list.c
> +++ b/runner/job_list.c
> @@ -111,11 +111,16 @@ static void add_subtests(struct job_list *job_list, struct settings *settings,
>  		fprintf(stderr, "popen error when executing %s: %s\n", binary, strerror(errno));
>  	} else if (WIFEXITED(s)) {
>  		if (WEXITSTATUS(s) == IGT_EXIT_INVALID) {
> +			char piglitname[256];
> +			generate_piglit_name(binary, NULL,
> +					     piglitname, sizeof(piglitname));
> +
>  			/* No subtests on this one */
> -			if (exclude && exclude->size && matches_any(binary, exclude)) {
> +			if (exclude && exclude->size &&
> +					matches_any(piglitname, exclude)) {
>  				return;
>  			}
> -			if (!include || !include->size || matches_any(binary, include)) {
> +			if (!include || !include->size || matches_any(piglitname, include)) {
>  				add_job_list_entry(job_list, strdup(binary), NULL, 0);
>  				return;
>  			}


Well that makes sense!



> @@ -291,6 +296,24 @@ static bool job_list_from_test_list(struct job_list *job_list,
>  	return any;
>  }
>  
> +void list_all_tests(struct job_list* lst)
> +{
> +	for (size_t test_idx = 0; test_idx < lst->size; ++test_idx){
> +		struct job_list_entry* current_entry = lst->entries+test_idx;
> +		if (current_entry->subtest_count==0) {
> +			printf("igt@%s\n", current_entry->binary);
> +			continue;
> +		}
> +		for (size_t subtest_idx = 0;
> +		    subtest_idx < current_entry->subtest_count;
> +		    ++subtest_idx) {
> +			char *subtest_name = current_entry->subtests[subtest_idx];
> +			printf("igt@%s@%s\n", current_entry->binary, subtest_name);
> +		}


Print that in lowercase like piglit does.


Oh, and you need to disable multiple-mode if list-all is
set. Otherwise -t kms -L will print wrong things. Can be left for
later though...

With those changes (multiple-mode change optional at this point),

Reviewed-by: Petri Latvala <petri.latvala@intel.com>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH v3] runner: add --list-all and --blacklist
  2019-06-17 11:49 ` [igt-dev] [PATCH v2] " Oleg Vasilev
  2019-06-17 12:41   ` Petri Latvala
@ 2019-06-17 13:41   ` Oleg Vasilev
  2019-06-18  8:11     ` Petri Latvala
  1 sibling, 1 reply; 17+ messages in thread
From: Oleg Vasilev @ 2019-06-17 13:41 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala

Currently, runner already collects all subtest names into job_list.
--list-all allows to output it to stdout.

--blacklist option takes a filename as an argument and adds all regexes
from that file to the exclusion list.

v2:
 - Update exclude/include regex matches for tests without
	subtests to be matched with pigtit-like name (Petri)
 - Replace relative paths with those formatted with testdatadir (Petri)
 - Minor codestyle changes

v3:
 - Print test names in lowercase (Petri)

Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
---
 runner/job_list.c                   |  36 ++++++++-
 runner/job_list.h                   |   1 +
 runner/runner.c                     |   5 ++
 runner/runner_tests.c               |  18 ++++-
 runner/settings.c                   | 117 +++++++++++++++++++++++-----
 runner/settings.h                   |   1 +
 runner/testdata/meson.build         |   5 ++
 runner/testdata/test-blacklist.txt  |   2 +
 runner/testdata/test-blacklist2.txt |   2 +
 9 files changed, 163 insertions(+), 24 deletions(-)
 create mode 100644 runner/testdata/test-blacklist.txt
 create mode 100644 runner/testdata/test-blacklist2.txt

diff --git a/runner/job_list.c b/runner/job_list.c
index 4a16742f..8e5233f5 100644
--- a/runner/job_list.c
+++ b/runner/job_list.c
@@ -111,11 +111,16 @@ static void add_subtests(struct job_list *job_list, struct settings *settings,
 		fprintf(stderr, "popen error when executing %s: %s\n", binary, strerror(errno));
 	} else if (WIFEXITED(s)) {
 		if (WEXITSTATUS(s) == IGT_EXIT_INVALID) {
+			char piglitname[256];
+			generate_piglit_name(binary, NULL,
+					     piglitname, sizeof(piglitname));
+
 			/* No subtests on this one */
-			if (exclude && exclude->size && matches_any(binary, exclude)) {
+			if (exclude && exclude->size &&
+					matches_any(piglitname, exclude)) {
 				return;
 			}
-			if (!include || !include->size || matches_any(binary, include)) {
+			if (!include || !include->size || matches_any(piglitname, include)) {
 				add_job_list_entry(job_list, strdup(binary), NULL, 0);
 				return;
 			}
@@ -291,6 +296,33 @@ static bool job_list_from_test_list(struct job_list *job_list,
 	return any;
 }
 
+void str_to_lower(char* str)
+{
+	for (int i = 0; str[i]; i++) {
+		str[i] = tolower(str[i]);
+	}
+}
+
+void list_all_tests(struct job_list* lst)
+{
+	for (size_t test_idx = 0; test_idx < lst->size; ++test_idx){
+		struct job_list_entry* current_entry = lst->entries+test_idx;
+		str_to_lower(current_entry->binary);
+		if (current_entry->subtest_count==0) {
+			printf("igt@%s\n", current_entry->binary);
+			continue;
+		}
+		for (size_t subtest_idx = 0;
+		    subtest_idx < current_entry->subtest_count;
+		    ++subtest_idx) {
+			char *subtest_name = current_entry->subtests[subtest_idx];
+			str_to_lower(subtest_name);
+			printf("igt@%s@%s\n", current_entry->binary, subtest_name);
+		}
+	}
+}
+
+
 static char *lowercase(const char *str)
 {
 	char *ret = malloc(strlen(str) + 1);
diff --git a/runner/job_list.h b/runner/job_list.h
index f8bbbddc..cee4bff6 100644
--- a/runner/job_list.h
+++ b/runner/job_list.h
@@ -36,5 +36,6 @@ bool create_job_list(struct job_list *job_list, struct settings *settings);
 
 bool serialize_job_list(struct job_list *job_list, struct settings *settings);
 bool read_job_list(struct job_list *job_list, int dirfd);
+void list_all_tests(struct job_list* lst);
 
 #endif
diff --git a/runner/runner.c b/runner/runner.c
index e1a6ccba..4855ad64 100644
--- a/runner/runner.c
+++ b/runner/runner.c
@@ -24,6 +24,11 @@ int main(int argc, char **argv)
 		return 1;
 	}
 
+	if (settings.list_all) {
+		list_all_tests(&job_list);
+		return 0;
+	}
+
 	if (!initialize_execute_state(&state, &settings, &job_list)) {
 		return 1;
 	}
diff --git a/runner/runner_tests.c b/runner/runner_tests.c
index c09cda70..39d4a078 100644
--- a/runner/runner_tests.c
+++ b/runner/runner_tests.c
@@ -378,6 +378,7 @@ igt_main
 	}
 
 	igt_subtest("parse-all-settings") {
+		char blacklist_name[PATH_MAX], blacklist2_name[PATH_MAX];
 		const char *argv[] = { "runner",
 				       "-n", "foo",
 				       "--abort-on-monitored-error=taint,lockdep",
@@ -388,6 +389,8 @@ igt_main
 				       "-t", "pattern2",
 				       "-x", "xpattern1",
 				       "-x", "xpattern2",
+				       "-b", blacklist_name,
+				       "--blacklist", blacklist2_name,
 				       "-s",
 				       "-l", "verbose",
 				       "--overwrite",
@@ -401,6 +404,9 @@ igt_main
 				       "path-to-results",
 		};
 
+		sprintf(blacklist_name, "%s/test-blacklist.txt", testdatadir);
+		sprintf(blacklist2_name, "%s/test-blacklist2.txt", testdatadir);
+
 		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
 
 		igt_assert_eq(settings->abort_mask, ABORT_TAINT | ABORT_LOCKDEP);
@@ -410,9 +416,11 @@ igt_main
 		igt_assert_eq(settings->include_regexes.size, 2);
 		igt_assert_eqstr(settings->include_regexes.regex_strings[0], "pattern1");
 		igt_assert_eqstr(settings->include_regexes.regex_strings[1], "pattern2");
-		igt_assert_eq(settings->exclude_regexes.size, 2);
+		igt_assert_eq(settings->exclude_regexes.size, 4);
 		igt_assert_eqstr(settings->exclude_regexes.regex_strings[0], "xpattern1");
 		igt_assert_eqstr(settings->exclude_regexes.regex_strings[1], "xpattern2");
+		igt_assert_eqstr(settings->exclude_regexes.regex_strings[2], "xpattern3"); /* From blacklist */
+		igt_assert_eqstr(settings->exclude_regexes.regex_strings[3], "xpattern4"); /* From blacklist2 */
 		igt_assert(settings->sync);
 		igt_assert_eq(settings->log_level, LOG_LEVEL_VERBOSE);
 		igt_assert(settings->overwrite);
@@ -426,6 +434,14 @@ igt_main
 		igt_assert(settings->piglit_style_dmesg);
 		igt_assert_eq(settings->dmesg_warn_level, 3);
 	}
+	igt_subtest("parse-list-all") {
+		const char *argv[] = { "runner",
+				       "--list-all",
+				       "test-root-dir"};
+
+		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
+		igt_assert_eq(settings->list_all, 1);
+	}
 
 	igt_subtest("dmesg-warn-level-inferred") {
 		const char *argv[] = { "runner",
diff --git a/runner/settings.c b/runner/settings.c
index ad38ae8d..f4b4af90 100644
--- a/runner/settings.c
+++ b/runner/settings.c
@@ -1,5 +1,6 @@
 #include "settings.h"
 
+#include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <getopt.h>
@@ -30,6 +31,8 @@ enum {
 	OPT_MULTIPLE = 'm',
 	OPT_TIMEOUT = 'c',
 	OPT_WATCHDOG = 'g',
+	OPT_BLACKLIST = 'b',
+	OPT_LIST_ALL = 'L',
 };
 
 static struct {
@@ -117,7 +120,8 @@ static bool parse_abort_conditions(struct settings *settings, const char *optarg
 }
 
 static const char *usage_str =
-	"usage: runner [options] [test_root] results-path\n\n"
+	"usage: runner [options] [test_root] results-path\n"
+	"   or: runner --list-all [options] [test_root] \n\n"
 	"Options:\n"
 	" Piglit compatible:\n"
 	"  -h, --help            Show this help message and exit\n"
@@ -172,6 +176,10 @@ static const char *usage_str =
 	"                        (longer) filter list means the test result should\n"
 	"                        change. KERN_NOTICE dmesg level is treated as warn,\n"
 	"                        unless overridden with --dmesg-warn-level.\n"
+	"  -b, --blacklist FILENAME\n"
+	"                        Exclude all test matching to regexes from FILENAME\n"
+	"                        (can be used more than once)\n"
+	"  -L, --list-all        List all matching subtests instead of running\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"
@@ -213,6 +221,50 @@ static bool add_regex(struct regex_list *list, char *new)
 	return true;
 }
 
+static bool parse_blacklist(struct regex_list *exclude_regexes, char *blacklist_filename)
+{
+	FILE *f;
+	char *line = NULL;
+	size_t line_len = 0;
+	bool status;
+
+	if ((f = fopen(blacklist_filename, "r")) == NULL) {
+		fprintf(stderr, "Cannot open blacklist file %s\n", blacklist_filename);
+		return false;
+	}
+	while (1) {
+		size_t str_size = 0, idx = 0;
+
+		if (getline(&line, &line_len, f) == -1) {
+			if (errno == EINTR)
+				continue;
+			else
+				break;
+		}
+
+		while (true) {
+			if(line[idx]=='\n' ||
+			   line[idx]=='#'  || /* # starts a comment */
+			   line[idx]=='\0')
+				break;
+			if (!isspace(line[idx]))
+				str_size = idx+1;
+			idx++;
+		}
+		if (str_size > 0) {
+			char * test_regex = strndup(line, str_size);
+			status = add_regex(exclude_regexes, test_regex);
+			if(!status){
+				break;
+			}
+		}
+	}
+
+	free(line);
+	fclose(f);
+	return status;
+}
+
 static void free_regexes(struct regex_list *regexes)
 {
 	size_t i;
@@ -272,6 +324,8 @@ bool parse_options(int argc, char **argv,
 		{"use-watchdog", no_argument, NULL, OPT_WATCHDOG},
 		{"piglit-style-dmesg", no_argument, NULL, OPT_PIGLIT_DMESG},
 		{"dmesg-warn-level", required_argument, NULL, OPT_DMESG_WARN_LEVEL},
+		{"blacklist", required_argument, NULL, OPT_BLACKLIST},
+		{"list-all", no_argument, NULL, OPT_LIST_ALL},
 		{ 0, 0, 0, 0},
 	};
 
@@ -281,7 +335,7 @@ bool parse_options(int argc, char **argv,
 
 	settings->dmesg_warn_level = -1;
 
-	while ((c = getopt_long(argc, argv, "hn:dt:x:sl:om", long_options, NULL)) != -1) {
+	while ((c = getopt_long(argc, argv, "hn:dt:x:sl:omb:L", long_options, NULL)) != -1) {
 		switch (c) {
 		case OPT_HELP:
 			usage(NULL, stdout);
@@ -342,6 +396,13 @@ bool parse_options(int argc, char **argv,
 		case OPT_DMESG_WARN_LEVEL:
 			settings->dmesg_warn_level = atoi(optarg);
 			break;
+		case OPT_BLACKLIST:
+			if (!parse_blacklist(&settings->exclude_regexes, absolute_path(optarg)))
+				goto error;
+			break;
+		case OPT_LIST_ALL:
+			settings->list_all = true;
+			break;
 		case '?':
 			usage(NULL, stderr);
 			goto error;
@@ -354,20 +415,39 @@ bool parse_options(int argc, char **argv,
 	if (settings->dmesg_warn_level < 0)
 		settings->dmesg_warn_level = 4; /* KERN_WARN */
 
-	switch (argc - optind) {
-	case 2:
-		settings->test_root = absolute_path(argv[optind]);
-		++optind;
-		/* fallthrough */
-	case 1:
-		settings->results_path = absolute_path(argv[optind]);
-		break;
-	case 0:
-		usage("Results-path missing", stderr);
-		goto error;
-	default:
-		usage("Extra arguments after results-path", stderr);
-		goto error;
+	if (settings->list_all) { /* --list-all doesn't require results path */
+		switch (argc - optind) {
+		case 1:
+			settings->test_root = absolute_path(argv[optind]);
+			++optind;
+			/* fallthrough */
+		case 0:
+			break;
+		default:
+			usage("Too many arguments for --list-all", stderr);
+			goto error;
+		}
+	} else {
+		switch (argc - optind) {
+		case 2:
+			settings->test_root = absolute_path(argv[optind]);
+			++optind;
+			/* fallthrough */
+		case 1:
+			settings->results_path = absolute_path(argv[optind]);
+			break;
+		case 0:
+			usage("Results-path missing", stderr);
+			goto error;
+		default:
+			usage("Extra arguments after results-path", stderr);
+			goto error;
+		}
+		if (!settings->name) {
+			char *name = strdup(settings->results_path);
+			settings->name = strdup(basename(name));
+			free(name);
+		}
 	}
 
 	if ((env_test_root = getenv("IGT_TEST_ROOT")) != NULL) {
@@ -380,11 +460,6 @@ bool parse_options(int argc, char **argv,
 		goto error;
 	}
 
-	if (!settings->name) {
-		char *name = strdup(settings->results_path);
-		settings->name = strdup(basename(name));
-		free(name);
-	}
 
 	return true;
 
diff --git a/runner/settings.h b/runner/settings.h
index 0a1ee08d..6dcfa8c5 100644
--- a/runner/settings.h
+++ b/runner/settings.h
@@ -43,6 +43,7 @@ struct settings {
 	char *results_path;
 	bool piglit_style_dmesg;
 	int dmesg_warn_level;
+	bool list_all;
 };
 
 /**
diff --git a/runner/testdata/meson.build b/runner/testdata/meson.build
index 011eff8e..2456f82a 100644
--- a/runner/testdata/meson.build
+++ b/runner/testdata/meson.build
@@ -12,6 +12,11 @@ foreach prog : testdata_progs
 					   install : false)
 endforeach
 
+configure_file(input : 'test-blacklist.txt',
+	       output : 'test-blacklist.txt', copy : true)
+configure_file(input : 'test-blacklist2.txt',
+	       output : 'test-blacklist2.txt', copy : true)
+
 testdata_list = custom_target('testdata_testlist',
 			      output : 'test-list.txt',
 			      command : [ gen_testlist, '@OUTPUT@', testdata_progs ],
diff --git a/runner/testdata/test-blacklist.txt b/runner/testdata/test-blacklist.txt
new file mode 100644
index 00000000..6b09ae5c
--- /dev/null
+++ b/runner/testdata/test-blacklist.txt
@@ -0,0 +1,2 @@
+xpattern3    # Comment 1
+# Comment 2
diff --git a/runner/testdata/test-blacklist2.txt b/runner/testdata/test-blacklist2.txt
new file mode 100644
index 00000000..d0f6e612
--- /dev/null
+++ b/runner/testdata/test-blacklist2.txt
@@ -0,0 +1,2 @@
+
+xpattern4
-- 
2.21.0

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for runner: add --list-all and --blacklist (rev2)
  2019-06-14 13:24 [igt-dev] [PATCH] runner: add --list-all and --blacklist Oleg Vasilev
                   ` (2 preceding siblings ...)
  2019-06-17 11:49 ` [igt-dev] [PATCH v2] " Oleg Vasilev
@ 2019-06-17 14:14 ` Patchwork
  2019-06-17 15:31 ` [igt-dev] ✓ Fi.CI.BAT: success for runner: add --list-all and --blacklist (rev3) Patchwork
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2019-06-17 14:14 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

== Series Details ==

Series: runner: add --list-all and --blacklist (rev2)
URL   : https://patchwork.freedesktop.org/series/62106/
State : success

== Summary ==

CI Bug Log - changes from IGT_5059 -> IGTPW_3161
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/62106/revisions/2/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s4-devices:
    - fi-blb-e6850:       [PASS][1] -> [INCOMPLETE][2] ([fdo#107718])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/fi-blb-e6850/igt@gem_exec_suspend@basic-s4-devices.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/fi-blb-e6850/igt@gem_exec_suspend@basic-s4-devices.html

  * igt@gem_mmap_gtt@basic-write-no-prefault:
    - fi-icl-u3:          [PASS][3] -> [DMESG-WARN][4] ([fdo#107724])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/fi-icl-u3/igt@gem_mmap_gtt@basic-write-no-prefault.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/fi-icl-u3/igt@gem_mmap_gtt@basic-write-no-prefault.html

  * igt@i915_selftest@live_gtt:
    - fi-glk-dsi:         [PASS][5] -> [INCOMPLETE][6] ([fdo#103359] / [k.org#198133])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/fi-glk-dsi/igt@i915_selftest@live_gtt.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/fi-glk-dsi/igt@i915_selftest@live_gtt.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u2:          [PASS][7] -> [FAIL][8] ([fdo#103167])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html

  
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (44 -> 35)
------------------------------

  Additional (1): fi-icl-dsi 
  Missing    (10): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-bwr-2160 fi-skl-6260u fi-kbl-7500u fi-byt-clapper fi-bdw-samus 


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

  * IGT: IGT_5059 -> IGTPW_3161

  CI_DRM_6284: f992a9cb038edbdd5ff20a1ed3410e8b95879bcf @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3161: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/
  IGT_5059: 1f67ee0d09d6513f487f2be74aae9700e755258a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for runner: add --list-all and --blacklist (rev3)
  2019-06-14 13:24 [igt-dev] [PATCH] runner: add --list-all and --blacklist Oleg Vasilev
                   ` (3 preceding siblings ...)
  2019-06-17 14:14 ` [igt-dev] ✓ Fi.CI.BAT: success for runner: add --list-all and --blacklist (rev2) Patchwork
@ 2019-06-17 15:31 ` Patchwork
  2019-06-17 23:23 ` [igt-dev] ✓ Fi.CI.IGT: success for runner: add --list-all and --blacklist (rev2) Patchwork
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2019-06-17 15:31 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

== Series Details ==

Series: runner: add --list-all and --blacklist (rev3)
URL   : https://patchwork.freedesktop.org/series/62106/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6286 -> IGTPW_3163
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/62106/revisions/3/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s3:
    - fi-blb-e6850:       [PASS][1] -> [INCOMPLETE][2] ([fdo#107718])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6286/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html

  * igt@i915_selftest@live_hangcheck:
    - fi-icl-y:           [PASS][3] -> [INCOMPLETE][4] ([fdo#107713] / [fdo#108569])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6286/fi-icl-y/igt@i915_selftest@live_hangcheck.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/fi-icl-y/igt@i915_selftest@live_hangcheck.html

  
#### Possible fixes ####

  * igt@gem_ctx_switch@basic-default:
    - fi-icl-guc:         [INCOMPLETE][5] ([fdo#107713] / [fdo#108569]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6286/fi-icl-guc/igt@gem_ctx_switch@basic-default.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/fi-icl-guc/igt@gem_ctx_switch@basic-default.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][7] ([fdo#109485]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6286/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [DMESG-WARN][9] ([fdo#102614]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6286/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-b:
    - fi-ilk-650:         [DMESG-WARN][11] ([fdo#106387]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6286/fi-ilk-650/igt@kms_pipe_crc_basic@read-crc-pipe-b.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/fi-ilk-650/igt@kms_pipe_crc_basic@read-crc-pipe-b.html

  
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#106387]: https://bugs.freedesktop.org/show_bug.cgi?id=106387
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485


Participating hosts (46 -> 39)
------------------------------

  Additional (1): fi-pnv-d510 
  Missing    (8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-kbl-x1275 fi-byt-clapper fi-bdw-samus 


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

  * IGT: IGT_5059 -> IGTPW_3163

  CI_DRM_6286: 4853198e8f13330c123082ef1f0759d476ca62d8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3163: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/
  IGT_5059: 1f67ee0d09d6513f487f2be74aae9700e755258a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for runner: add --list-all and --blacklist (rev2)
  2019-06-14 13:24 [igt-dev] [PATCH] runner: add --list-all and --blacklist Oleg Vasilev
                   ` (4 preceding siblings ...)
  2019-06-17 15:31 ` [igt-dev] ✓ Fi.CI.BAT: success for runner: add --list-all and --blacklist (rev3) Patchwork
@ 2019-06-17 23:23 ` Patchwork
  2019-06-18  2:11 ` [igt-dev] ✓ Fi.CI.IGT: success for runner: add --list-all and --blacklist (rev3) Patchwork
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2019-06-17 23:23 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

== Series Details ==

Series: runner: add --list-all and --blacklist (rev2)
URL   : https://patchwork.freedesktop.org/series/62106/
State : success

== Summary ==

CI Bug Log - changes from IGT_5059_full -> IGTPW_3161_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/62106/revisions/2/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@bcs0-s3:
    - shard-kbl:          [PASS][1] -> [DMESG-WARN][2] ([fdo#108566])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl3/igt@gem_ctx_isolation@bcs0-s3.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-kbl6/igt@gem_ctx_isolation@bcs0-s3.html

  * igt@gem_eio@in-flight-immediate:
    - shard-apl:          [PASS][3] -> [DMESG-WARN][4] ([fdo#110913 ]) +2 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-apl8/igt@gem_eio@in-flight-immediate.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-apl8/igt@gem_eio@in-flight-immediate.html

  * igt@gem_eio@suspend:
    - shard-kbl:          [PASS][5] -> [DMESG-WARN][6] ([fdo#110913 ]) +2 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl1/igt@gem_eio@suspend.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-kbl2/igt@gem_eio@suspend.html

  * igt@gem_persistent_relocs@forked-interruptible-thrash-inactive:
    - shard-apl:          [PASS][7] -> [INCOMPLETE][8] ([fdo#103927])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-apl5/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-apl1/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-snb:          [PASS][9] -> [DMESG-WARN][10] ([fdo#110913 ])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-snb5/igt@gem_userptr_blits@sync-unmap-cycles.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-snb2/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-kbl:          [PASS][11] -> [SKIP][12] ([fdo#109271])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl1/igt@i915_pm_rc6_residency@rc6-accuracy.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-kbl2/igt@i915_pm_rc6_residency@rc6-accuracy.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-apl:          [PASS][13] -> [FAIL][14] ([fdo#103232])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-apl2/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-apl8/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_flip@2x-plain-flip-interruptible:
    - shard-hsw:          [PASS][15] -> [SKIP][16] ([fdo#109271]) +17 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-hsw7/igt@kms_flip@2x-plain-flip-interruptible.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-hsw1/igt@kms_flip@2x-plain-flip-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move:
    - shard-iclb:         [PASS][17] -> [FAIL][18] ([fdo#103167]) +6 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-iclb7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-iclb:         [PASS][19] -> [FAIL][20] ([fdo#103167] / [fdo#110378])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-1p-rte.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-1p-rte.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite:
    - shard-iclb:         [PASS][21] -> [INCOMPLETE][22] ([fdo#106978] / [fdo#107713])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-iclb:         [PASS][23] -> [FAIL][24] ([fdo#103166])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb4/igt@kms_plane_lowres@pipe-a-tiling-x.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-iclb5/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_psr@psr2_primary_blt:
    - shard-iclb:         [PASS][25] -> [SKIP][26] ([fdo#109441]) +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb2/igt@kms_psr@psr2_primary_blt.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-iclb6/igt@kms_psr@psr2_primary_blt.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-apl:          [PASS][27] -> [DMESG-WARN][28] ([fdo#108566]) +3 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-apl1/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-apl1/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@hang:
    - shard-kbl:          [DMESG-WARN][29] ([fdo#110913 ]) -> [PASS][30] +4 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl2/igt@gem_mmap_gtt@hang.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-kbl1/igt@gem_mmap_gtt@hang.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
    - shard-snb:          [DMESG-WARN][31] ([fdo#110789] / [fdo#110913 ]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-snb7/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-snb4/igt@gem_persistent_relocs@forked-interruptible-thrashing.html

  * igt@gem_persistent_relocs@forked-thrashing:
    - shard-apl:          [DMESG-WARN][33] ([fdo#110913 ]) -> [PASS][34] +4 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-apl4/igt@gem_persistent_relocs@forked-thrashing.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-apl1/igt@gem_persistent_relocs@forked-thrashing.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup:
    - shard-snb:          [DMESG-WARN][35] ([fdo#110913 ]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-snb5/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-snb1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-snb:          [SKIP][37] ([fdo#109271]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-snb1/igt@i915_pm_rc6_residency@rc6-accuracy.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-snb4/igt@i915_pm_rc6_residency@rc6-accuracy.html

  * igt@i915_pm_rpm@system-suspend-execbuf:
    - shard-iclb:         [INCOMPLETE][39] ([fdo#107713] / [fdo#108840]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb2/igt@i915_pm_rpm@system-suspend-execbuf.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-iclb3/igt@i915_pm_rpm@system-suspend-execbuf.html

  * igt@i915_selftest@live_evict:
    - shard-kbl:          [INCOMPLETE][41] ([fdo#103665]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl3/igt@i915_selftest@live_evict.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-kbl2/igt@i915_selftest@live_evict.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-apl:          [DMESG-WARN][43] ([fdo#108566]) -> [PASS][44] +3 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-apl3/igt@i915_suspend@fence-restore-tiled2untiled.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-apl8/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@i915_suspend@sysfs-reader:
    - shard-kbl:          [DMESG-WARN][45] ([fdo#108566]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl4/igt@i915_suspend@sysfs-reader.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-kbl3/igt@i915_suspend@sysfs-reader.html

  * igt@kms_cursor_crc@pipe-b-cursor-64x21-sliding:
    - shard-kbl:          [FAIL][47] ([fdo#103232]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl3/igt@kms_cursor_crc@pipe-b-cursor-64x21-sliding.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-kbl4/igt@kms_cursor_crc@pipe-b-cursor-64x21-sliding.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [SKIP][49] ([fdo#109349]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb5/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move:
    - shard-hsw:          [SKIP][51] ([fdo#109271]) -> [PASS][52] +20 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-hsw1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-hsw8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
    - shard-iclb:         [FAIL][53] ([fdo#103167]) -> [PASS][54] +7 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
    - shard-glk:          [INCOMPLETE][55] ([fdo#103359] / [k.org#198133]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-glk3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-glk2/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html

  * igt@kms_plane_lowres@pipe-a-tiling-y:
    - shard-iclb:         [FAIL][57] ([fdo#103166]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb1/igt@kms_plane_lowres@pipe-a-tiling-y.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-iclb7/igt@kms_plane_lowres@pipe-a-tiling-y.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [SKIP][59] ([fdo#109441]) -> [PASS][60] +1 similar issue
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb4/igt@kms_psr@psr2_sprite_plane_move.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@perf_pmu@rc6:
    - shard-kbl:          [SKIP][61] ([fdo#109271]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl2/igt@perf_pmu@rc6.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-kbl1/igt@perf_pmu@rc6.html

  
#### Warnings ####

  * igt@gem_tiled_swapping@non-threaded:
    - shard-hsw:          [INCOMPLETE][63] ([fdo#103540]) -> [FAIL][64] ([fdo#108686])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-hsw5/igt@gem_tiled_swapping@non-threaded.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-hsw7/igt@gem_tiled_swapping@non-threaded.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-kbl:          [INCOMPLETE][65] ([fdo#103665]) -> [FAIL][66] ([fdo#103232])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl2/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/shard-kbl1/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  
  [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#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
  [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#106978]: https://bugs.freedesktop.org/show_bug.cgi?id=106978
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686
  [fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110378]: https://bugs.freedesktop.org/show_bug.cgi?id=110378
  [fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
  [fdo#110913 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110913 
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (7 -> 6)
------------------------------

  Missing    (1): shard-skl 


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

  * IGT: IGT_5059 -> IGTPW_3161

  CI_DRM_6284: f992a9cb038edbdd5ff20a1ed3410e8b95879bcf @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3161: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3161/
  IGT_5059: 1f67ee0d09d6513f487f2be74aae9700e755258a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for runner: add --list-all and --blacklist (rev3)
  2019-06-14 13:24 [igt-dev] [PATCH] runner: add --list-all and --blacklist Oleg Vasilev
                   ` (5 preceding siblings ...)
  2019-06-17 23:23 ` [igt-dev] ✓ Fi.CI.IGT: success for runner: add --list-all and --blacklist (rev2) Patchwork
@ 2019-06-18  2:11 ` Patchwork
  2019-06-18  9:36 ` [igt-dev] ✗ Fi.CI.BAT: failure for runner: add --list-all and --blacklist (rev4) Patchwork
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2019-06-18  2:11 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

== Series Details ==

Series: runner: add --list-all and --blacklist (rev3)
URL   : https://patchwork.freedesktop.org/series/62106/
State : success

== Summary ==

CI Bug Log - changes from IGT_5059_full -> IGTPW_3163_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/62106/revisions/3/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@in-flight-1us:
    - shard-snb:          [PASS][1] -> [DMESG-WARN][2] ([fdo#110913 ])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-snb6/igt@gem_eio@in-flight-1us.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-snb1/igt@gem_eio@in-flight-1us.html

  * igt@gem_eio@in-flight-suspend:
    - shard-kbl:          [PASS][3] -> [DMESG-WARN][4] ([fdo#110913 ]) +4 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl7/igt@gem_eio@in-flight-suspend.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-kbl7/igt@gem_eio@in-flight-suspend.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing:
    - shard-snb:          [PASS][5] -> [DMESG-WARN][6] ([fdo#110789] / [fdo#110913 ])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-snb5/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-snb2/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy-gup:
    - shard-apl:          [PASS][7] -> [DMESG-WARN][8] ([fdo#110913 ]) +3 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-apl4/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-apl6/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html

  * igt@gem_workarounds@suspend-resume-context:
    - shard-apl:          [PASS][9] -> [DMESG-WARN][10] ([fdo#108566]) +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-apl3/igt@gem_workarounds@suspend-resume-context.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-apl2/igt@gem_workarounds@suspend-resume-context.html

  * igt@kms_cursor_legacy@cursor-vs-flip-toggle:
    - shard-glk:          [PASS][11] -> [INCOMPLETE][12] ([fdo#103359] / [k.org#198133])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-glk6/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-glk2/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank:
    - shard-hsw:          [PASS][13] -> [SKIP][14] ([fdo#109271]) +18 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-hsw8/igt@kms_flip@2x-flip-vs-absolute-wf_vblank.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-hsw1/igt@kms_flip@2x-flip-vs-absolute-wf_vblank.html

  * igt@kms_flip@modeset-vs-vblank-race-interruptible:
    - shard-glk:          [PASS][15] -> [FAIL][16] ([fdo#103060])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-glk4/igt@kms_flip@modeset-vs-vblank-race-interruptible.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-glk1/igt@kms_flip@modeset-vs-vblank-race-interruptible.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
    - shard-iclb:         [PASS][17] -> [FAIL][18] ([fdo#103167]) +5 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - shard-kbl:          [PASS][19] -> [DMESG-WARN][20] ([fdo#108566]) +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-kbl6/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-iclb:         [PASS][21] -> [FAIL][22] ([fdo#103166])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb4/igt@kms_plane_lowres@pipe-a-tiling-x.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-iclb1/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_psr@psr2_primary_blt:
    - shard-iclb:         [PASS][23] -> [SKIP][24] ([fdo#109441]) +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb2/igt@kms_psr@psr2_primary_blt.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-iclb8/igt@kms_psr@psr2_primary_blt.html

  * igt@kms_vblank@pipe-a-wait-forked-hang:
    - shard-hsw:          [PASS][25] -> [INCOMPLETE][26] ([fdo#103540])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-hsw8/igt@kms_vblank@pipe-a-wait-forked-hang.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-hsw7/igt@kms_vblank@pipe-a-wait-forked-hang.html

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@hang:
    - shard-kbl:          [DMESG-WARN][27] ([fdo#110913 ]) -> [PASS][28] +4 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl2/igt@gem_mmap_gtt@hang.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-kbl7/igt@gem_mmap_gtt@hang.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrashing:
    - shard-snb:          [DMESG-WARN][29] ([fdo#110789] / [fdo#110913 ]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-snb4/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-snb4/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html

  * igt@gem_persistent_relocs@forked-thrashing:
    - shard-apl:          [DMESG-WARN][31] ([fdo#110913 ]) -> [PASS][32] +3 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-apl4/igt@gem_persistent_relocs@forked-thrashing.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-apl3/igt@gem_persistent_relocs@forked-thrashing.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-hsw:          [INCOMPLETE][33] ([fdo#103540]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-hsw5/igt@gem_tiled_swapping@non-threaded.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-hsw1/igt@gem_tiled_swapping@non-threaded.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup:
    - shard-snb:          [DMESG-WARN][35] ([fdo#110913 ]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-snb5/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-snb1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html

  * igt@i915_pm_rpm@system-suspend-execbuf:
    - shard-iclb:         [INCOMPLETE][37] ([fdo#107713] / [fdo#108840]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb2/igt@i915_pm_rpm@system-suspend-execbuf.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-iclb4/igt@i915_pm_rpm@system-suspend-execbuf.html

  * igt@i915_selftest@live_evict:
    - shard-kbl:          [INCOMPLETE][39] ([fdo#103665]) -> [PASS][40] +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl3/igt@i915_selftest@live_evict.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-kbl2/igt@i915_selftest@live_evict.html

  * igt@i915_suspend@fence-restore-tiled2untiled:
    - shard-apl:          [DMESG-WARN][41] ([fdo#108566]) -> [PASS][42] +4 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-apl3/igt@i915_suspend@fence-restore-tiled2untiled.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-apl3/igt@i915_suspend@fence-restore-tiled2untiled.html

  * igt@i915_suspend@sysfs-reader:
    - shard-kbl:          [DMESG-WARN][43] ([fdo#108566]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl4/igt@i915_suspend@sysfs-reader.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-kbl7/igt@i915_suspend@sysfs-reader.html

  * igt@kms_cursor_crc@pipe-b-cursor-64x21-sliding:
    - shard-kbl:          [FAIL][45] ([fdo#103232]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl3/igt@kms_cursor_crc@pipe-b-cursor-64x21-sliding.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-kbl1/igt@kms_cursor_crc@pipe-b-cursor-64x21-sliding.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-wc:
    - shard-hsw:          [SKIP][47] ([fdo#109271]) -> [PASS][48] +16 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-hsw1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-wc.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-hsw7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
    - shard-iclb:         [FAIL][49] ([fdo#103167]) -> [PASS][50] +9 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
    - shard-glk:          [INCOMPLETE][51] ([fdo#103359] / [k.org#198133]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-glk3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-glk9/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [SKIP][53] ([fdo#109441]) -> [PASS][54] +2 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-iclb4/igt@kms_psr@psr2_sprite_plane_move.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_setmode@basic:
    - shard-apl:          [FAIL][55] ([fdo#99912]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-apl3/igt@kms_setmode@basic.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-apl8/igt@kms_setmode@basic.html
    - shard-kbl:          [FAIL][57] ([fdo#99912]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl6/igt@kms_setmode@basic.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-kbl6/igt@kms_setmode@basic.html

  * igt@perf_pmu@rc6:
    - shard-kbl:          [SKIP][59] ([fdo#109271]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5059/shard-kbl2/igt@perf_pmu@rc6.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/shard-kbl1/igt@perf_pmu@rc6.html

  
  [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060
  [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#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
  [fdo#110913 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110913 
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (7 -> 6)
------------------------------

  Missing    (1): shard-skl 


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

  * IGT: IGT_5059 -> IGTPW_3163
  * Linux: CI_DRM_6284 -> CI_DRM_6286

  CI_DRM_6284: f992a9cb038edbdd5ff20a1ed3410e8b95879bcf @ git://anongit.freedesktop.org/gfx-ci/linux
  CI_DRM_6286: 4853198e8f13330c123082ef1f0759d476ca62d8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3163: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3163/
  IGT_5059: 1f67ee0d09d6513f487f2be74aae9700e755258a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* Re: [igt-dev] [PATCH v3] runner: add --list-all and --blacklist
  2019-06-17 13:41   ` [igt-dev] [PATCH v3] " Oleg Vasilev
@ 2019-06-18  8:11     ` Petri Latvala
  2019-06-18  9:07       ` [igt-dev] [PATCH v4] " Oleg Vasilev
  0 siblings, 1 reply; 17+ messages in thread
From: Petri Latvala @ 2019-06-18  8:11 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

On Mon, Jun 17, 2019 at 04:41:33PM +0300, Oleg Vasilev wrote:
> Currently, runner already collects all subtest names into job_list.
> --list-all allows to output it to stdout.
> 
> --blacklist option takes a filename as an argument and adds all regexes
> from that file to the exclusion list.
> 
> v2:
>  - Update exclude/include regex matches for tests without
> 	subtests to be matched with pigtit-like name (Petri)
>  - Replace relative paths with those formatted with testdatadir (Petri)
>  - Minor codestyle changes
> 
> v3:
>  - Print test names in lowercase (Petri)
> 
> Cc: Petri Latvala <petri.latvala@intel.com>
> Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
> ---
>  runner/job_list.c                   |  36 ++++++++-
>  runner/job_list.h                   |   1 +
>  runner/runner.c                     |   5 ++
>  runner/runner_tests.c               |  18 ++++-
>  runner/settings.c                   | 117 +++++++++++++++++++++++-----
>  runner/settings.h                   |   1 +
>  runner/testdata/meson.build         |   5 ++
>  runner/testdata/test-blacklist.txt  |   2 +
>  runner/testdata/test-blacklist2.txt |   2 +
>  9 files changed, 163 insertions(+), 24 deletions(-)
>  create mode 100644 runner/testdata/test-blacklist.txt
>  create mode 100644 runner/testdata/test-blacklist2.txt
> 
> diff --git a/runner/job_list.c b/runner/job_list.c
> index 4a16742f..8e5233f5 100644
> --- a/runner/job_list.c
> +++ b/runner/job_list.c
> @@ -111,11 +111,16 @@ static void add_subtests(struct job_list *job_list, struct settings *settings,
>  		fprintf(stderr, "popen error when executing %s: %s\n", binary, strerror(errno));
>  	} else if (WIFEXITED(s)) {
>  		if (WEXITSTATUS(s) == IGT_EXIT_INVALID) {
> +			char piglitname[256];
> +			generate_piglit_name(binary, NULL,
> +					     piglitname, sizeof(piglitname));
> +
>  			/* No subtests on this one */
> -			if (exclude && exclude->size && matches_any(binary, exclude)) {
> +			if (exclude && exclude->size &&
> +					matches_any(piglitname, exclude)) {
>  				return;
>  			}
> -			if (!include || !include->size || matches_any(binary, include)) {
> +			if (!include || !include->size || matches_any(piglitname, include)) {
>  				add_job_list_entry(job_list, strdup(binary), NULL, 0);
>  				return;
>  			}
> @@ -291,6 +296,33 @@ static bool job_list_from_test_list(struct job_list *job_list,
>  	return any;
>  }
>  
> +void str_to_lower(char* str)
> +{
> +	for (int i = 0; str[i]; i++) {
> +		str[i] = tolower(str[i]);
> +	}
> +}
> +
> +void list_all_tests(struct job_list* lst)
> +{
> +	for (size_t test_idx = 0; test_idx < lst->size; ++test_idx){
> +		struct job_list_entry* current_entry = lst->entries+test_idx;
> +		str_to_lower(current_entry->binary);
> +		if (current_entry->subtest_count==0) {
> +			printf("igt@%s\n", current_entry->binary);
> +			continue;
> +		}
> +		for (size_t subtest_idx = 0;
> +		    subtest_idx < current_entry->subtest_count;
> +		    ++subtest_idx) {
> +			char *subtest_name = current_entry->subtests[subtest_idx];
> +			str_to_lower(subtest_name);
> +			printf("igt@%s@%s\n", current_entry->binary, subtest_name);
> +		}
> +	}
> +}
> +
> +
>  static char *lowercase(const char *str)
>  {

There's a lowercasing helper function already, right here.


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

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

* [igt-dev] [PATCH v4] runner: add --list-all and --blacklist
  2019-06-18  8:11     ` Petri Latvala
@ 2019-06-18  9:07       ` Oleg Vasilev
  2019-06-18  9:26         ` Petri Latvala
  0 siblings, 1 reply; 17+ messages in thread
From: Oleg Vasilev @ 2019-06-18  9:07 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala

Currently, runner already collects all subtest names into job_list.
--list-all allows to output it to stdout.

--blacklist option takes a filename as an argument and adds all regexes
from that file to the exclusion list.

v2:
 - Update exclude/include regex matches for tests without
	subtests to be matched with pigtit-like name (Petri)
 - Replace relative paths with those formatted with testdatadir (Petri)
 - Minor codestyle changes

v3:
 - Print test names in lowercase (Petri)

v4:
 - Replaced custom str_to_lower with generate_piglit_name (Petri)
 - Minor codestyle changes

Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
---
 runner/job_list.c                   |  34 +++++++-
 runner/job_list.h                   |   1 +
 runner/runner.c                     |   5 ++
 runner/runner_tests.c               |  18 ++++-
 runner/settings.c                   | 121 +++++++++++++++++++++++-----
 runner/settings.h                   |   1 +
 runner/testdata/meson.build         |   5 ++
 runner/testdata/test-blacklist.txt  |   2 +
 runner/testdata/test-blacklist2.txt |   2 +
 9 files changed, 165 insertions(+), 24 deletions(-)
 create mode 100644 runner/testdata/test-blacklist.txt
 create mode 100644 runner/testdata/test-blacklist2.txt

diff --git a/runner/job_list.c b/runner/job_list.c
index 4a16742f..5283fd72 100644
--- a/runner/job_list.c
+++ b/runner/job_list.c
@@ -111,11 +111,17 @@ static void add_subtests(struct job_list *job_list, struct settings *settings,
 		fprintf(stderr, "popen error when executing %s: %s\n", binary, strerror(errno));
 	} else if (WIFEXITED(s)) {
 		if (WEXITSTATUS(s) == IGT_EXIT_INVALID) {
+			char piglitname[256];
+
+			generate_piglit_name(binary, NULL,
+					     piglitname, sizeof(piglitname));
 			/* No subtests on this one */
-			if (exclude && exclude->size && matches_any(binary, exclude)) {
+			if (exclude && exclude->size &&
+			    matches_any(piglitname, exclude)) {
 				return;
 			}
-			if (!include || !include->size || matches_any(binary, include)) {
+			if (!include || !include->size ||
+			    matches_any(piglitname, include)) {
 				add_job_list_entry(job_list, strdup(binary), NULL, 0);
 				return;
 			}
@@ -291,6 +297,30 @@ static bool job_list_from_test_list(struct job_list *job_list,
 	return any;
 }
 
+void list_all_tests(struct job_list *lst)
+{
+	char piglit_name[256];
+
+	for (size_t test_idx = 0; test_idx < lst->size; ++test_idx) {
+		struct job_list_entry *current_entry = lst->entries + test_idx;
+		char *binary = current_entry->binary;
+
+		if (current_entry->subtest_count == 0) {
+			generate_piglit_name(binary, NULL,
+					     piglit_name, sizeof(piglit_name));
+			printf("%s\n", piglit_name);
+			continue;
+		}
+		for (size_t subtest_idx = 0;
+		    subtest_idx < current_entry->subtest_count;
+		    ++subtest_idx) {
+			generate_piglit_name(binary, current_entry->subtests[subtest_idx],
+					     piglit_name, sizeof(piglit_name));
+			printf("%s\n", piglit_name);
+		}
+	}
+}
+
 static char *lowercase(const char *str)
 {
 	char *ret = malloc(strlen(str) + 1);
diff --git a/runner/job_list.h b/runner/job_list.h
index f8bbbddc..39c9b863 100644
--- a/runner/job_list.h
+++ b/runner/job_list.h
@@ -36,5 +36,6 @@ bool create_job_list(struct job_list *job_list, struct settings *settings);
 
 bool serialize_job_list(struct job_list *job_list, struct settings *settings);
 bool read_job_list(struct job_list *job_list, int dirfd);
+void list_all_tests(struct job_list *lst);
 
 #endif
diff --git a/runner/runner.c b/runner/runner.c
index e1a6ccba..4855ad64 100644
--- a/runner/runner.c
+++ b/runner/runner.c
@@ -24,6 +24,11 @@ int main(int argc, char **argv)
 		return 1;
 	}
 
+	if (settings.list_all) {
+		list_all_tests(&job_list);
+		return 0;
+	}
+
 	if (!initialize_execute_state(&state, &settings, &job_list)) {
 		return 1;
 	}
diff --git a/runner/runner_tests.c b/runner/runner_tests.c
index c09cda70..39d4a078 100644
--- a/runner/runner_tests.c
+++ b/runner/runner_tests.c
@@ -378,6 +378,7 @@ igt_main
 	}
 
 	igt_subtest("parse-all-settings") {
+		char blacklist_name[PATH_MAX], blacklist2_name[PATH_MAX];
 		const char *argv[] = { "runner",
 				       "-n", "foo",
 				       "--abort-on-monitored-error=taint,lockdep",
@@ -388,6 +389,8 @@ igt_main
 				       "-t", "pattern2",
 				       "-x", "xpattern1",
 				       "-x", "xpattern2",
+				       "-b", blacklist_name,
+				       "--blacklist", blacklist2_name,
 				       "-s",
 				       "-l", "verbose",
 				       "--overwrite",
@@ -401,6 +404,9 @@ igt_main
 				       "path-to-results",
 		};
 
+		sprintf(blacklist_name, "%s/test-blacklist.txt", testdatadir);
+		sprintf(blacklist2_name, "%s/test-blacklist2.txt", testdatadir);
+
 		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
 
 		igt_assert_eq(settings->abort_mask, ABORT_TAINT | ABORT_LOCKDEP);
@@ -410,9 +416,11 @@ igt_main
 		igt_assert_eq(settings->include_regexes.size, 2);
 		igt_assert_eqstr(settings->include_regexes.regex_strings[0], "pattern1");
 		igt_assert_eqstr(settings->include_regexes.regex_strings[1], "pattern2");
-		igt_assert_eq(settings->exclude_regexes.size, 2);
+		igt_assert_eq(settings->exclude_regexes.size, 4);
 		igt_assert_eqstr(settings->exclude_regexes.regex_strings[0], "xpattern1");
 		igt_assert_eqstr(settings->exclude_regexes.regex_strings[1], "xpattern2");
+		igt_assert_eqstr(settings->exclude_regexes.regex_strings[2], "xpattern3"); /* From blacklist */
+		igt_assert_eqstr(settings->exclude_regexes.regex_strings[3], "xpattern4"); /* From blacklist2 */
 		igt_assert(settings->sync);
 		igt_assert_eq(settings->log_level, LOG_LEVEL_VERBOSE);
 		igt_assert(settings->overwrite);
@@ -426,6 +434,14 @@ igt_main
 		igt_assert(settings->piglit_style_dmesg);
 		igt_assert_eq(settings->dmesg_warn_level, 3);
 	}
+	igt_subtest("parse-list-all") {
+		const char *argv[] = { "runner",
+				       "--list-all",
+				       "test-root-dir"};
+
+		igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
+		igt_assert_eq(settings->list_all, 1);
+	}
 
 	igt_subtest("dmesg-warn-level-inferred") {
 		const char *argv[] = { "runner",
diff --git a/runner/settings.c b/runner/settings.c
index ad38ae8d..9920e1a6 100644
--- a/runner/settings.c
+++ b/runner/settings.c
@@ -1,5 +1,6 @@
 #include "settings.h"
 
+#include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <getopt.h>
@@ -30,6 +31,8 @@ enum {
 	OPT_MULTIPLE = 'm',
 	OPT_TIMEOUT = 'c',
 	OPT_WATCHDOG = 'g',
+	OPT_BLACKLIST = 'b',
+	OPT_LIST_ALL = 'L',
 };
 
 static struct {
@@ -117,7 +120,8 @@ static bool parse_abort_conditions(struct settings *settings, const char *optarg
 }
 
 static const char *usage_str =
-	"usage: runner [options] [test_root] results-path\n\n"
+	"usage: runner [options] [test_root] results-path\n"
+	"   or: runner --list-all [options] [test_root]\n\n"
 	"Options:\n"
 	" Piglit compatible:\n"
 	"  -h, --help            Show this help message and exit\n"
@@ -172,6 +176,10 @@ static const char *usage_str =
 	"                        (longer) filter list means the test result should\n"
 	"                        change. KERN_NOTICE dmesg level is treated as warn,\n"
 	"                        unless overridden with --dmesg-warn-level.\n"
+	"  -b, --blacklist FILENAME\n"
+	"                        Exclude all test matching to regexes from FILENAME\n"
+	"                        (can be used more than once)\n"
+	"  -L, --list-all        List all matching subtests instead of running\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"
@@ -213,6 +221,51 @@ static bool add_regex(struct regex_list *list, char *new)
 	return true;
 }
 
+static bool parse_blacklist(struct regex_list *exclude_regexes,
+			    char *blacklist_filename)
+{
+	FILE *f;
+	char *line = NULL;
+	size_t line_len = 0;
+	bool status;
+
+	if ((f = fopen(blacklist_filename, "r")) == NULL) {
+		fprintf(stderr, "Cannot open blacklist file %s\n", blacklist_filename);
+		return false;
+	}
+	while (1) {
+		size_t str_size = 0, idx = 0;
+
+		if (getline(&line, &line_len, f) == -1) {
+			if (errno == EINTR)
+				continue;
+			else
+				break;
+		}
+
+		while (true) {
+			if (line[idx] == '\n' ||
+			    line[idx] == '\0' ||
+			    line[idx] == '#')   /* # starts a comment */
+				break;
+			if (!isspace(line[idx]))
+				str_size = idx + 1;
+			idx++;
+		}
+		if (str_size > 0) {
+			char *test_regex = strndup(line, str_size);
+
+			status = add_regex(exclude_regexes, test_regex);
+			if (!status)
+				break;
+		}
+	}
+
+	free(line);
+	fclose(f);
+	return status;
+}
+
 static void free_regexes(struct regex_list *regexes)
 {
 	size_t i;
@@ -272,6 +325,8 @@ bool parse_options(int argc, char **argv,
 		{"use-watchdog", no_argument, NULL, OPT_WATCHDOG},
 		{"piglit-style-dmesg", no_argument, NULL, OPT_PIGLIT_DMESG},
 		{"dmesg-warn-level", required_argument, NULL, OPT_DMESG_WARN_LEVEL},
+		{"blacklist", required_argument, NULL, OPT_BLACKLIST},
+		{"list-all", no_argument, NULL, OPT_LIST_ALL},
 		{ 0, 0, 0, 0},
 	};
 
@@ -281,7 +336,8 @@ bool parse_options(int argc, char **argv,
 
 	settings->dmesg_warn_level = -1;
 
-	while ((c = getopt_long(argc, argv, "hn:dt:x:sl:om", long_options, NULL)) != -1) {
+	while ((c = getopt_long(argc, argv, "hn:dt:x:sl:omb:L",
+				long_options, NULL)) != -1) {
 		switch (c) {
 		case OPT_HELP:
 			usage(NULL, stdout);
@@ -342,6 +398,14 @@ bool parse_options(int argc, char **argv,
 		case OPT_DMESG_WARN_LEVEL:
 			settings->dmesg_warn_level = atoi(optarg);
 			break;
+		case OPT_BLACKLIST:
+			if (!parse_blacklist(&settings->exclude_regexes,
+					     absolute_path(optarg)))
+				goto error;
+			break;
+		case OPT_LIST_ALL:
+			settings->list_all = true;
+			break;
 		case '?':
 			usage(NULL, stderr);
 			goto error;
@@ -354,20 +418,40 @@ bool parse_options(int argc, char **argv,
 	if (settings->dmesg_warn_level < 0)
 		settings->dmesg_warn_level = 4; /* KERN_WARN */
 
-	switch (argc - optind) {
-	case 2:
-		settings->test_root = absolute_path(argv[optind]);
-		++optind;
-		/* fallthrough */
-	case 1:
-		settings->results_path = absolute_path(argv[optind]);
-		break;
-	case 0:
-		usage("Results-path missing", stderr);
-		goto error;
-	default:
-		usage("Extra arguments after results-path", stderr);
-		goto error;
+	if (settings->list_all) { /* --list-all doesn't require results path */
+		switch (argc - optind) {
+		case 1:
+			settings->test_root = absolute_path(argv[optind]);
+			++optind;
+			/* fallthrough */
+		case 0:
+			break;
+		default:
+			usage("Too many arguments for --list-all", stderr);
+			goto error;
+		}
+	} else {
+		switch (argc - optind) {
+		case 2:
+			settings->test_root = absolute_path(argv[optind]);
+			++optind;
+			/* fallthrough */
+		case 1:
+			settings->results_path = absolute_path(argv[optind]);
+			break;
+		case 0:
+			usage("Results-path missing", stderr);
+			goto error;
+		default:
+			usage("Extra arguments after results-path", stderr);
+			goto error;
+		}
+		if (!settings->name) {
+			char *name = strdup(settings->results_path);
+
+			settings->name = strdup(basename(name));
+			free(name);
+		}
 	}
 
 	if ((env_test_root = getenv("IGT_TEST_ROOT")) != NULL) {
@@ -380,11 +464,6 @@ bool parse_options(int argc, char **argv,
 		goto error;
 	}
 
-	if (!settings->name) {
-		char *name = strdup(settings->results_path);
-		settings->name = strdup(basename(name));
-		free(name);
-	}
 
 	return true;
 
diff --git a/runner/settings.h b/runner/settings.h
index 0a1ee08d..6dcfa8c5 100644
--- a/runner/settings.h
+++ b/runner/settings.h
@@ -43,6 +43,7 @@ struct settings {
 	char *results_path;
 	bool piglit_style_dmesg;
 	int dmesg_warn_level;
+	bool list_all;
 };
 
 /**
diff --git a/runner/testdata/meson.build b/runner/testdata/meson.build
index 011eff8e..2456f82a 100644
--- a/runner/testdata/meson.build
+++ b/runner/testdata/meson.build
@@ -12,6 +12,11 @@ foreach prog : testdata_progs
 					   install : false)
 endforeach
 
+configure_file(input : 'test-blacklist.txt',
+	       output : 'test-blacklist.txt', copy : true)
+configure_file(input : 'test-blacklist2.txt',
+	       output : 'test-blacklist2.txt', copy : true)
+
 testdata_list = custom_target('testdata_testlist',
 			      output : 'test-list.txt',
 			      command : [ gen_testlist, '@OUTPUT@', testdata_progs ],
diff --git a/runner/testdata/test-blacklist.txt b/runner/testdata/test-blacklist.txt
new file mode 100644
index 00000000..6b09ae5c
--- /dev/null
+++ b/runner/testdata/test-blacklist.txt
@@ -0,0 +1,2 @@
+xpattern3    # Comment 1
+# Comment 2
diff --git a/runner/testdata/test-blacklist2.txt b/runner/testdata/test-blacklist2.txt
new file mode 100644
index 00000000..d0f6e612
--- /dev/null
+++ b/runner/testdata/test-blacklist2.txt
@@ -0,0 +1,2 @@
+
+xpattern4
-- 
2.21.0

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

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

* Re: [igt-dev] [PATCH v4] runner: add --list-all and --blacklist
  2019-06-18  9:07       ` [igt-dev] [PATCH v4] " Oleg Vasilev
@ 2019-06-18  9:26         ` Petri Latvala
  0 siblings, 0 replies; 17+ messages in thread
From: Petri Latvala @ 2019-06-18  9:26 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

On Tue, Jun 18, 2019 at 12:07:25PM +0300, Oleg Vasilev wrote:
> Currently, runner already collects all subtest names into job_list.
> --list-all allows to output it to stdout.
> 
> --blacklist option takes a filename as an argument and adds all regexes
> from that file to the exclusion list.
> 
> v2:
>  - Update exclude/include regex matches for tests without
> 	subtests to be matched with pigtit-like name (Petri)
>  - Replace relative paths with those formatted with testdatadir (Petri)
>  - Minor codestyle changes
> 
> v3:
>  - Print test names in lowercase (Petri)
> 
> v4:
>  - Replaced custom str_to_lower with generate_piglit_name (Petri)
>  - Minor codestyle changes
> 
> Cc: Petri Latvala <petri.latvala@intel.com>
> Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>

Reviewed-by: Petri Latvala <petri.latvala@intel.com>


Pushing as soon as CI is done churning through this, thanks for the patch.
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.BAT: failure for runner: add --list-all and --blacklist (rev4)
  2019-06-14 13:24 [igt-dev] [PATCH] runner: add --list-all and --blacklist Oleg Vasilev
                   ` (6 preceding siblings ...)
  2019-06-18  2:11 ` [igt-dev] ✓ Fi.CI.IGT: success for runner: add --list-all and --blacklist (rev3) Patchwork
@ 2019-06-18  9:36 ` Patchwork
  2019-06-18  9:41   ` Petri Latvala
  2019-06-18 10:39 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
  2019-06-18 20:05 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  9 siblings, 1 reply; 17+ messages in thread
From: Patchwork @ 2019-06-18  9:36 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

== Series Details ==

Series: runner: add --list-all and --blacklist (rev4)
URL   : https://patchwork.freedesktop.org/series/62106/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6290 -> IGTPW_3168
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_3168 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_3168, 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/62106/revisions/4/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_exec_suspend@basic-s3:
    - fi-cfl-guc:         [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/fi-cfl-guc/igt@gem_exec_suspend@basic-s3.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/fi-cfl-guc/igt@gem_exec_suspend@basic-s3.html

  * igt@runner@aborted:
    - fi-cfl-guc:         NOTRUN -> [FAIL][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/fi-cfl-guc/igt@runner@aborted.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_rpm@module-reload:
    - fi-hsw-4770:        [PASS][4] -> [INCOMPLETE][5] ([fdo#107807])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/fi-hsw-4770/igt@i915_pm_rpm@module-reload.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/fi-hsw-4770/igt@i915_pm_rpm@module-reload.html

  
#### Possible fixes ####

  * igt@gem_render_tiled_blits@basic:
    - fi-icl-u3:          [DMESG-WARN][6] ([fdo#107724]) -> [PASS][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/fi-icl-u3/igt@gem_render_tiled_blits@basic.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/fi-icl-u3/igt@gem_render_tiled_blits@basic.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [DMESG-WARN][8] ([fdo#102614]) -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

  
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807


Participating hosts (51 -> 37)
------------------------------

  Additional (1): fi-icl-u2 
  Missing    (15): fi-kbl-soraka fi-cml-u2 fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-whl-u fi-kbl-x1275 fi-skl-iommu fi-kbl-8809g fi-byt-clapper fi-bdw-samus fi-cml-u 


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

  * IGT: IGT_5059 -> IGTPW_3168

  CI_DRM_6290: a0fa10b5d68fd65375029dd8b61d6c8c6aa1413f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3168: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/
  IGT_5059: 1f67ee0d09d6513f487f2be74aae9700e755258a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* Re: [igt-dev] ✗ Fi.CI.BAT: failure for runner: add --list-all and --blacklist (rev4)
  2019-06-18  9:36 ` [igt-dev] ✗ Fi.CI.BAT: failure for runner: add --list-all and --blacklist (rev4) Patchwork
@ 2019-06-18  9:41   ` Petri Latvala
  0 siblings, 0 replies; 17+ messages in thread
From: Petri Latvala @ 2019-06-18  9:41 UTC (permalink / raw)
  To: igt-dev

On Tue, Jun 18, 2019 at 09:36:20AM +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: runner: add --list-all and --blacklist (rev4)
> URL   : https://patchwork.freedesktop.org/series/62106/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_6290 -> IGTPW_3168
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with IGTPW_3168 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in IGTPW_3168, 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/62106/revisions/4/mbox/
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in IGTPW_3168:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@gem_exec_suspend@basic-s3:
>     - fi-cfl-guc:         [PASS][1] -> [DMESG-WARN][2]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/fi-cfl-guc/igt@gem_exec_suspend@basic-s3.html
>    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/fi-cfl-guc/igt@gem_exec_suspend@basic-s3.html
> 
>   * igt@runner@aborted:
>     - fi-cfl-guc:         NOTRUN -> [FAIL][3]
>    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/fi-cfl-guc/igt@runner@aborted.html


CC Martin

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for runner: add --list-all and --blacklist (rev4)
  2019-06-14 13:24 [igt-dev] [PATCH] runner: add --list-all and --blacklist Oleg Vasilev
                   ` (7 preceding siblings ...)
  2019-06-18  9:36 ` [igt-dev] ✗ Fi.CI.BAT: failure for runner: add --list-all and --blacklist (rev4) Patchwork
@ 2019-06-18 10:39 ` Patchwork
  2019-06-18 20:05 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2019-06-18 10:39 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

== Series Details ==

Series: runner: add --list-all and --blacklist (rev4)
URL   : https://patchwork.freedesktop.org/series/62106/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6290 -> IGTPW_3168
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/62106/revisions/4/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s3:
    - fi-cfl-guc:         [PASS][1] -> [DMESG-WARN][2] ([fdo#110943])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/fi-cfl-guc/igt@gem_exec_suspend@basic-s3.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/fi-cfl-guc/igt@gem_exec_suspend@basic-s3.html

  * igt@i915_pm_rpm@module-reload:
    - fi-hsw-4770:        [PASS][3] -> [INCOMPLETE][4] ([fdo#107807])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/fi-hsw-4770/igt@i915_pm_rpm@module-reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/fi-hsw-4770/igt@i915_pm_rpm@module-reload.html

  
#### Possible fixes ####

  * igt@gem_render_tiled_blits@basic:
    - fi-icl-u3:          [DMESG-WARN][5] ([fdo#107724]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/fi-icl-u3/igt@gem_render_tiled_blits@basic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/fi-icl-u3/igt@gem_render_tiled_blits@basic.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [DMESG-WARN][7] ([fdo#102614]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

  
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807
  [fdo#110943]: https://bugs.freedesktop.org/show_bug.cgi?id=110943


Participating hosts (51 -> 37)
------------------------------

  Additional (1): fi-icl-u2 
  Missing    (15): fi-kbl-soraka fi-cml-u2 fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-whl-u fi-kbl-x1275 fi-skl-iommu fi-kbl-8809g fi-byt-clapper fi-bdw-samus fi-cml-u 


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

  * IGT: IGT_5059 -> IGTPW_3168

  CI_DRM_6290: a0fa10b5d68fd65375029dd8b61d6c8c6aa1413f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3168: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/
  IGT_5059: 1f67ee0d09d6513f487f2be74aae9700e755258a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for runner: add --list-all and --blacklist (rev4)
  2019-06-14 13:24 [igt-dev] [PATCH] runner: add --list-all and --blacklist Oleg Vasilev
                   ` (8 preceding siblings ...)
  2019-06-18 10:39 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2019-06-18 20:05 ` Patchwork
  9 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2019-06-18 20:05 UTC (permalink / raw)
  To: Oleg Vasilev; +Cc: igt-dev

== Series Details ==

Series: runner: add --list-all and --blacklist (rev4)
URL   : https://patchwork.freedesktop.org/series/62106/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6290_full -> IGTPW_3168_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/62106/revisions/4/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@in-flight-immediate:
    - shard-apl:          [PASS][1] -> [DMESG-WARN][2] ([fdo#110913 ]) +3 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-apl7/igt@gem_eio@in-flight-immediate.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-apl5/igt@gem_eio@in-flight-immediate.html

  * igt@gem_eio@in-flight-suspend:
    - shard-kbl:          [PASS][3] -> [DMESG-WARN][4] ([fdo#108566]) +2 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-kbl6/igt@gem_eio@in-flight-suspend.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-kbl6/igt@gem_eio@in-flight-suspend.html

  * igt@gem_eio@wait-1us:
    - shard-kbl:          [PASS][5] -> [DMESG-WARN][6] ([fdo#110913 ]) +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-kbl7/igt@gem_eio@wait-1us.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-kbl3/igt@gem_eio@wait-1us.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing:
    - shard-snb:          [PASS][7] -> [DMESG-WARN][8] ([fdo#110789] / [fdo#110913 ])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-snb2/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-snb1/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
    - shard-snb:          [PASS][9] -> [DMESG-WARN][10] ([fdo#110913 ]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-snb7/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html

  * igt@kms_cursor_crc@pipe-a-cursor-256x85-sliding:
    - shard-apl:          [PASS][11] -> [FAIL][12] ([fdo#103232])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-apl2/igt@kms_cursor_crc@pipe-a-cursor-256x85-sliding.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-apl6/igt@kms_cursor_crc@pipe-a-cursor-256x85-sliding.html

  * igt@kms_cursor_crc@pipe-c-cursor-256x256-onscreen:
    - shard-kbl:          [PASS][13] -> [FAIL][14] ([fdo#103232])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-kbl6/igt@kms_cursor_crc@pipe-c-cursor-256x256-onscreen.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-kbl7/igt@kms_cursor_crc@pipe-c-cursor-256x256-onscreen.html

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
    - shard-hsw:          [PASS][15] -> [FAIL][16] ([fdo#103355])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-hsw4/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-hsw6/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [PASS][17] -> [SKIP][18] ([fdo#109349])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-iclb6/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_flip@2x-plain-flip-interruptible:
    - shard-hsw:          [PASS][19] -> [SKIP][20] ([fdo#109271]) +25 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-hsw5/igt@kms_flip@2x-plain-flip-interruptible.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-hsw1/igt@kms_flip@2x-plain-flip-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt:
    - shard-iclb:         [PASS][21] -> [FAIL][22] ([fdo#103167]) +5 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-iclb4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt:
    - shard-glk:          [PASS][23] -> [FAIL][24] ([fdo#103167])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-glk2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-glk2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-iclb:         [PASS][25] -> [FAIL][26] ([fdo#103166])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-iclb7/igt@kms_plane_lowres@pipe-a-tiling-x.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-iclb4/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [PASS][27] -> [SKIP][28] ([fdo#109441])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-iclb3/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-apl:          [PASS][29] -> [DMESG-WARN][30] ([fdo#108566]) +2 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-apl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-apl5/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@hang:
    - shard-kbl:          [DMESG-WARN][31] ([fdo#110913 ]) -> [PASS][32] +3 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-kbl6/igt@gem_mmap_gtt@hang.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-kbl4/igt@gem_mmap_gtt@hang.html

  * igt@gem_persistent_relocs@forked:
    - shard-apl:          [INCOMPLETE][33] ([fdo#103927]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-apl5/igt@gem_persistent_relocs@forked.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-apl8/igt@gem_persistent_relocs@forked.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
    - shard-snb:          [DMESG-WARN][35] ([fdo#110789] / [fdo#110913 ]) -> [PASS][36] +1 similar issue
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-snb4/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-snb5/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
    - shard-apl:          [DMESG-WARN][37] ([fdo#110913 ]) -> [PASS][38] +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-apl2/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-apl6/igt@gem_persistent_relocs@forked-interruptible-thrashing.html

  * igt@gem_softpin@noreloc-s3:
    - shard-kbl:          [DMESG-WARN][39] ([fdo#108566]) -> [PASS][40] +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-kbl2/igt@gem_softpin@noreloc-s3.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-kbl2/igt@gem_softpin@noreloc-s3.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy:
    - shard-snb:          [DMESG-WARN][41] ([fdo#110913 ]) -> [PASS][42] +2 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-snb5/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-snb5/igt@gem_userptr_blits@map-fixed-invalidate-busy.html

  * igt@i915_pm_rpm@debugfs-read:
    - shard-iclb:         [INCOMPLETE][43] ([fdo#107713] / [fdo#108840]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-iclb2/igt@i915_pm_rpm@debugfs-read.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-iclb1/igt@i915_pm_rpm@debugfs-read.html

  * igt@i915_selftest@live_evict:
    - shard-kbl:          [INCOMPLETE][45] ([fdo#103665] / [fdo#110938]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-kbl3/igt@i915_selftest@live_evict.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-kbl1/igt@i915_selftest@live_evict.html

  * igt@i915_selftest@live_hangcheck:
    - shard-iclb:         [INCOMPLETE][47] ([fdo#107713] / [fdo#108569]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-iclb4/igt@i915_selftest@live_hangcheck.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-iclb8/igt@i915_selftest@live_hangcheck.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-apl:          [DMESG-WARN][49] ([fdo#108566]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-apl3/igt@i915_suspend@fence-restore-untiled.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-apl7/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-kbl:          [INCOMPLETE][51] ([fdo#103665]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-kbl2/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-kbl7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-glk:          [FAIL][53] ([fdo#105363]) -> [PASS][54] +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-glk4/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-glk6/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@2x-plain-flip:
    - shard-hsw:          [SKIP][55] ([fdo#109271]) -> [PASS][56] +24 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-hsw1/igt@kms_flip@2x-plain-flip.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-hsw6/igt@kms_flip@2x-plain-flip.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render:
    - shard-iclb:         [FAIL][57] ([fdo#103167]) -> [PASS][58] +10 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [SKIP][59] ([fdo#109642]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-iclb3/igt@kms_psr2_su@page_flip.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-iclb2/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_primary_page_flip:
    - shard-iclb:         [SKIP][61] ([fdo#109441]) -> [PASS][62] +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-iclb8/igt@kms_psr@psr2_primary_page_flip.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html

  * igt@kms_sysfs_edid_timing:
    - shard-iclb:         [FAIL][63] ([fdo#100047]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6290/shard-iclb3/igt@kms_sysfs_edid_timing.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/shard-iclb5/igt@kms_sysfs_edid_timing.html

  
  [fdo#100047]: https://bugs.freedesktop.org/show_bug.cgi?id=100047
  [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#103355]: https://bugs.freedesktop.org/show_bug.cgi?id=103355
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
  [fdo#110913 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110913 
  [fdo#110938]: https://bugs.freedesktop.org/show_bug.cgi?id=110938


Participating hosts (10 -> 6)
------------------------------

  Missing    (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 


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

  * IGT: IGT_5059 -> IGTPW_3168
  * Piglit: piglit_4509 -> None

  CI_DRM_6290: a0fa10b5d68fd65375029dd8b61d6c8c6aa1413f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3168: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3168/
  IGT_5059: 1f67ee0d09d6513f487f2be74aae9700e755258a @ 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_3168/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2019-06-18 20:05 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-14 13:24 [igt-dev] [PATCH] runner: add --list-all and --blacklist Oleg Vasilev
2019-06-14 13:43 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork
2019-06-14 14:28 ` [igt-dev] [PATCH] " Petri Latvala
2019-06-17 11:49 ` [igt-dev] [PATCH v2] " Oleg Vasilev
2019-06-17 12:41   ` Petri Latvala
2019-06-17 13:41   ` [igt-dev] [PATCH v3] " Oleg Vasilev
2019-06-18  8:11     ` Petri Latvala
2019-06-18  9:07       ` [igt-dev] [PATCH v4] " Oleg Vasilev
2019-06-18  9:26         ` Petri Latvala
2019-06-17 14:14 ` [igt-dev] ✓ Fi.CI.BAT: success for runner: add --list-all and --blacklist (rev2) Patchwork
2019-06-17 15:31 ` [igt-dev] ✓ Fi.CI.BAT: success for runner: add --list-all and --blacklist (rev3) Patchwork
2019-06-17 23:23 ` [igt-dev] ✓ Fi.CI.IGT: success for runner: add --list-all and --blacklist (rev2) Patchwork
2019-06-18  2:11 ` [igt-dev] ✓ Fi.CI.IGT: success for runner: add --list-all and --blacklist (rev3) Patchwork
2019-06-18  9:36 ` [igt-dev] ✗ Fi.CI.BAT: failure for runner: add --list-all and --blacklist (rev4) Patchwork
2019-06-18  9:41   ` Petri Latvala
2019-06-18 10:39 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2019-06-18 20:05 ` [igt-dev] ✓ Fi.CI.IGT: " 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.