All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions
@ 2019-06-17 10:54 Arkadiusz Hiler
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 2/5] tests/kms_hdmi_inject: Provide igt_descriptions Arkadiusz Hiler
                   ` (7 more replies)
  0 siblings, 8 replies; 26+ messages in thread
From: Arkadiusz Hiler @ 2019-06-17 10:54 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala

This patch adds igt_description() which attaches a description to the
following igt_subtest or igt_subtest_group block.

Descriptions are accessible via './test --describe[=pattern]'

Subtest description is its own igt_describe as well as igt_describes
of all the parenting igt_subtest_groups, starting from the outermost
scope.

Examples of code and produced outputs are included in
lib/test/igt_describe.c and as a documentation comment on igt_describe()
macro.

Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 lib/igt_core.c           | 179 ++++++++++++++++++++++++--
 lib/igt_core.h           | 137 ++++++++++++++++++--
 lib/tests/igt_describe.c | 266 +++++++++++++++++++++++++++++++++++++++
 lib/tests/meson.build    |   1 +
 4 files changed, 562 insertions(+), 21 deletions(-)
 create mode 100644 lib/tests/igt_describe.c

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 6b9f0425..8b1c7b2f 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -70,6 +70,7 @@
 #include "igt_sysfs.h"
 #include "igt_sysrq.h"
 #include "igt_rc.h"
+#include "igt_list.h"
 
 #define UNW_LOCAL_ONLY
 #include <libunwind.h>
@@ -259,6 +260,7 @@ const char *igt_interactive_debug;
 
 /* subtests helpers */
 static bool list_subtests = false;
+static bool describe_subtests = false;
 static char *run_single_subtest = NULL;
 static bool run_single_subtest_found = false;
 static const char *in_subtest = NULL;
@@ -271,6 +273,16 @@ static enum {
 	CONT = 0, SKIP, FAIL
 } skip_subtests_henceforth = CONT;
 
+static char __current_description[4096];
+
+struct description_node {
+	char desc[sizeof(__current_description)];
+	struct igt_list link;
+};
+
+static struct igt_list subgroup_descriptions;
+
+
 bool __igt_plain_output = false;
 
 /* fork support state */
@@ -285,6 +297,7 @@ enum {
 	 * conflict with core ones
 	 */
 	OPT_LIST_SUBTESTS = 500,
+	OPT_DESCRIBE_SUBTESTS,
 	OPT_RUN_SUBTEST,
 	OPT_DESCRIPTION,
 	OPT_DEBUG,
@@ -528,10 +541,59 @@ static void common_exit_handler(int sig)
 	assert(sig != 0 || igt_exit_called);
 }
 
+static void print_line_wrapping(const char *indent, const char *text)
+{
+	char *copy, *curr, *next_space;
+	int current_line_length = 0;
+	bool done = false;
+
+	const int total_line_length = 80;
+	const int line_length = total_line_length - strlen(indent);
+
+	copy = malloc(strlen(text) + 1);
+	memcpy(copy, text, strlen(text) + 1);
+
+	curr = copy;
+
+	printf("%s", indent);
+
+	while (!done) {
+		next_space = strchr(curr, ' ');
+
+		if (!next_space) { /* no more spaces, print everything that is left */
+			done = true;
+			next_space = strchr(curr, '\0');
+		}
+
+		*next_space = '\0';
+
+		if ((next_space - curr) + current_line_length > line_length && curr != copy) {
+			printf("\n%s", indent);
+			current_line_length = 0;
+		}
+
+		if (current_line_length == 0)
+			printf("%s", curr); /* first word in a line, don't space out */
+		else
+			printf(" %s", curr);
+
+		current_line_length += next_space - curr;
+		curr = next_space + 1;
+	}
+
+	printf("\n");
+
+	free(copy);
+}
+
+
 static void print_test_description(void)
 {
-	if (&__igt_test_description)
-		printf("%s\n", __igt_test_description);
+	if (&__igt_test_description) {
+		print_line_wrapping("", __igt_test_description);
+		if (describe_subtests)
+			printf("\n");
+	}
 }
 
 static void print_version(void)
@@ -558,6 +620,7 @@ static void print_usage(const char *help_str, bool output_on_stderr)
 		   "  --debug[=log-domain]\n"
 		   "  --interactive-debug[=domain]\n"
 		   "  --help-description\n"
+		   "  --describe\n"
 		   "  --help|-h\n");
 	if (help_str)
 		fprintf(f, "%s\n", help_str);
@@ -671,6 +734,7 @@ static int common_init(int *argc, char **argv,
 	int c, option_index = 0, i, x;
 	static struct option long_options[] = {
 		{"list-subtests",     no_argument,       NULL, OPT_LIST_SUBTESTS},
+		{"describe",          optional_argument, NULL, OPT_DESCRIBE_SUBTESTS},
 		{"run-subtest",       required_argument, NULL, OPT_RUN_SUBTEST},
 		{"help-description",  no_argument,       NULL, OPT_DESCRIPTION},
 		{"debug",             optional_argument, NULL, OPT_DEBUG},
@@ -687,6 +751,7 @@ static int common_init(int *argc, char **argv,
 	int ret = 0;
 
 	common_init_env();
+	igt_list_init(&subgroup_descriptions);
 
 	command_str = argv[0];
 	if (strrchr(command_str, '/'))
@@ -777,6 +842,13 @@ static int common_init(int *argc, char **argv,
 			if (!run_single_subtest)
 				list_subtests = true;
 			break;
+		case OPT_DESCRIBE_SUBTESTS:
+			if (optarg)
+				run_single_subtest = strdup(optarg);
+			list_subtests = true;
+			describe_subtests = true;
+			print_test_description();
+			break;
 		case OPT_RUN_SUBTEST:
 			assert(optarg);
 			if (!list_subtests)
@@ -934,12 +1006,41 @@ void igt_simple_init_parse_opts(int *argc, char **argv,
 		    extra_opt_handler, handler_data);
 }
 
+static void _clear_current_description(void) {
+	__current_description[0] = '\0';
+}
+
+#define __INDENT "  "
+static void __igt_print_description(const char *subtest_name, const char *file, const int line)
+{
+	struct description_node *desc;
+	bool has_doc = false;
+
+	printf("SUB %s %s:%d:\n", subtest_name, file, line);
+
+	igt_list_for_each(desc, &subgroup_descriptions, link) {
+		print_line_wrapping(__INDENT, desc->desc);
+		printf("\n");
+		has_doc = true;
+	}
+
+	if (__current_description[0] != '\0') {
+		print_line_wrapping(__INDENT, __current_description);
+		printf("\n");
+		has_doc = true;
+	}
+
+	if (!has_doc)
+		printf("%sNO DOCUMENTATION!\n\n", __INDENT);
+}
+#undef __INDENT
+
 /*
  * Note: Testcases which use these helpers MUST NOT output anything to stdout
  * outside of places protected by igt_run_subtest checks - the piglit
  * runner adds every line to the subtest list.
  */
-bool __igt_run_subtest(const char *subtest_name)
+bool __igt_run_subtest(const char *subtest_name, const char *file, const int line)
 {
 	int i;
 
@@ -954,18 +1055,25 @@ bool __igt_run_subtest(const char *subtest_name)
 			igt_exit();
 		}
 
-	if (list_subtests) {
-		printf("%s\n", subtest_name);
-		return false;
-	}
-
 	if (run_single_subtest) {
-		if (uwildmat(subtest_name, run_single_subtest) == 0)
+		if (uwildmat(subtest_name, run_single_subtest) == 0) {
+			_clear_current_description();
 			return false;
-		else
+		} else {
 			run_single_subtest_found = true;
+		}
 	}
 
+	if (describe_subtests) {
+		__igt_print_description(subtest_name, file, line);
+		_clear_current_description();
+		return false;
+	} else if (list_subtests) {
+		printf("%s\n", subtest_name);
+		return false;
+	}
+
+
 	if (skip_subtests_henceforth) {
 		printf("%sSubtest %s: %s%s\n",
 		       (!__igt_plain_output) ? "\x1b[1m" : "", subtest_name,
@@ -1014,15 +1122,32 @@ bool igt_only_list_subtests(void)
 	return list_subtests;
 }
 
-void __igt_subtest_group_save(int *save)
+
+
+void __igt_subtest_group_save(int *save, int *desc)
 {
 	assert(test_with_subtests);
 
+	if (__current_description[0] != '\0') {
+		struct description_node *new = calloc(1, sizeof(*new));
+		memcpy(new->desc, __current_description, sizeof(__current_description));
+		igt_list_add_tail(&new->link, &subgroup_descriptions);
+		_clear_current_description();
+		*desc = true;
+	}
+
 	*save = skip_subtests_henceforth;
 }
 
-void __igt_subtest_group_restore(int save)
+void __igt_subtest_group_restore(int save, int desc)
 {
+	if (desc) {
+		struct description_node *last =
+			igt_list_last_entry(&subgroup_descriptions, last, link);
+		igt_list_del(&last->link);
+		free(last);
+	}
+
 	skip_subtests_henceforth = save;
 }
 
@@ -1229,6 +1354,34 @@ bool igt_can_fail(void)
 	return !test_with_subtests || in_fixture || in_subtest;
 }
 
+/**
+ * igt_describe_f:
+ * @fmt: format string containing description
+ * @...: argument used by the format string
+ *
+ * Attach a description to the following #igt_subtest or #igt_subtest_group
+ * block.
+ *
+ * Check #igt_describe for more details.
+ *
+ */
+void igt_describe_f(const char *fmt, ...)
+{
+	int ret;
+	va_list args;
+
+	if (!describe_subtests)
+		return;
+
+	va_start(args, fmt);
+
+	ret = vsnprintf(__current_description, sizeof(__current_description), fmt, args);
+
+	va_end(args);
+
+	assert(ret < sizeof(__current_description));
+}
+
 static bool running_under_gdb(void)
 {
 	char pathname[30], buf[1024];
@@ -1540,7 +1693,7 @@ void igt_exit(void)
 		g_key_file_free(igt_key_file);
 
 	if (run_single_subtest && !run_single_subtest_found) {
-		igt_warn("Unknown subtest: %s\n", run_single_subtest);
+		igt_critical("Unknown subtest: %s\n", run_single_subtest);
 		exit(IGT_EXIT_INVALID);
 	}
 
diff --git a/lib/igt_core.h b/lib/igt_core.h
index 88a95ec2..1b37f142 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -174,7 +174,7 @@ int igt_subtest_init_parse_opts(int *argc, char **argv,
 #define igt_subtest_init(argc, argv) \
 	igt_subtest_init_parse_opts(&argc, argv, NULL, NULL, NULL, NULL, NULL);
 
-bool __igt_run_subtest(const char *subtest_name);
+bool __igt_run_subtest(const char *subtest_name, const char *file, const int line);
 #define __igt_tokencat2(x, y) x ## y
 
 /**
@@ -198,14 +198,14 @@ bool __igt_run_subtest(const char *subtest_name);
  *
  * This is a simpler version of igt_subtest_f()
  */
-#define igt_subtest(name) for (; __igt_run_subtest((name)) && \
+#define igt_subtest(name) for (; __igt_run_subtest((name), __FILE__, __LINE__) && \
 				   (sigsetjmp(igt_subtest_jmpbuf, 1) == 0); \
 				   igt_success())
 #define __igt_subtest_f(tmp, format...) \
 	for (char tmp [256]; \
 	     snprintf( tmp , sizeof( tmp ), \
 		      format), \
-	     __igt_run_subtest( tmp ) && \
+	     __igt_run_subtest(tmp, __FILE__, __LINE__) && \
 	     (sigsetjmp(igt_subtest_jmpbuf, 1) == 0); \
 	     igt_success())
 
@@ -227,8 +227,8 @@ bool __igt_run_subtest(const char *subtest_name);
 const char *igt_subtest_name(void);
 bool igt_only_list_subtests(void);
 
-void __igt_subtest_group_save(int *);
-void __igt_subtest_group_restore(int);
+void __igt_subtest_group_save(int *, int *);
+void __igt_subtest_group_restore(int, int);
 /**
  * igt_subtest_group:
  *
@@ -245,11 +245,14 @@ void __igt_subtest_group_restore(int);
  * group will fail or skip. Subtest groups can be arbitrarily nested.
  */
 #define igt_subtest_group for (int igt_tokencat(__tmpint,__LINE__) = 0, \
-			       igt_tokencat(__save,__LINE__) = 0; \
+			       igt_tokencat(__save,__LINE__) = 0, \
+			       igt_tokencat(__desc,__LINE__) = 0; \
 			       igt_tokencat(__tmpint,__LINE__) < 1 && \
-			       (__igt_subtest_group_save(& igt_tokencat(__save,__LINE__) ), true); \
+			       (__igt_subtest_group_save(& igt_tokencat(__save,__LINE__), \
+							 & igt_tokencat(__desc,__LINE__) ), true); \
 			       igt_tokencat(__tmpint,__LINE__) ++, \
-			       __igt_subtest_group_restore(igt_tokencat(__save,__LINE__) ))
+			       __igt_subtest_group_restore(igt_tokencat(__save,__LINE__), \
+							   igt_tokencat(__desc,__LINE__)))
 
 /**
  * igt_main_args:
@@ -385,6 +388,124 @@ static inline void igt_ignore_warn(bool value)
 {
 }
 
+__attribute__((format(printf, 1, 2)))
+void igt_describe_f(const char *fmt, ...);
+
+/**
+ * igt_describe:
+ * @dsc: string containing description
+ *
+ * Attach a description to the following #igt_subtest or #igt_subtest_group
+ * block.
+ *
+ * The description should complement the test/subtest name and provide more
+ * context on what is being tested. It should explain the idea of the test and
+ * do not mention implementation details, so that it never goes out of date.
+ *
+ * DO:
+ *  * focus on the userspace's perspective
+ *  * try to capture the reason for the test's existence
+ *  * be brief
+ *
+ * DON'T:
+ *  * try to translate the code into English
+ *  * explain all the checks the test does
+ *  * delve on the implementation
+ *
+ * Good examples:
+ *  * "make sure that legacy cursor updates do not stall atomic commits"
+ *  * "check that atomic updates of many planes are indeed atomic and take
+ *     effect immediately after the commit"
+ *  * "make sure that the meta-data exposed by the kernel to the userspace
+ *     is correct and matches the used EDID"
+ *
+ * Bad examples:
+ *  * "spawn 10 threads, each pinning cpu core with a busy loop..."
+ *  * "randomly generate holes in a primary plane then try to cover each hole
+ *    with a plane and make sure that CRC matches, do 25 gazillion rounds of
+ *    that..."
+ *
+ *
+ * Resulting #igt_subtest documentation is a concatenation of its own
+ * description and all the parenting #igt_subtest_group descriptions, starting
+ * from the outermost one. Example:
+ *
+ * |[<!-- language="C" -->
+ * #include "igt.h"
+ *
+ * IGT_TEST_DESCRIPTION("Global description of the whole binary");
+ * igt_main
+ * {
+ * 	igt_describe("Desc of the subgroup with A and B");
+ * 	igt_subtest_group {
+ * 		igt_describe("Desc of the subtest A");
+ * 		igt_subtest("subtest-a") {
+ * 			...
+ * 		}
+ *
+ * 		igt_describe("Desc of the subtest B");
+ * 		igt_subtest("subtest-b") {
+ * 			...
+ * 		}
+ * 	}
+ *
+ * 	igt_describe("Desc of the subtest C");
+ * 	igt_subtest("subtest-c") {
+ * 		...
+ * 	}
+ * }
+ * ]|
+ *
+ * It's will accessible via --describe command line switch:
+ *
+ * |[
+ * $ test --describe
+ * Global description of the whole binary
+ *
+ * SUB subtest-a test.c:5:
+ *   Desc of the subgroup with A and B
+ *
+ *   Desc of the subtest A
+ *
+ * SUB subtest-b test.c:10:
+ *   Desc of the subgroup with A and B
+ *
+ *   Desc of the subtest B
+ *
+ * SUB subtest-c test.c:15:
+ *   Desc of the subtest C
+ * ]|
+ *
+ * Every single #igt_subtest does not have to be preceded with a #igt_describe
+ * as long as it has good-enough explanation provided on the #igt_subtest_group
+ * level.
+ *
+ * Example:
+ *
+ * |[<!-- language="C" -->
+ * #include "igt.h"
+ *
+ * igt_main
+ * {
+ * 	igt_describe("check xyz with different tilings");
+ * 	igt_subtest_group {
+ * 		// no need for extra description, group is enough and tiling is
+ * 		// obvious from the test name
+ * 		igt_subtest("foo-tiling-x") {
+ * 			...
+ * 		}
+ *
+ * 		igt_subtest("foo-tiling-y") {
+ * 			...
+ * 		}
+ * 	}
+ * }
+ * ]|
+ *
+ */
+#define igt_describe(dsc) \
+	igt_describe_f("%s", dsc)
+
 /**
  * igt_assert:
  * @expr: condition to test
diff --git a/lib/tests/igt_describe.c b/lib/tests/igt_describe.c
new file mode 100644
index 00000000..a9f857bb
--- /dev/null
+++ b/lib/tests/igt_describe.c
@@ -0,0 +1,266 @@
+/*
+ * Copyright © 2019 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <sys/wait.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "drmtest.h"
+#include "igt_tests_common.h"
+
+IGT_TEST_DESCRIPTION("the top level description");
+static void fake_main(int argc, char **argv) {
+	igt_subtest_init(argc, argv);
+
+	igt_describe("Basic A");
+	igt_subtest("A")
+		;
+
+	igt_fixture
+		printf("should not be executed!\n");
+
+	igt_describe("Group with B, C & D");
+	igt_subtest_group {
+		igt_describe("Basic B");
+		igt_subtest("B")
+			;
+
+		if (!igt_only_list_subtests())
+			printf("should not be executed!\n");
+
+		igt_describe("Group with C & D");
+		igt_subtest_group {
+			igt_describe("Basic C");
+			igt_subtest("C")
+				printf("should not be executed!\n");
+
+			// NO DOC
+			igt_subtest("D")
+				;
+		}
+	}
+
+	// NO DOC
+	igt_subtest_group {
+		// NO DOC
+		igt_subtest("E")
+			;
+	}
+
+	// NO DOC
+	igt_subtest("F")
+		;
+
+	igt_describe("this description should be so long that it wraps itself nicely in the terminal "
+		     "this description should be so long that it wraps itself nicely in the terminal "
+		     "this description should be so long that it wraps itself nicely in the terminal "
+		     "this description should be so long that it wraps itself nicely in the terminal "
+		     "this description should be so long that it wraps itself nicely in the terminal "
+		     "this description should be so long that it wraps itself nicely in the terminal");
+	igt_subtest("G")
+		;
+
+	igt_describe("verylongwordthatshoudlbeprintedeventhoughitspastthewrppinglimit"
+		     "verylongwordthatshoudlbeprintedeventhoughitspastthewrappinglimit "
+		     "verylongwordthatshoudlbeprintedeventhoughitspastthewrappinglimit"
+		     "verylongwordthatshoudlbeprintedeventhoughitspastthewrappinglimit");
+	igt_subtest("F")
+		;
+
+	igt_exit();
+}
+
+static const char DESCRIBE_ALL_OUTPUT[] = \
+	"the top level description\n"
+	"\n"
+	"SUB A ../lib/tests/igt_describe.c:36:\n"
+	"  Basic A\n"
+	"\n"
+	"SUB B ../lib/tests/igt_describe.c:45:\n"
+	"  Group with B, C & D\n"
+	"\n"
+	"  Basic B\n"
+	"\n"
+	"SUB C ../lib/tests/igt_describe.c:54:\n"
+	"  Group with B, C & D\n"
+	"\n"
+	"  Group with C & D\n"
+	"\n"
+	"  Basic C\n"
+	"\n"
+	"SUB D ../lib/tests/igt_describe.c:58:\n"
+	"  Group with B, C & D\n"
+	"\n"
+	"  Group with C & D\n"
+	"\n"
+	"SUB E ../lib/tests/igt_describe.c:66:\n"
+	"  NO DOCUMENTATION!\n"
+	"\n"
+	"SUB F ../lib/tests/igt_describe.c:71:\n"
+	"  NO DOCUMENTATION!\n"
+	"\n"
+	"SUB G ../lib/tests/igt_describe.c:80:\n"
+	"  this description should be so long that it wraps itself nicely in the terminal this\n"
+	"  description should be so long that it wraps itself nicely in the terminal this description\n"
+	"  should be so long that it wraps itself nicely in the terminal this description should be so\n"
+	"  long that it wraps itself nicely in the terminal this description should be so long that it\n"
+	"  wraps itself nicely in the terminal this description should be so long that it wraps itself\n"
+	"  nicely in the terminal\n"
+	"\n"
+	"SUB F ../lib/tests/igt_describe.c:87:\n"
+	"  verylongwordthatshoudlbeprintedeventhoughitspastthewrppinglimitverylongwordthatshoudlbeprintedeventhoughitspastthewrappinglimit\n"
+	"  verylongwordthatshoudlbeprintedeventhoughitspastthewrappinglimitverylongwordthatshoudlbeprintedeventhoughitspastthewrappinglimit\n\n";
+
+static const char JUST_C_OUTPUT[] = \
+	"the top level description\n"
+	"\n"
+	"SUB C ../lib/tests/igt_describe.c:54:\n"
+	"  Group with B, C & D\n"
+	"\n"
+	"  Group with C & D\n"
+	"\n"
+	"  Basic C\n"
+	"\n";
+
+static void assert_pipe_empty(int fd)
+{
+	char buf[5];
+	internal_assert(0 == read(fd, buf, sizeof(buf)));
+}
+
+static void read_whole_pipe(int fd, char *buf, size_t buflen)
+{
+	ssize_t readlen;
+	off_t offset;
+
+	offset = 0;
+	while ((readlen = read(fd, buf+offset, buflen-offset))) {
+		internal_assert(readlen != -1);
+		offset += readlen;
+	}
+}
+
+static pid_t do_fork(int argc, char **argv, int *out, int *err)
+{
+	int outfd[2], errfd[2];
+	pid_t pid;
+
+	internal_assert(pipe(outfd) != -1);
+	internal_assert(pipe(errfd) != -1);
+
+	pid = fork();
+	internal_assert(pid != -1);
+
+	if (pid == 0) {
+		while ((dup2(outfd[1], STDOUT_FILENO) == -1) && (errno == EINTR)) {}
+		while ((dup2(errfd[1], STDERR_FILENO) == -1) && (errno == EINTR)) {}
+
+		fake_main(argc, argv);
+
+		exit(-1);
+	} else {
+		/* close the writing ends */
+		close(outfd[1]);
+		close(errfd[1]);
+
+		*out = outfd[0];
+		*err = errfd[0];
+
+		return pid;
+	}
+}
+
+static int _wait(pid_t pid, int *status) {
+	int ret;
+
+	do {
+		ret = waitpid(pid, status, 0);
+	} while (ret == -1 && errno == EINTR);
+
+	return ret;
+}
+
+int main(int argc, char **argv)
+{
+	char prog[] = "igt_describe";
+	int status;
+	int outfd, errfd;
+
+	/* describe all subtest */ {
+		static char out[4096];
+		char arg[] = "--describe";
+		char *fake_argv[] = {prog, arg};
+		int fake_argc = ARRAY_SIZE(fake_argv);
+
+		pid_t pid = do_fork(fake_argc, fake_argv, &outfd, &errfd);
+
+		read_whole_pipe(outfd, out, sizeof(out));
+		assert_pipe_empty(errfd);
+
+		internal_assert(_wait(pid, &status) != -1);
+		internal_assert(WEXITSTATUS(status) == IGT_EXIT_SUCCESS);
+		internal_assert(0 == strcmp(DESCRIBE_ALL_OUTPUT, out));
+
+		close(outfd);
+		close(errfd);
+	}
+
+	/* describe C using a pattern */ {
+		static char out[4096];
+		char arg[] = "--describe=C";
+		char *fake_argv[] = {prog, arg};
+		int fake_argc = ARRAY_SIZE(fake_argv);
+
+		pid_t pid = do_fork(fake_argc, fake_argv, &outfd, &errfd);
+
+		read_whole_pipe(outfd, out, sizeof(out));
+		assert_pipe_empty(errfd);
+
+		internal_assert(_wait(pid, &status) != -1);
+		internal_assert(WEXITSTATUS(status) == IGT_EXIT_SUCCESS);
+		internal_assert(0 == strcmp(JUST_C_OUTPUT, out));
+
+		close(outfd);
+		close(errfd);
+	}
+
+	/* fail describing with a bad pattern */ {
+		static char err[4096];
+		char arg[] = "--describe=Z";
+		char *fake_argv[] = {prog, arg};
+		int fake_argc = ARRAY_SIZE(fake_argv);
+
+		pid_t pid = do_fork(fake_argc, fake_argv, &outfd, &errfd);
+
+		read_whole_pipe(errfd, err, sizeof(err));
+
+		internal_assert(_wait(pid, &status) != -1);
+		internal_assert(WEXITSTATUS(status) == IGT_EXIT_INVALID);
+		internal_assert(strstr(err, "Unknown subtest: Z"));
+
+		close(outfd);
+		close(errfd);
+	}
+
+	return 0;
+}
diff --git a/lib/tests/meson.build b/lib/tests/meson.build
index b930ee6e..4d907e34 100644
--- a/lib/tests/meson.build
+++ b/lib/tests/meson.build
@@ -3,6 +3,7 @@ lib_tests = [
 	'igt_can_fail',
 	'igt_can_fail_simple',
 	'igt_conflicting_args',
+	'igt_describe',
 	'igt_edid',
 	'igt_exit_handler',
 	'igt_fork',
-- 
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] 26+ messages in thread

* [igt-dev] [PATCH i-g-t 2/5] tests/kms_hdmi_inject: Provide igt_descriptions
  2019-06-17 10:54 [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions Arkadiusz Hiler
@ 2019-06-17 10:54 ` Arkadiusz Hiler
  2019-06-17 12:54   ` Ser, Simon
  2019-06-18 10:36   ` [igt-dev] [PATCH v2 " Arkadiusz Hiler
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 3/5] tests/kms_plane_multiple: Describe the test Arkadiusz Hiler
                   ` (6 subsequent siblings)
  7 siblings, 2 replies; 26+ messages in thread
From: Arkadiusz Hiler @ 2019-06-17 10:54 UTC (permalink / raw)
  To: igt-dev

This test is quite simple which makes it perfect for the first real
world example of igt_describe usage.

Cc: Simon Ser <simon.ser@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 tests/kms_hdmi_inject.c | 24 ++++++++----------------
 1 file changed, 8 insertions(+), 16 deletions(-)

diff --git a/tests/kms_hdmi_inject.c b/tests/kms_hdmi_inject.c
index 8c0d1333..f9c5640d 100644
--- a/tests/kms_hdmi_inject.c
+++ b/tests/kms_hdmi_inject.c
@@ -33,22 +33,10 @@
 #define HDISPLAY_4K	3840
 #define VDISPLAY_4K	2160
 
-IGT_TEST_DESCRIPTION("Tests 4K and audio HDMI injection.");
-
-/**
- * This collection of tests performs EDID and status injection tests. Injection
- * forces a given EDID and status on a connector. The kernel will parse the
- * forced EDID and we will check whether correct metadata is exposed to
- * userspace.
- *
- * Currently, this can be used to test:
- *
- * - 4K modes exposed via KMS
- * - Audio capabilities of the monitor exposed via ALSA. EDID-Like Data (ELD)
- *   entries in /proc/asound are verified.
- *
- * Injection is performed on a disconnected connector.
- */
+IGT_TEST_DESCRIPTION("Test that in-kernel EDID parsing is producing "
+		     "expected results by forcing a disconnected HDMI "
+		     "connector with a known EDID and checking that the "
+		     "metadata exposed to user space matches.");
 
 /** get_connector: get the first disconnected HDMI connector */
 static drmModeConnector *
@@ -210,9 +198,13 @@ igt_main
 		igt_require(connector);
 	}
 
+	igt_describe("Make sure that 4K modes exposed by DRM match the "
+                     "forced EDID and modesetting using it succeed.");
 	igt_subtest("inject-4k")
 		hdmi_inject_4k(drm_fd, connector);
 
+	igt_describe("Make sure that audio information exposed by ALSA "
+		     "match the forced EDID.");
 	igt_subtest("inject-audio")
 		hdmi_inject_audio(drm_fd, connector);
 
-- 
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] 26+ messages in thread

* [igt-dev] [PATCH i-g-t 3/5] tests/kms_plane_multiple: Describe the test
  2019-06-17 10:54 [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions Arkadiusz Hiler
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 2/5] tests/kms_hdmi_inject: Provide igt_descriptions Arkadiusz Hiler
@ 2019-06-17 10:54 ` Arkadiusz Hiler
  2019-06-18  9:36   ` Kahola, Mika
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 4/5] CONTRIBUTING: Rework a bit and update Arkadiusz Hiler
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 26+ messages in thread
From: Arkadiusz Hiler @ 2019-06-17 10:54 UTC (permalink / raw)
  To: igt-dev

In this test all the subtest are doing the same exact thing but with
different tiling / on a different pipe. Tiling/pipe is in the test name
so no need to elaborate on them.

We can have just one igt_describe() on top of the group to describe all
the subtests in one go, no copy-and-paste necessary.

The description is short and explains the spirit of the test (verifying
atomicity of plane updates) without delving into the implementation
details (holes, colors, etc.)

Other changes:
 * The function used for grabbing reference CRC is now under a more
   descriptive name.
 * Comment explaining test implementation in more detail is moved to the
   top of the function actually implementing those steps.
 * Minor formatting touch ups.

Cc: Mika Kahola <mika.kahola@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 tests/kms_plane_multiple.c | 39 ++++++++++++++++++++------------------
 1 file changed, 21 insertions(+), 18 deletions(-)

diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index 0d3ba4ff..81ed45dd 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -30,7 +30,7 @@
 #include <string.h>
 #include <time.h>
 
-IGT_TEST_DESCRIPTION("Test atomic mode setting with multiple planes ");
+IGT_TEST_DESCRIPTION("Test atomic mode setting with multiple planes.");
 
 #define SIZE_PLANE      256
 #define SIZE_CURSOR     128
@@ -96,7 +96,7 @@ static void test_fini(data_t *data, igt_output_t *output, int n_planes)
 }
 
 static void
-test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
+get_reference_crc(data_t *data, igt_output_t *output, enum pipe pipe,
 	      color_t *color, uint64_t tiling)
 {
 	drmModeModeInfo *mode;
@@ -125,17 +125,6 @@ test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
 	igt_pipe_crc_get_single(data->pipe_crc, &data->ref_crc);
 }
 
-/*
- * Multiple plane position test.
- *   - We start by grabbing a reference CRC of a full blue fb being scanned
- *     out on the primary plane
- *   - Then we scannout number of planes:
- *      * the primary plane uses a blue fb with a black rectangle hole
- *      * planes, on top of the primary plane, with a blue fb that is set-up
- *        to cover the black rectangles of the primary plane fb
- *     The resulting CRC should be identical to the reference CRC
- */
-
 static void
 create_fb_for_mode_position(data_t *data, igt_output_t *output, drmModeModeInfo *mode,
 			    color_t *color, int *rect_x, int *rect_y,
@@ -281,6 +270,17 @@ prepare_planes(data_t *data, enum pipe pipe_id, color_t *color,
 	free((void*)suffle);
 }
 
+/*
+ * Multiple plane position test.
+ *   - We start by grabbing a reference CRC of a full blue fb being scanned
+ *     out on the primary plane
+ *   - Then we scannout number of planes:
+ *      * the primary plane uses a blue fb with a black rectangle holes
+ *      * planes, on top of the primary plane, with a blue fb that is set-up
+ *        to cover the black rectangles of the primary plane
+ *     The resulting CRC should be identical to the reference CRC
+ */
+
 static void
 test_plane_position_with_output(data_t *data, enum pipe pipe,
 				igt_output_t *output, int n_planes,
@@ -306,11 +306,9 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 
 	test_init(data, pipe, n_planes);
 
-	test_grab_crc(data, output, pipe, &blue, tiling);
+	get_reference_crc(data, output, pipe, &blue, tiling);
 
-	/*
-	 * Find out how many planes are allowed simultaneously
-	 */
+	/* Find out how many planes are allowed simultaneously */
 	do {
 		c++;
 		prepare_planes(data, pipe, &blue, tiling, c, output);
@@ -323,7 +321,7 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 			igt_remove_fb(data->drm_fd, &data->fb[x]);
 	} while (!err && c < n_planes);
 
-	if(err)
+	if (err)
 		c--;
 
 	igt_info("Testing connector %s using pipe %s with %d planes %s with seed %d\n",
@@ -332,6 +330,7 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 
 	i = 0;
 	while (i < iterations || loop_forever) {
+		/* randomize planes and set up the holes */
 		prepare_planes(data, pipe, &blue, tiling, c, output);
 
 		igt_display_commit2(&data->display, COMMIT_ATOMIC);
@@ -441,6 +440,10 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
 	}
 
 	for_each_pipe_static(pipe) {
+		igt_describe("Check that the kernel handles atomic updates of "
+			     "multiple planes correctly by changing their "
+			     "geometry and making sure the changes are "
+			     "reflected immediately after each commit.");
 		igt_subtest_group
 			run_tests_for_pipe(&data, pipe);
 	}
-- 
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] 26+ messages in thread

* [igt-dev] [PATCH i-g-t 4/5] CONTRIBUTING: Rework a bit and update
  2019-06-17 10:54 [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions Arkadiusz Hiler
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 2/5] tests/kms_hdmi_inject: Provide igt_descriptions Arkadiusz Hiler
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 3/5] tests/kms_plane_multiple: Describe the test Arkadiusz Hiler
@ 2019-06-17 10:54 ` Arkadiusz Hiler
  2019-06-20 13:49   ` Ser, Simon
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation Arkadiusz Hiler
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 26+ messages in thread
From: Arkadiusz Hiler @ 2019-06-17 10:54 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala

I have split the main body of the CONTRIBUTING file to 3 sections:
 * the short welcome message
 * the code - styling, suggestions
 * sending patches - licensing informations, mailing lists, reviews, etc.

Changes for the code section contents:
 * link to the kernel coding style docs
 * be more clear on subtest naming
 * mention igt_describe()

Cc: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 CONTRIBUTING.md | 46 ++++++++++++++++++++++++++++++++++++----------
 1 file changed, 36 insertions(+), 10 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d3a3d099..7deba078 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,9 +1,41 @@
+CONTRIBUTING
+============
+
 Patches to igt-gpu-tools are very much welcome, we really want this to be the
 universal set of low-level tools and testcases for kernel graphics drivers
 on Linux and similar platforms. So please bring on porting patches, bugfixes,
 improvements for documentation and new tools and testcases.
 
-A short list of contribution guidelines:
+
+The Code
+--------
+
+- The code should follow kernel coding style:
+  https://www.kernel.org/doc/html/latest/process/coding-style.html
+
+- Testcases (subtests) have to use minus signs (-) as a word separator.
+  The generated documentation contains glossary of commonly used terms.
+
+- All new test have to be described using `igt_describe()` family of
+  functions. The description should contain the spirit of the test (what is
+  the general idea behind the test) and *not* the letter (C to English
+  translation of the test). Refer to `igt_describe()` documentation for more
+  details.
+
+- The generated documentation contains explanation of magic control blocks like
+  `igt_subtest` and `igt_fixture`. Please make sure that you understand their
+  roles and limitation before using/altering them.
+
+- Also please make full use of all the helpers and convenience macros
+  provided by the igt library. The semantic patch lib/igt.cocci can help with
+  more automatic conversions.
+
+
+Sending Patches
+---------------
+
+- igt-gpu-tools is MIT licensed and we require contributions to follow the
+  developer's certificate of origin: http://developercertificate.org/
 
 - Please submit patches formatted with git send-email/git format-patch or
   equivalent to:
@@ -23,14 +55,6 @@ A short list of contribution guidelines:
 
   on its first invocation.
 
-- igt-gpu-tools is MIT licensed and we require contributions to follow the
-  developer's certificate of origin: http://developercertificate.org/
-
-- When submitting new testcases please follow the naming conventions documented
-  in the generated documentation. Also please make full use of all the helpers
-  and convenience macros provided by the igt library. The semantic patch
-  lib/igt.cocci can help with the more automatic conversions.
-
 - Patches need to be reviewed on the mailing list. Exceptions only apply for
   testcases and tooling for drivers with just a single contributor (e.g. vc4).
   In this case patches must still be submitted to the mailing list first.
@@ -46,7 +70,8 @@ A short list of contribution guidelines:
 - Changes to the testcases are automatically tested. Take the results into
   account before merging.
 
-Commit rights
+
+Commit Rights
 -------------
 
 Commit rights will be granted to anyone who requests them and fulfills the
@@ -80,6 +105,7 @@ come back to the project.
 Maintainers and committers should encourage contributors to request commit
 rights, especially junior contributors tend to underestimate their skills.
 
+
 Code of Conduct
 ---------------
 
-- 
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] 26+ messages in thread

* [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation
  2019-06-17 10:54 [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions Arkadiusz Hiler
                   ` (2 preceding siblings ...)
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 4/5] CONTRIBUTING: Rework a bit and update Arkadiusz Hiler
@ 2019-06-17 10:54 ` Arkadiusz Hiler
  2019-06-20  8:20   ` Petri Latvala
  2019-06-24  8:00   ` Ser, Simon
  2019-06-17 13:28 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 2 replies; 26+ messages in thread
From: Arkadiusz Hiler @ 2019-06-17 10:54 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala, Daniel Vetter

This rewrites generate_description_xml in Python, so that we generate
properly escaped XML. The switch also makes the code more manageable.

Changes in the generated docbook:

1. subtests are not simply listed anymore, they are now another (sub)section

2. subtests are now linkable,
   e.g. docs/igt-kms-tests.html#kms_hdmi_inject@inject-4k

3. subtest's section now includes output of --describe

Python is required already by gtk-doc and we are not using anything
other than the standard library.

Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 .../igt-gpu-tools/generate_description_xml.py | 112 ++++++++++++++++++
 .../igt-gpu-tools/generate_description_xml.sh |  46 -------
 docs/reference/igt-gpu-tools/meson.build      |   2 +-
 3 files changed, 113 insertions(+), 47 deletions(-)
 create mode 100755 docs/reference/igt-gpu-tools/generate_description_xml.py
 delete mode 100644 docs/reference/igt-gpu-tools/generate_description_xml.sh

diff --git a/docs/reference/igt-gpu-tools/generate_description_xml.py b/docs/reference/igt-gpu-tools/generate_description_xml.py
new file mode 100755
index 00000000..87af945d
--- /dev/null
+++ b/docs/reference/igt-gpu-tools/generate_description_xml.py
@@ -0,0 +1,112 @@
+#!/usr/bin/env python3
+
+import re
+import sys
+import os.path
+import subprocess
+import xml.etree.cElementTree as ET
+
+from collections import namedtuple
+
+Subtest = namedtuple("Subtest", "name description")
+KEYWORDS=re.compile(r'\b(invalid|hang|swap|thrash|crc|tiled|tiling|rte|ctx|render|blt|bsd|vebox|exec|rpm)\b')
+
+
+def get_testlist(path):
+    "read binaries' names from test-list.txt"
+    with open(path, 'r') as f:
+        assert(f.readline() == "TESTLIST\n")
+        tests = f.readline().strip().split(" ")
+        assert(f.readline() == "END TESTLIST\n")
+
+    return tests
+
+
+def keywordize(root, text, keywords):
+    "set text for root element and wrap KEYWORDS in a <acronym>"
+    matches = list(keywords.finditer(text))
+
+    if not matches:
+        root.text = text
+        return
+
+    pos = 0
+    last_element = None
+    root.text = ""
+
+    for match in matches:
+        if match.start() > pos:
+            to_append = text[pos:match.start()]
+
+            if last_element == None:
+                root.text += to_append
+            else:
+                last_element.tail += to_append
+
+        last_element = ET.SubElement(root, "acronym")
+        last_element.tail = ""
+        last_element.text=match.group()
+        pos = match.end()
+
+
+def get_subtests(testdir, test):
+    "execute test and get subtests with their descriptions via --describe"
+    output = []
+    full_test_path = os.path.join(testdir, test)
+    proc = subprocess.run([full_test_path, "--describe"], stdout=subprocess.PIPE)
+    description = ""
+    current_subtest = None
+
+    for line in proc.stdout.decode().splitlines():
+        if line.startswith("SUB "):
+            output += [Subtest(current_subtest, description)]
+            description = ""
+            current_subtest = line.split(' ')[1]
+        else:
+            description += line
+
+    output += [Subtest(current_subtest, description)]
+
+    return output
+
+def main():
+    output_file   = sys.argv[1]
+    test_filter   = re.compile(sys.argv[2])
+    testlist_file = sys.argv[3]
+    testdir       = os.path.abspath(os.path.dirname(testlist_file))
+
+    root = ET.Element("refsect1")
+    ET.SubElement(root, "title").text = "Description"
+
+    tests = get_testlist(testlist_file)
+
+    for test in tests:
+        if not test_filter.match(test):
+            continue
+
+        test_section = ET.SubElement(root, "refsect2", id=test)
+        test_title = ET.SubElement(test_section, "title")
+        keywordize(test_title, test, KEYWORDS)
+
+        subtests = get_subtests(testdir, test)
+
+        # we have description with no subtest name, add it at the top level
+        if subtests and not subtests[0].name:
+            ET.SubElement(test_section, "para").text = subtests[0].description
+
+        if len(subtests) > 100:
+            ET.SubElement(test_section, "para").text = "More than 100 subtests, skipping listing"
+            continue
+
+        for name, description in subtests:
+            if not name:
+                continue
+
+            subtest_section = ET.SubElement(test_section, "refsect3", id="{}@{}".format(test, name))
+            subtest_title = ET.SubElement(subtest_section, "title")
+            keywordize(subtest_title, name, KEYWORDS)
+            ET.SubElement(subtest_section, "para").text = description
+
+    ET.ElementTree(root).write(output_file)
+
+main()
diff --git a/docs/reference/igt-gpu-tools/generate_description_xml.sh b/docs/reference/igt-gpu-tools/generate_description_xml.sh
deleted file mode 100644
index 705a7bf3..00000000
--- a/docs/reference/igt-gpu-tools/generate_description_xml.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-
-output=$1
-filter=$2
-testlist=$3
-testdir=$(dirname $testlist)
-
-KEYWORDS="(invalid|hang|swap|thrash|crc|tiled|tiling|rte|ctx|render|blt|bsd|vebox|exec|rpm)"
-
-echo "<?xml version=\"1.0\"?>" > $output
-echo "<!DOCTYPE refsect1 PUBLIC \"-//OASIS//DTD DocBook XML V4.3//EN\"" >> $output
-echo "               \"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd\"" >> $output
-echo "[" >> $output
-echo "  <!ENTITY % local.common.attrib \"xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'\">" >> $output
-echo "  <!ENTITY version SYSTEM \"version.xml\">" >> $output
-echo "]>" >> $output
-echo "<refsect1>" >> $output
-echo "<title>Description</title>" >> $output
-for test in `cat $testlist | tr ' ' '\n' | grep "^$filter" | sort`; do
-	echo "<refsect2 id=\"$test\"><title>" >> $output;
-	echo "$test" | perl -pe "s/(?<=_)$KEYWORDS(?=(_|\\W))/<acronym>\\1<\\/acronym>/g" >> $output;
-	echo "</title><para><![CDATA[" >> $output;
-	testprog=$testdir/$test;
-	 ./$testprog --help-description >> $output;
-	echo "]]></para>" >> $output;
-	if ./$testprog --list-subtests > /dev/null ; then
-		echo "<refsect3><title>Subtests</title>" >> $output;
-		subtest_list=`./$testprog --list-subtests`;
-		subtest_count=`echo $subtest_list | wc -w`;
-		if [ $subtest_count -gt 100 ]; then
-			echo "<para>This test has over 100 subtests. " >> $output;
-			echo "Run <command>$test</command> <option>--list-subtests</option> to list them.</para>" >> $output;
-		else
-			echo "<simplelist>" >> $output;
-			for subtest in $subtest_list; do
-				echo "<member>" >> $output;
-				echo "$subtest" | perl -pe "s/\\b$KEYWORDS\\b/<acronym>\\1<\\/acronym>/g" >> $output;
-				echo "</member>" >> $output;
-			done;
-			echo "</simplelist>" >> $output;
-		fi;
-		echo "</refsect3>" >> $output;
-	fi;
-	echo "</refsect2>" >> $output;
-done;
-echo "</refsect1>" >> $output
diff --git a/docs/reference/igt-gpu-tools/meson.build b/docs/reference/igt-gpu-tools/meson.build
index 4d177e49..e2bdc495 100644
--- a/docs/reference/igt-gpu-tools/meson.build
+++ b/docs/reference/igt-gpu-tools/meson.build
@@ -45,7 +45,7 @@ test_groups = [
 	'vgem',
 ]
 
-gen_description = find_program('generate_description_xml.sh')
+gen_description = find_program('generate_description_xml.py')
 gen_programs = find_program('generate_programs_xml.sh')
 
 generated_docs = []
-- 
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] 26+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 2/5] tests/kms_hdmi_inject: Provide igt_descriptions
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 2/5] tests/kms_hdmi_inject: Provide igt_descriptions Arkadiusz Hiler
@ 2019-06-17 12:54   ` Ser, Simon
  2019-06-18 10:36   ` [igt-dev] [PATCH v2 " Arkadiusz Hiler
  1 sibling, 0 replies; 26+ messages in thread
From: Ser, Simon @ 2019-06-17 12:54 UTC (permalink / raw)
  To: Hiler, Arkadiusz, igt-dev

On Mon, 2019-06-17 at 13:54 +0300, Arkadiusz Hiler wrote:
> This test is quite simple which makes it perfect for the first real
> world example of igt_describe usage.
> 
> Cc: Simon Ser <simon.ser@intel.com>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> ---
>  tests/kms_hdmi_inject.c | 24 ++++++++----------------
>  1 file changed, 8 insertions(+), 16 deletions(-)
> 
> diff --git a/tests/kms_hdmi_inject.c b/tests/kms_hdmi_inject.c
> index 8c0d1333..f9c5640d 100644
> --- a/tests/kms_hdmi_inject.c
> +++ b/tests/kms_hdmi_inject.c
> @@ -33,22 +33,10 @@
>  #define HDISPLAY_4K	3840
>  #define VDISPLAY_4K	2160
>  
> -IGT_TEST_DESCRIPTION("Tests 4K and audio HDMI injection.");
> -
> -/**
> - * This collection of tests performs EDID and status injection tests. Injection
> - * forces a given EDID and status on a connector. The kernel will parse the
> - * forced EDID and we will check whether correct metadata is exposed to
> - * userspace.
> - *
> - * Currently, this can be used to test:
> - *
> - * - 4K modes exposed via KMS
> - * - Audio capabilities of the monitor exposed via ALSA. EDID-Like Data (ELD)
> - *   entries in /proc/asound are verified.
> - *
> - * Injection is performed on a disconnected connector.
> - */

Bleh, I think we're loosing some information here. IMHO trying to shove
everything into a compressed test description makes the whole thing
unclear.

In particular, I think the first paragraph + sating that ELDs are used
+ the last sentence are important. Some of these bits are in the new
description but it's hard to follow when you're reading the test for
the first time.

Thoughts?

> +IGT_TEST_DESCRIPTION("Test that in-kernel EDID parsing is producing "
> +		     "expected results by forcing a disconnected HDMI "
> +		     "connector with a known EDID and checking that the "
> +		     "metadata exposed to user space matches.");
>  
>  /** get_connector: get the first disconnected HDMI connector */
>  static drmModeConnector *
> @@ -210,9 +198,13 @@ igt_main
>  		igt_require(connector);
>  	}
>  
> +	igt_describe("Make sure that 4K modes exposed by DRM match the "
> +                     "forced EDID and modesetting using it succeed.");
>  	igt_subtest("inject-4k")
>  		hdmi_inject_4k(drm_fd, connector);
>  
> +	igt_describe("Make sure that audio information exposed by ALSA "
> +		     "match the forced EDID.");
>  	igt_subtest("inject-audio")
>  		hdmi_inject_audio(drm_fd, connector);
>  
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions
  2019-06-17 10:54 [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions Arkadiusz Hiler
                   ` (3 preceding siblings ...)
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation Arkadiusz Hiler
@ 2019-06-17 13:28 ` Patchwork
  2019-06-17 19:59 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2019-06-17 13:28 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions
URL   : https://patchwork.freedesktop.org/series/62200/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6284 -> IGTPW_3159
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_create@basic-files:
    - fi-icl-guc:         [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / [fdo#109100])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/fi-icl-guc/igt@gem_ctx_create@basic-files.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/fi-icl-guc/igt@gem_ctx_create@basic-files.html

  * igt@gem_exec_suspend@basic-s3:
    - fi-ilk-650:         [PASS][3] -> [DMESG-WARN][4] ([fdo#106387])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/fi-ilk-650/igt@gem_exec_suspend@basic-s3.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/fi-ilk-650/igt@gem_exec_suspend@basic-s3.html

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

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@basic-small-bo:
    - fi-icl-u3:          [DMESG-WARN][7] ([fdo#107724]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/fi-icl-u3/igt@gem_mmap_gtt@basic-small-bo.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/fi-icl-u3/igt@gem_mmap_gtt@basic-small-bo.html

  * igt@i915_selftest@live_hangcheck:
    - fi-icl-u2:          [INCOMPLETE][9] ([fdo#107713] / [fdo#108569]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/fi-icl-u2/igt@i915_selftest@live_hangcheck.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/fi-icl-u2/igt@i915_selftest@live_hangcheck.html

  
  [fdo#106387]: https://bugs.freedesktop.org/show_bug.cgi?id=106387
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100


Participating hosts (44 -> 38)
------------------------------

  Additional (2): fi-icl-dsi fi-pnv-d510 
  Missing    (8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-kbl-8809g fi-byt-clapper fi-bdw-samus 


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

  * IGT: IGT_5057 -> IGTPW_3159

  CI_DRM_6284: f992a9cb038edbdd5ff20a1ed3410e8b95879bcf @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3159: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/
  IGT_5057: 3b91c82b90d45c1a30569410c1142b541956740a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions
  2019-06-17 10:54 [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions Arkadiusz Hiler
                   ` (4 preceding siblings ...)
  2019-06-17 13:28 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions Patchwork
@ 2019-06-17 19:59 ` Patchwork
  2019-06-18 12:02 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions (rev2) Patchwork
  2019-06-18 22:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2019-06-17 19:59 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions
URL   : https://patchwork.freedesktop.org/series/62200/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6284_full -> IGTPW_3159_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@unwedge-stress:
    - shard-apl:          [PASS][1] -> [DMESG-WARN][2] ([fdo#110913 ]) +4 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-apl3/igt@gem_eio@unwedge-stress.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-apl3/igt@gem_eio@unwedge-stress.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
    - shard-snb:          [PASS][3] -> [DMESG-WARN][4] ([fdo#110789] / [fdo#110913 ]) +2 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-snb2/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-snb6/igt@gem_persistent_relocs@forked-interruptible-thrashing.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-hsw:          [PASS][5] -> [FAIL][6] ([fdo#108686])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-hsw8/igt@gem_tiled_swapping@non-threaded.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-hsw2/igt@gem_tiled_swapping@non-threaded.html

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

  * igt@kms_busy@extended-pageflip-hang-newfb-render-a:
    - shard-snb:          [PASS][9] -> [DMESG-WARN][10] ([fdo#110913 ])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-snb5/igt@kms_busy@extended-pageflip-hang-newfb-render-a.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-snb4/igt@kms_busy@extended-pageflip-hang-newfb-render-a.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-hsw:          [PASS][11] -> [INCOMPLETE][12] ([fdo#103540])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-hsw5/igt@kms_flip@flip-vs-suspend.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-hsw6/igt@kms_flip@flip-vs-suspend.html
    - shard-apl:          [PASS][13] -> [DMESG-WARN][14] ([fdo#108566])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-apl2/igt@kms_flip@flip-vs-suspend.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-apl7/igt@kms_flip@flip-vs-suspend.html
    - shard-snb:          [PASS][15] -> [INCOMPLETE][16] ([fdo#105411])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-snb2/igt@kms_flip@flip-vs-suspend.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-snb1/igt@kms_flip@flip-vs-suspend.html

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

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite:
    - shard-iclb:         [PASS][19] -> [FAIL][20] ([fdo#103167]) +5 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-iclb4/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [PASS][21] -> [SKIP][22] ([fdo#109642])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-iclb2/igt@kms_psr2_su@page_flip.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-iclb1/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_primary_render:
    - shard-iclb:         [PASS][23] -> [SKIP][24] ([fdo#109441])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-iclb2/igt@kms_psr@psr2_primary_render.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-iclb5/igt@kms_psr@psr2_primary_render.html

  * igt@perf_pmu@rc6:
    - shard-kbl:          [PASS][25] -> [SKIP][26] ([fdo#109271])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-kbl3/igt@perf_pmu@rc6.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-kbl7/igt@perf_pmu@rc6.html

  
#### Possible fixes ####

  * igt@gem_eio@unwedge-stress:
    - shard-snb:          [FAIL][27] ([fdo#109661]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-snb4/igt@gem_eio@unwedge-stress.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-snb2/igt@gem_eio@unwedge-stress.html

  * igt@gem_partial_pwrite_pread@write:
    - shard-iclb:         [INCOMPLETE][29] ([fdo#107713]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-iclb7/igt@gem_partial_pwrite_pread@write.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-iclb8/igt@gem_partial_pwrite_pread@write.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrashing:
    - shard-snb:          [DMESG-WARN][31] ([fdo#110789] / [fdo#110913 ]) -> [PASS][32] +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-snb6/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-snb4/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html

  * igt@gem_persistent_relocs@forked-interruptible-thrash-inactive:
    - shard-iclb:         [INCOMPLETE][33] ([fdo#107713] / [fdo#109100]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-iclb7/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-iclb3/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html

  * igt@gem_softpin@noreloc-s3:
    - shard-kbl:          [DMESG-WARN][35] ([fdo#108566]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-kbl2/igt@gem_softpin@noreloc-s3.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-kbl1/igt@gem_softpin@noreloc-s3.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup:
    - shard-kbl:          [DMESG-WARN][37] ([fdo#110913 ]) -> [PASS][38] +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-kbl6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-kbl3/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-snb:          [DMESG-WARN][39] ([fdo#110913 ]) -> [PASS][40] +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-snb4/igt@gem_userptr_blits@sync-unmap-cycles.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-snb4/igt@gem_userptr_blits@sync-unmap-cycles.html
    - shard-apl:          [DMESG-WARN][41] ([fdo#110913 ]) -> [PASS][42] +1 similar issue
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-apl4/igt@gem_userptr_blits@sync-unmap-cycles.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-apl6/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_selftest@live_evict:
    - shard-kbl:          [INCOMPLETE][43] ([fdo#103665]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-kbl4/igt@i915_selftest@live_evict.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-kbl2/igt@i915_selftest@live_evict.html

  * igt@i915_suspend@debugfs-reader:
    - shard-apl:          [DMESG-WARN][45] ([fdo#108566]) -> [PASS][46] +5 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-apl7/igt@i915_suspend@debugfs-reader.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-apl3/igt@i915_suspend@debugfs-reader.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
    - shard-glk:          [FAIL][47] ([fdo#105363]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-glk6/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-glk3/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-glk:          [INCOMPLETE][49] ([fdo#103359] / [k.org#198133]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-glk3/igt@kms_flip@flip-vs-suspend.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-glk2/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-hsw:          [INCOMPLETE][51] ([fdo#103540]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-hsw6/igt@kms_flip@flip-vs-suspend-interruptible.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-hsw8/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@plain-flip-ts-check-interruptible:
    - shard-glk:          [FAIL][53] ([fdo#100368]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-glk8/igt@kms_flip@plain-flip-ts-check-interruptible.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-glk1/igt@kms_flip@plain-flip-ts-check-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite:
    - shard-hsw:          [SKIP][55] ([fdo#109271]) -> [PASS][56] +25 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-hsw1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-hsw6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbc-indfb-scaledprimary:
    - shard-iclb:         [FAIL][57] ([fdo#103167]) -> [PASS][58] +5 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-indfb-scaledprimary.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-indfb-scaledprimary.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-iclb:         [FAIL][59] ([fdo#103166]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-iclb1/igt@kms_plane_lowres@pipe-a-tiling-x.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-iclb7/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
    - shard-snb:          [SKIP][61] ([fdo#109271]) -> [PASS][62] +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-snb1/igt@kms_plane_multiple@atomic-pipe-a-tiling-x.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-snb7/igt@kms_plane_multiple@atomic-pipe-a-tiling-x.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [SKIP][63] ([fdo#109642]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-iclb3/igt@kms_psr2_su@frontbuffer.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-iclb2/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr@no_drrs:
    - shard-iclb:         [FAIL][65] ([fdo#108341]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-iclb1/igt@kms_psr@no_drrs.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-iclb8/igt@kms_psr@no_drrs.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
    - shard-iclb:         [SKIP][67] ([fdo#109441]) -> [PASS][68] +1 similar issue
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-iclb7/igt@kms_psr@psr2_cursor_plane_onoff.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html

  * igt@kms_setmode@basic:
    - shard-apl:          [FAIL][69] ([fdo#99912]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6284/shard-apl6/igt@kms_setmode@basic.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/shard-apl5/igt@kms_setmode@basic.html

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

  [fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368
  [fdo#102370]: https://bugs.freedesktop.org/show_bug.cgi?id=102370
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [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#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108341]: https://bugs.freedesktop.org/show_bug.cgi?id=108341
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#109661]: https://bugs.freedesktop.org/show_bug.cgi?id=109661
  [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 (10 -> 6)
------------------------------

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


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

  * IGT: IGT_5057 -> IGTPW_3159
  * Piglit: piglit_4509 -> None

  CI_DRM_6284: f992a9cb038edbdd5ff20a1ed3410e8b95879bcf @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3159: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3159/
  IGT_5057: 3b91c82b90d45c1a30569410c1142b541956740a @ 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_3159/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 3/5] tests/kms_plane_multiple: Describe the test
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 3/5] tests/kms_plane_multiple: Describe the test Arkadiusz Hiler
@ 2019-06-18  9:36   ` Kahola, Mika
  0 siblings, 0 replies; 26+ messages in thread
From: Kahola, Mika @ 2019-06-18  9:36 UTC (permalink / raw)
  To: Hiler, Arkadiusz, igt-dev

Improving documentation is always a positive thing.

Reviewed-by: Mika Kahola <mika.kahola@intel.com>

On Mon, 2019-06-17 at 13:54 +0300, Arkadiusz Hiler wrote:
> In this test all the subtest are doing the same exact thing but with
> different tiling / on a different pipe. Tiling/pipe is in the test
> name
> so no need to elaborate on them.
> 
> We can have just one igt_describe() on top of the group to describe
> all
> the subtests in one go, no copy-and-paste necessary.
> 
> The description is short and explains the spirit of the test
> (verifying
> atomicity of plane updates) without delving into the implementation
> details (holes, colors, etc.)
> 
> Other changes:
>  * The function used for grabbing reference CRC is now under a more
>    descriptive name.
>  * Comment explaining test implementation in more detail is moved to
> the
>    top of the function actually implementing those steps.
>  * Minor formatting touch ups.
> 
> Cc: Mika Kahola <mika.kahola@intel.com>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> ---
>  tests/kms_plane_multiple.c | 39 ++++++++++++++++++++--------------
> ----
>  1 file changed, 21 insertions(+), 18 deletions(-)
> 
> diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
> index 0d3ba4ff..81ed45dd 100644
> --- a/tests/kms_plane_multiple.c
> +++ b/tests/kms_plane_multiple.c
> @@ -30,7 +30,7 @@
>  #include <string.h>
>  #include <time.h>
>  
> -IGT_TEST_DESCRIPTION("Test atomic mode setting with multiple planes
> ");
> +IGT_TEST_DESCRIPTION("Test atomic mode setting with multiple
> planes.");
>  
>  #define SIZE_PLANE      256
>  #define SIZE_CURSOR     128
> @@ -96,7 +96,7 @@ static void test_fini(data_t *data, igt_output_t
> *output, int n_planes)
>  }
>  
>  static void
> -test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
> +get_reference_crc(data_t *data, igt_output_t *output, enum pipe
> pipe,
>  	      color_t *color, uint64_t tiling)
>  {
>  	drmModeModeInfo *mode;
> @@ -125,17 +125,6 @@ test_grab_crc(data_t *data, igt_output_t
> *output, enum pipe pipe,
>  	igt_pipe_crc_get_single(data->pipe_crc, &data->ref_crc);
>  }
>  
> -/*
> - * Multiple plane position test.
> - *   - We start by grabbing a reference CRC of a full blue fb being
> scanned
> - *     out on the primary plane
> - *   - Then we scannout number of planes:
> - *      * the primary plane uses a blue fb with a black rectangle
> hole
> - *      * planes, on top of the primary plane, with a blue fb that
> is set-up
> - *        to cover the black rectangles of the primary plane fb
> - *     The resulting CRC should be identical to the reference CRC
> - */
> -
>  static void
>  create_fb_for_mode_position(data_t *data, igt_output_t *output,
> drmModeModeInfo *mode,
>  			    color_t *color, int *rect_x, int *rect_y,
> @@ -281,6 +270,17 @@ prepare_planes(data_t *data, enum pipe pipe_id,
> color_t *color,
>  	free((void*)suffle);
>  }
>  
> +/*
> + * Multiple plane position test.
> + *   - We start by grabbing a reference CRC of a full blue fb being
> scanned
> + *     out on the primary plane
> + *   - Then we scannout number of planes:
> + *      * the primary plane uses a blue fb with a black rectangle
> holes
> + *      * planes, on top of the primary plane, with a blue fb that
> is set-up
> + *        to cover the black rectangles of the primary plane
> + *     The resulting CRC should be identical to the reference CRC
> + */
> +
>  static void
>  test_plane_position_with_output(data_t *data, enum pipe pipe,
>  				igt_output_t *output, int n_planes,
> @@ -306,11 +306,9 @@ test_plane_position_with_output(data_t *data,
> enum pipe pipe,
>  
>  	test_init(data, pipe, n_planes);
>  
> -	test_grab_crc(data, output, pipe, &blue, tiling);
> +	get_reference_crc(data, output, pipe, &blue, tiling);
>  
> -	/*
> -	 * Find out how many planes are allowed simultaneously
> -	 */
> +	/* Find out how many planes are allowed simultaneously */
>  	do {
>  		c++;
>  		prepare_planes(data, pipe, &blue, tiling, c, output);
> @@ -323,7 +321,7 @@ test_plane_position_with_output(data_t *data,
> enum pipe pipe,
>  			igt_remove_fb(data->drm_fd, &data->fb[x]);
>  	} while (!err && c < n_planes);
>  
> -	if(err)
> +	if (err)
>  		c--;
>  
>  	igt_info("Testing connector %s using pipe %s with %d planes %s
> with seed %d\n",
> @@ -332,6 +330,7 @@ test_plane_position_with_output(data_t *data,
> enum pipe pipe,
>  
>  	i = 0;
>  	while (i < iterations || loop_forever) {
> +		/* randomize planes and set up the holes */
>  		prepare_planes(data, pipe, &blue, tiling, c, output);
>  
>  		igt_display_commit2(&data->display, COMMIT_ATOMIC);
> @@ -441,6 +440,10 @@ igt_main_args("", long_options, help_str,
> opt_handler, NULL)
>  	}
>  
>  	for_each_pipe_static(pipe) {
> +		igt_describe("Check that the kernel handles atomic
> updates of "
> +			     "multiple planes correctly by changing
> their "
> +			     "geometry and making sure the changes are
> "
> +			     "reflected immediately after each
> commit.");
>  		igt_subtest_group
>  			run_tests_for_pipe(&data, pipe);
>  	}
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH v2 i-g-t 2/5] tests/kms_hdmi_inject: Provide igt_descriptions
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 2/5] tests/kms_hdmi_inject: Provide igt_descriptions Arkadiusz Hiler
  2019-06-17 12:54   ` Ser, Simon
@ 2019-06-18 10:36   ` Arkadiusz Hiler
  2019-06-19  6:44     ` Ser, Simon
  1 sibling, 1 reply; 26+ messages in thread
From: Arkadiusz Hiler @ 2019-06-18 10:36 UTC (permalink / raw)
  To: igt-dev

This test is quite simple which makes it perfect for the first real
world example of igt_describe usage.

v2: keep the original comment (Simon)

Cc: Simon Ser <simon.ser@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 tests/kms_hdmi_inject.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tests/kms_hdmi_inject.c b/tests/kms_hdmi_inject.c
index 8c0d1333..c518c5d8 100644
--- a/tests/kms_hdmi_inject.c
+++ b/tests/kms_hdmi_inject.c
@@ -33,7 +33,10 @@
 #define HDISPLAY_4K	3840
 #define VDISPLAY_4K	2160
 
-IGT_TEST_DESCRIPTION("Tests 4K and audio HDMI injection.");
+IGT_TEST_DESCRIPTION("Test that in-kernel EDID parsing is producing "
+		     "expected results by forcing a disconnected HDMI "
+		     "connector with a known EDID and checking that the "
+		     "metadata exposed to user space matches.");
 
 /**
  * This collection of tests performs EDID and status injection tests. Injection
@@ -210,9 +213,13 @@ igt_main
 		igt_require(connector);
 	}
 
+	igt_describe("Make sure that 4K modes exposed by DRM match the "
+                     "forced EDID and modesetting using it succeed.");
 	igt_subtest("inject-4k")
 		hdmi_inject_4k(drm_fd, connector);
 
+	igt_describe("Make sure that audio information exposed by ALSA "
+		     "match the forced EDID.");
 	igt_subtest("inject-audio")
 		hdmi_inject_audio(drm_fd, connector);
 
-- 
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] 26+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions (rev2)
  2019-06-17 10:54 [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions Arkadiusz Hiler
                   ` (5 preceding siblings ...)
  2019-06-17 19:59 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2019-06-18 12:02 ` Patchwork
  2019-06-18 22:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2019-06-18 12:02 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions (rev2)
URL   : https://patchwork.freedesktop.org/series/62200/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6291 -> IGTPW_3169
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_module_load@reload:
    - fi-blb-e6850:       [PASS][1] -> [INCOMPLETE][2] ([fdo#107718])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/fi-blb-e6850/igt@i915_module_load@reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/fi-blb-e6850/igt@i915_module_load@reload.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_6291/fi-icl-y/igt@i915_selftest@live_hangcheck.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/fi-icl-y/igt@i915_selftest@live_hangcheck.html
    - fi-icl-dsi:         [PASS][5] -> [INCOMPLETE][6] ([fdo#107713] / [fdo#108569])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@basic-short:
    - fi-icl-u3:          [DMESG-WARN][7] ([fdo#107724]) -> [PASS][8] +2 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/fi-icl-u3/igt@gem_mmap_gtt@basic-short.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/fi-icl-u3/igt@gem_mmap_gtt@basic-short.html

  * igt@prime_vgem@basic-wait-default:
    - fi-icl-dsi:         [DMESG-WARN][9] ([fdo#106107]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/fi-icl-dsi/igt@prime_vgem@basic-wait-default.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/fi-icl-dsi/igt@prime_vgem@basic-wait-default.html

  
  [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569


Participating hosts (48 -> 43)
------------------------------

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


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

  * IGT: IGT_5059 -> IGTPW_3169

  CI_DRM_6291: 30a8dd688b1e9b56df650976b5058da5022dcfb8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3169: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/
  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_3169/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions (rev2)
  2019-06-17 10:54 [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions Arkadiusz Hiler
                   ` (6 preceding siblings ...)
  2019-06-18 12:02 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions (rev2) Patchwork
@ 2019-06-18 22:45 ` Patchwork
  7 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2019-06-18 22:45 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions (rev2)
URL   : https://patchwork.freedesktop.org/series/62200/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6291_full -> IGTPW_3169_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [PASS][1] -> [SKIP][2] ([fdo#110854])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-iclb2/igt@gem_exec_balancer@smoke.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-iclb6/igt@gem_exec_balancer@smoke.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive:
    - shard-iclb:         [PASS][3] -> [INCOMPLETE][4] ([fdo#107713])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-iclb7/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-iclb1/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-hsw:          [PASS][5] -> [FAIL][6] ([fdo#108686])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-hsw7/igt@gem_tiled_swapping@non-threaded.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-hsw8/igt@gem_tiled_swapping@non-threaded.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
    - shard-snb:          [PASS][7] -> [DMESG-WARN][8] ([fdo#110913 ])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-snb1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup:
    - shard-kbl:          [PASS][9] -> [DMESG-WARN][10] ([fdo#110913 ]) +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-kbl1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-kbl2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
    - shard-apl:          [PASS][11] -> [DMESG-WARN][12] ([fdo#110913 ])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-apl5/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-apl8/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html

  * igt@gem_workarounds@suspend-resume-context:
    - shard-apl:          [PASS][13] -> [DMESG-WARN][14] ([fdo#108566]) +1 similar issue
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-apl1/igt@gem_workarounds@suspend-resume-context.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-apl4/igt@gem_workarounds@suspend-resume-context.html

  * igt@kms_cursor_crc@pipe-b-cursor-dpms:
    - shard-apl:          [PASS][15] -> [FAIL][16] ([fdo#103232]) +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-apl5/igt@kms_cursor_crc@pipe-b-cursor-dpms.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-apl6/igt@kms_cursor_crc@pipe-b-cursor-dpms.html

  * igt@kms_cursor_crc@pipe-c-cursor-256x85-sliding:
    - shard-kbl:          [PASS][17] -> [FAIL][18] ([fdo#103232]) +1 similar issue
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-kbl7/igt@kms_cursor_crc@pipe-c-cursor-256x85-sliding.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-kbl4/igt@kms_cursor_crc@pipe-c-cursor-256x85-sliding.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-msflip-blt:
    - shard-iclb:         [PASS][19] -> [FAIL][20] ([fdo#103167]) +4 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-iclb4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-msflip-blt.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-iclb6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-apl:          [PASS][21] -> [FAIL][22] ([fdo#103167])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-apl6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-apl8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc.html
    - shard-kbl:          [PASS][23] -> [FAIL][24] ([fdo#103167])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-kbl7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite:
    - shard-hsw:          [PASS][25] -> [SKIP][26] ([fdo#109271]) +17 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-hsw2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-hsw1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt:
    - shard-glk:          [PASS][27] -> [FAIL][28] ([fdo#103167])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-glk3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-glk7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
    - shard-kbl:          [PASS][29] -> [DMESG-WARN][30] ([fdo#108566])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-kbl4/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-kbl6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-iclb:         [PASS][31] -> [FAIL][32] ([fdo#103166])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-iclb3/igt@kms_plane_lowres@pipe-a-tiling-x.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-iclb6/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [PASS][33] -> [SKIP][34] ([fdo#109642])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-iclb2/igt@kms_psr2_su@page_flip.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-iclb1/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_sprite_mmap_gtt:
    - shard-iclb:         [PASS][35] -> [SKIP][36] ([fdo#109441]) +1 similar issue
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-iclb4/igt@kms_psr@psr2_sprite_mmap_gtt.html

  * igt@kms_setmode@basic:
    - shard-hsw:          [PASS][37] -> [FAIL][38] ([fdo#99912])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-hsw1/igt@kms_setmode@basic.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-hsw4/igt@kms_setmode@basic.html
    - shard-kbl:          [PASS][39] -> [FAIL][40] ([fdo#99912])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-kbl3/igt@kms_setmode@basic.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-kbl2/igt@kms_setmode@basic.html

  * igt@kms_sysfs_edid_timing:
    - shard-hsw:          [PASS][41] -> [FAIL][42] ([fdo#100047])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-hsw2/igt@kms_sysfs_edid_timing.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-hsw1/igt@kms_sysfs_edid_timing.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-kbl:          [PASS][43] -> [INCOMPLETE][44] ([fdo#103665])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-kbl4/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-kbl2/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@hang:
    - shard-kbl:          [DMESG-WARN][45] ([fdo#110913 ]) -> [PASS][46] +2 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-kbl7/igt@gem_mmap_gtt@hang.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-kbl3/igt@gem_mmap_gtt@hang.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing:
    - shard-apl:          [DMESG-WARN][47] ([fdo#110913 ]) -> [PASS][48] +3 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-apl4/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-apl7/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
    - shard-snb:          [DMESG-WARN][49] ([fdo#110789] / [fdo#110913 ]) -> [PASS][50] +2 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-snb1/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-snb5/igt@gem_persistent_relocs@forked-interruptible-thrashing.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_6291/shard-kbl4/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-kbl7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic:
    - shard-hsw:          [SKIP][53] ([fdo#109271]) -> [PASS][54] +22 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-hsw1/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-hsw4/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [SKIP][55] ([fdo#109349]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-iclb7/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-kbl:          [DMESG-WARN][57] ([fdo#108566]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-kbl6/igt@kms_flip@flip-vs-suspend-interruptible.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-kbl6/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt:
    - shard-iclb:         [FAIL][59] ([fdo#103167]) -> [PASS][60] +6 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
    - shard-iclb:         [SKIP][61] ([fdo#109441]) -> [PASS][62] +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-iclb7/igt@kms_psr@psr2_cursor_plane_onoff.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-glk:          [DMESG-FAIL][63] ([fdo#105763] / [fdo#106538]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-glk2/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-glk9/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html

  * igt@perf_pmu@enable-race-vcs0:
    - shard-apl:          [INCOMPLETE][65] ([fdo#103927]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6291/shard-apl2/igt@perf_pmu@enable-race-vcs0.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/shard-apl5/igt@perf_pmu@enable-race-vcs0.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#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#106538]: https://bugs.freedesktop.org/show_bug.cgi?id=106538
  [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#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#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#110913 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110913 
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


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

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


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

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

  CI_DRM_6291: 30a8dd688b1e9b56df650976b5058da5022dcfb8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3169: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3169/
  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_3169/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH v2 i-g-t 2/5] tests/kms_hdmi_inject: Provide igt_descriptions
  2019-06-18 10:36   ` [igt-dev] [PATCH v2 " Arkadiusz Hiler
@ 2019-06-19  6:44     ` Ser, Simon
  0 siblings, 0 replies; 26+ messages in thread
From: Ser, Simon @ 2019-06-19  6:44 UTC (permalink / raw)
  To: Hiler, Arkadiusz, igt-dev

On Tue, 2019-06-18 at 13:36 +0300, Arkadiusz Hiler wrote:
> This test is quite simple which makes it perfect for the first real
> world example of igt_describe usage.
> 
> v2: keep the original comment (Simon)
> 
> Cc: Simon Ser <simon.ser@intel.com>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>

Works for me!

Reviewed-by: Simon Ser <simon.ser@intel.com>

> ---
>  tests/kms_hdmi_inject.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/kms_hdmi_inject.c b/tests/kms_hdmi_inject.c
> index 8c0d1333..c518c5d8 100644
> --- a/tests/kms_hdmi_inject.c
> +++ b/tests/kms_hdmi_inject.c
> @@ -33,7 +33,10 @@
>  #define HDISPLAY_4K	3840
>  #define VDISPLAY_4K	2160
>  
> -IGT_TEST_DESCRIPTION("Tests 4K and audio HDMI injection.");
> +IGT_TEST_DESCRIPTION("Test that in-kernel EDID parsing is producing "
> +		     "expected results by forcing a disconnected HDMI "
> +		     "connector with a known EDID and checking that the "
> +		     "metadata exposed to user space matches.");
>  
>  /**
>   * This collection of tests performs EDID and status injection tests. Injection
> @@ -210,9 +213,13 @@ igt_main
>  		igt_require(connector);
>  	}
>  
> +	igt_describe("Make sure that 4K modes exposed by DRM match the "
> +                     "forced EDID and modesetting using it succeed.");
>  	igt_subtest("inject-4k")
>  		hdmi_inject_4k(drm_fd, connector);
>  
> +	igt_describe("Make sure that audio information exposed by ALSA "
> +		     "match the forced EDID.");
>  	igt_subtest("inject-audio")
>  		hdmi_inject_audio(drm_fd, connector);
>  
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation Arkadiusz Hiler
@ 2019-06-20  8:20   ` Petri Latvala
  2019-06-20 10:52     ` Arkadiusz Hiler
  2019-06-24  8:00   ` Ser, Simon
  1 sibling, 1 reply; 26+ messages in thread
From: Petri Latvala @ 2019-06-20  8:20 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev, Daniel Vetter

On Mon, Jun 17, 2019 at 01:54:43PM +0300, Arkadiusz Hiler wrote:
> This rewrites generate_description_xml in Python, so that we generate
> properly escaped XML. The switch also makes the code more manageable.
> 
> Changes in the generated docbook:
> 
> 1. subtests are not simply listed anymore, they are now another (sub)section
> 
> 2. subtests are now linkable,
>    e.g. docs/igt-kms-tests.html#kms_hdmi_inject@inject-4k
> 
> 3. subtest's section now includes output of --describe
> 
> Python is required already by gtk-doc and we are not using anything
> other than the standard library.

Python yes, but what about python3? My Debian installation is ancient
even on Debian standards and gtk-doc-tools depends on python2. I'm too
lazy to check if the version used by gitlab-CI depends on python3, so
asking instead: Do you have a fork in gitlab for this? :P


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

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

* Re: [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation
  2019-06-20  8:20   ` Petri Latvala
@ 2019-06-20 10:52     ` Arkadiusz Hiler
  2019-06-20 11:05       ` Ser, Simon
  2019-06-20 11:11       ` Petri Latvala
  0 siblings, 2 replies; 26+ messages in thread
From: Arkadiusz Hiler @ 2019-06-20 10:52 UTC (permalink / raw)
  To: igt-dev, Daniel Vetter

On Thu, Jun 20, 2019 at 11:20:18AM +0300, Petri Latvala wrote:
> On Mon, Jun 17, 2019 at 01:54:43PM +0300, Arkadiusz Hiler wrote:
> > This rewrites generate_description_xml in Python, so that we generate
> > properly escaped XML. The switch also makes the code more manageable.
> > 
> > Changes in the generated docbook:
> > 
> > 1. subtests are not simply listed anymore, they are now another (sub)section
> > 
> > 2. subtests are now linkable,
> >    e.g. docs/igt-kms-tests.html#kms_hdmi_inject@inject-4k
> > 
> > 3. subtest's section now includes output of --describe
> > 
> > Python is required already by gtk-doc and we are not using anything
> > other than the standard library.
> 
> Python yes, but what about python3? My Debian installation is ancient
> even on Debian standards and gtk-doc-tools depends on python2. I'm too
> lazy to check if the version used by gitlab-CI depends on python3, so
> asking instead: Do you have a fork in gitlab for this? :P

It works on Fedora:

% head -n 1 $(which gtkdoc-mkhtml)
#!/usr/bin/python3

https://gitlab.freedesktop.org/drm/igt-gpu-tools/blob/master/.gitlab-ci.yml#L174


But for explicitness I can squash in:

diff --git a/docs/reference/igt-gpu-tools/meson.build b/docs/reference/igt-gpu-tools/meson.build
index e2bdc495..b3a4c0bd 100644
--- a/docs/reference/igt-gpu-tools/meson.build
+++ b/docs/reference/igt-gpu-tools/meson.build
@@ -45,6 +45,7 @@ test_groups = [
   'vgem',
 ]

+find_program('python3') # required by doc generators
 gen_description = find_program('generate_description_xml.py')
 gen_programs = find_program('generate_programs_xml.sh')

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

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

* Re: [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation
  2019-06-20 10:52     ` Arkadiusz Hiler
@ 2019-06-20 11:05       ` Ser, Simon
  2019-06-20 11:16         ` Arkadiusz Hiler
  2019-06-20 11:11       ` Petri Latvala
  1 sibling, 1 reply; 26+ messages in thread
From: Ser, Simon @ 2019-06-20 11:05 UTC (permalink / raw)
  To: Hiler, Arkadiusz, igt-dev, daniel

On Thu, 2019-06-20 at 13:52 +0300, Arkadiusz Hiler wrote:
> On Thu, Jun 20, 2019 at 11:20:18AM +0300, Petri Latvala wrote:
> > On Mon, Jun 17, 2019 at 01:54:43PM +0300, Arkadiusz Hiler wrote:
> > > This rewrites generate_description_xml in Python, so that we generate
> > > properly escaped XML. The switch also makes the code more manageable.
> > > 
> > > Changes in the generated docbook:
> > > 
> > > 1. subtests are not simply listed anymore, they are now another (sub)section
> > > 
> > > 2. subtests are now linkable,
> > >    e.g. docs/igt-kms-tests.html#kms_hdmi_inject@inject-4k
> > > 
> > > 3. subtest's section now includes output of --describe
> > > 
> > > Python is required already by gtk-doc and we are not using anything
> > > other than the standard library.
> > 
> > Python yes, but what about python3? My Debian installation is ancient
> > even on Debian standards and gtk-doc-tools depends on python2. I'm too
> > lazy to check if the version used by gitlab-CI depends on python3, so
> > asking instead: Do you have a fork in gitlab for this? :P
> 
> It works on Fedora:
> 
> % head -n 1 $(which gtkdoc-mkhtml)
> #!/usr/bin/python3

I believe `#!/usr/bin/env python3` is more correct.

> https://gitlab.freedesktop.org/drm/igt-gpu-tools/blob/master/.gitlab-ci.yml#L174
> 
> 
> But for explicitness I can squash in:
> 
> diff --git a/docs/reference/igt-gpu-tools/meson.build b/docs/reference/igt-gpu-tools/meson.build
> index e2bdc495..b3a4c0bd 100644
> --- a/docs/reference/igt-gpu-tools/meson.build
> +++ b/docs/reference/igt-gpu-tools/meson.build
> @@ -45,6 +45,7 @@ test_groups = [
>    'vgem',
>  ]
> 
> +find_program('python3') # required by doc generators
>  gen_description = find_program('generate_description_xml.py')
>  gen_programs = find_program('generate_programs_xml.sh')
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation
  2019-06-20 10:52     ` Arkadiusz Hiler
  2019-06-20 11:05       ` Ser, Simon
@ 2019-06-20 11:11       ` Petri Latvala
  2019-06-20 11:38         ` Arkadiusz Hiler
  1 sibling, 1 reply; 26+ messages in thread
From: Petri Latvala @ 2019-06-20 11:11 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev, Daniel Vetter

On Thu, Jun 20, 2019 at 01:52:25PM +0300, Arkadiusz Hiler wrote:
> On Thu, Jun 20, 2019 at 11:20:18AM +0300, Petri Latvala wrote:
> > On Mon, Jun 17, 2019 at 01:54:43PM +0300, Arkadiusz Hiler wrote:
> > > This rewrites generate_description_xml in Python, so that we generate
> > > properly escaped XML. The switch also makes the code more manageable.
> > > 
> > > Changes in the generated docbook:
> > > 
> > > 1. subtests are not simply listed anymore, they are now another (sub)section
> > > 
> > > 2. subtests are now linkable,
> > >    e.g. docs/igt-kms-tests.html#kms_hdmi_inject@inject-4k
> > > 
> > > 3. subtest's section now includes output of --describe
> > > 
> > > Python is required already by gtk-doc and we are not using anything
> > > other than the standard library.
> > 
> > Python yes, but what about python3? My Debian installation is ancient
> > even on Debian standards and gtk-doc-tools depends on python2. I'm too
> > lazy to check if the version used by gitlab-CI depends on python3, so
> > asking instead: Do you have a fork in gitlab for this? :P
> 
> It works on Fedora:
> 
> % head -n 1 $(which gtkdoc-mkhtml)
> #!/usr/bin/python3
> 
> https://gitlab.freedesktop.org/drm/igt-gpu-tools/blob/master/.gitlab-ci.yml#L174
> 
> 
> But for explicitness I can squash in:
> 
> diff --git a/docs/reference/igt-gpu-tools/meson.build b/docs/reference/igt-gpu-tools/meson.build
> index e2bdc495..b3a4c0bd 100644
> --- a/docs/reference/igt-gpu-tools/meson.build
> +++ b/docs/reference/igt-gpu-tools/meson.build
> @@ -45,6 +45,7 @@ test_groups = [
>    'vgem',
>  ]
> 
> +find_program('python3') # required by doc generators
>  gen_description = find_program('generate_description_xml.py')
>  gen_programs = find_program('generate_programs_xml.sh')


For explicitness I'd prefer something the doc building can depend on
to automatically not build them if you don't have python3.


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

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

* Re: [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation
  2019-06-20 11:05       ` Ser, Simon
@ 2019-06-20 11:16         ` Arkadiusz Hiler
  0 siblings, 0 replies; 26+ messages in thread
From: Arkadiusz Hiler @ 2019-06-20 11:16 UTC (permalink / raw)
  To: Ser, Simon; +Cc: igt-dev, daniel

On Thu, Jun 20, 2019 at 02:05:34PM +0300, Ser, Simon wrote:
> On Thu, 2019-06-20 at 13:52 +0300, Arkadiusz Hiler wrote:
> > On Thu, Jun 20, 2019 at 11:20:18AM +0300, Petri Latvala wrote:
> > > On Mon, Jun 17, 2019 at 01:54:43PM +0300, Arkadiusz Hiler wrote:
> > > > This rewrites generate_description_xml in Python, so that we generate
> > > > properly escaped XML. The switch also makes the code more manageable.
> > > > 
> > > > Changes in the generated docbook:
> > > > 
> > > > 1. subtests are not simply listed anymore, they are now another (sub)section
> > > > 
> > > > 2. subtests are now linkable,
> > > >    e.g. docs/igt-kms-tests.html#kms_hdmi_inject@inject-4k
> > > > 
> > > > 3. subtest's section now includes output of --describe
> > > > 
> > > > Python is required already by gtk-doc and we are not using anything
> > > > other than the standard library.
> > > 
> > > Python yes, but what about python3? My Debian installation is ancient
> > > even on Debian standards and gtk-doc-tools depends on python2. I'm too
> > > lazy to check if the version used by gitlab-CI depends on python3, so
> > > asking instead: Do you have a fork in gitlab for this? :P
> > 
> > It works on Fedora:
> > 
> > % head -n 1 $(which gtkdoc-mkhtml)
> > #!/usr/bin/python3
> 
> I believe `#!/usr/bin/env python3` is more correct.

Tell that to the gtkdoc (or package) maintainers :-)

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

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

* Re: [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation
  2019-06-20 11:11       ` Petri Latvala
@ 2019-06-20 11:38         ` Arkadiusz Hiler
  2019-06-20 12:16           ` Petri Latvala
  0 siblings, 1 reply; 26+ messages in thread
From: Arkadiusz Hiler @ 2019-06-20 11:38 UTC (permalink / raw)
  To: igt-dev, Daniel Vetter

On Thu, Jun 20, 2019 at 02:11:59PM +0300, Petri Latvala wrote:
> On Thu, Jun 20, 2019 at 01:52:25PM +0300, Arkadiusz Hiler wrote:
> > On Thu, Jun 20, 2019 at 11:20:18AM +0300, Petri Latvala wrote:
> > > On Mon, Jun 17, 2019 at 01:54:43PM +0300, Arkadiusz Hiler wrote:
> > > > This rewrites generate_description_xml in Python, so that we generate
> > > > properly escaped XML. The switch also makes the code more manageable.
> > > > 
> > > > Changes in the generated docbook:
> > > > 
> > > > 1. subtests are not simply listed anymore, they are now another (sub)section
> > > > 
> > > > 2. subtests are now linkable,
> > > >    e.g. docs/igt-kms-tests.html#kms_hdmi_inject@inject-4k
> > > > 
> > > > 3. subtest's section now includes output of --describe
> > > > 
> > > > Python is required already by gtk-doc and we are not using anything
> > > > other than the standard library.
> > > 
> > > Python yes, but what about python3? My Debian installation is ancient
> > > even on Debian standards and gtk-doc-tools depends on python2. I'm too
> > > lazy to check if the version used by gitlab-CI depends on python3, so
> > > asking instead: Do you have a fork in gitlab for this? :P
> > 
> > It works on Fedora:
> > 
> > % head -n 1 $(which gtkdoc-mkhtml)
> > #!/usr/bin/python3
> > 
> > https://gitlab.freedesktop.org/drm/igt-gpu-tools/blob/master/.gitlab-ci.yml#L174
> > 
> > 
> > But for explicitness I can squash in:
> > 
> > diff --git a/docs/reference/igt-gpu-tools/meson.build b/docs/reference/igt-gpu-tools/meson.build
> > index e2bdc495..b3a4c0bd 100644
> > --- a/docs/reference/igt-gpu-tools/meson.build
> > +++ b/docs/reference/igt-gpu-tools/meson.build
> > @@ -45,6 +45,7 @@ test_groups = [
> >    'vgem',
> >  ]
> > 
> > +find_program('python3') # required by doc generators
> >  gen_description = find_program('generate_description_xml.py')
> >  gen_programs = find_program('generate_programs_xml.sh')
> 
> 
> For explicitness I'd prefer something the doc building can depend on
> to automatically not build them if you don't have python3.

I forgot that we have this weird conditional subdir().

diff --git a/meson.build b/meson.build
index 6268c58d..1d07af63 100644
--- a/meson.build
+++ b/meson.build
@@ -289,7 +289,8 @@ subdir('overlay')
 subdir('man')

 gtk_doc = dependency('gtk-doc', required : build_docs)
-if build_tests and gtk_doc.found()
+python3 = find_program('python3', required : build_docs)
+if build_tests and gtk_doc.found() and python3.found()
   subdir('docs')
 elif build_docs.enabled()
   error('Documentation requires building tests')
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation
  2019-06-20 11:38         ` Arkadiusz Hiler
@ 2019-06-20 12:16           ` Petri Latvala
  0 siblings, 0 replies; 26+ messages in thread
From: Petri Latvala @ 2019-06-20 12:16 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev, Daniel Vetter

On Thu, Jun 20, 2019 at 02:38:19PM +0300, Arkadiusz Hiler wrote:
> On Thu, Jun 20, 2019 at 02:11:59PM +0300, Petri Latvala wrote:
> > On Thu, Jun 20, 2019 at 01:52:25PM +0300, Arkadiusz Hiler wrote:
> > > On Thu, Jun 20, 2019 at 11:20:18AM +0300, Petri Latvala wrote:
> > > > On Mon, Jun 17, 2019 at 01:54:43PM +0300, Arkadiusz Hiler wrote:
> > > > > This rewrites generate_description_xml in Python, so that we generate
> > > > > properly escaped XML. The switch also makes the code more manageable.
> > > > > 
> > > > > Changes in the generated docbook:
> > > > > 
> > > > > 1. subtests are not simply listed anymore, they are now another (sub)section
> > > > > 
> > > > > 2. subtests are now linkable,
> > > > >    e.g. docs/igt-kms-tests.html#kms_hdmi_inject@inject-4k
> > > > > 
> > > > > 3. subtest's section now includes output of --describe
> > > > > 
> > > > > Python is required already by gtk-doc and we are not using anything
> > > > > other than the standard library.
> > > > 
> > > > Python yes, but what about python3? My Debian installation is ancient
> > > > even on Debian standards and gtk-doc-tools depends on python2. I'm too
> > > > lazy to check if the version used by gitlab-CI depends on python3, so
> > > > asking instead: Do you have a fork in gitlab for this? :P
> > > 
> > > It works on Fedora:
> > > 
> > > % head -n 1 $(which gtkdoc-mkhtml)
> > > #!/usr/bin/python3
> > > 
> > > https://gitlab.freedesktop.org/drm/igt-gpu-tools/blob/master/.gitlab-ci.yml#L174
> > > 
> > > 
> > > But for explicitness I can squash in:
> > > 
> > > diff --git a/docs/reference/igt-gpu-tools/meson.build b/docs/reference/igt-gpu-tools/meson.build
> > > index e2bdc495..b3a4c0bd 100644
> > > --- a/docs/reference/igt-gpu-tools/meson.build
> > > +++ b/docs/reference/igt-gpu-tools/meson.build
> > > @@ -45,6 +45,7 @@ test_groups = [
> > >    'vgem',
> > >  ]
> > > 
> > > +find_program('python3') # required by doc generators
> > >  gen_description = find_program('generate_description_xml.py')
> > >  gen_programs = find_program('generate_programs_xml.sh')
> > 
> > 
> > For explicitness I'd prefer something the doc building can depend on
> > to automatically not build them if you don't have python3.
> 
> I forgot that we have this weird conditional subdir().
> 
> diff --git a/meson.build b/meson.build
> index 6268c58d..1d07af63 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -289,7 +289,8 @@ subdir('overlay')
>  subdir('man')
> 
>  gtk_doc = dependency('gtk-doc', required : build_docs)
> -if build_tests and gtk_doc.found()
> +python3 = find_program('python3', required : build_docs)
> +if build_tests and gtk_doc.found() and python3.found()
>    subdir('docs')
>  elif build_docs.enabled()
>    error('Documentation requires building tests')


LGTM.

Series is

Acked-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] 26+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 4/5] CONTRIBUTING: Rework a bit and update
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 4/5] CONTRIBUTING: Rework a bit and update Arkadiusz Hiler
@ 2019-06-20 13:49   ` Ser, Simon
  2019-06-27 12:57     ` Arkadiusz Hiler
  0 siblings, 1 reply; 26+ messages in thread
From: Ser, Simon @ 2019-06-20 13:49 UTC (permalink / raw)
  To: Hiler, Arkadiusz, igt-dev; +Cc: Latvala, Petri

On Mon, 2019-06-17 at 13:54 +0300, Arkadiusz Hiler wrote:
> I have split the main body of the CONTRIBUTING file to 3 sections:
>  * the short welcome message
>  * the code - styling, suggestions
>  * sending patches - licensing informations, mailing lists, reviews, etc.
> 
> Changes for the code section contents:
>  * link to the kernel coding style docs
>  * be more clear on subtest naming
>  * mention igt_describe()
> 
> Cc: Petri Latvala <petri.latvala@intel.com>
> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>

Should that be a S-o-b instead?

> ---
>  CONTRIBUTING.md | 46 ++++++++++++++++++++++++++++++++++++----------
>  1 file changed, 36 insertions(+), 10 deletions(-)
> 
> diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
> index d3a3d099..7deba078 100644
> --- a/CONTRIBUTING.md
> +++ b/CONTRIBUTING.md
> @@ -1,9 +1,41 @@
> +CONTRIBUTING
> +============
> +
>  Patches to igt-gpu-tools are very much welcome, we really want this to be the
>  universal set of low-level tools and testcases for kernel graphics drivers
>  on Linux and similar platforms. So please bring on porting patches, bugfixes,
>  improvements for documentation and new tools and testcases.
>  
> -A short list of contribution guidelines:
> +
> +The Code
> +--------
> +
> +- The code should follow kernel coding style:
> +  https://www.kernel.org/doc/html/latest/process/coding-style.html
> +
> +- Testcases (subtests) have to use minus signs (-) as a word separator.
> +  The generated documentation contains glossary of commonly used terms.

Do we have a link to this generated documentation somewhere?

> +- All new test have to be described using `igt_describe()` family of
> +  functions. The description should contain the spirit of the test (what is
> +  the general idea behind the test) and *not* the letter (C to English
> +  translation of the test). Refer to `igt_describe()` documentation for more
> +  details.

Again, a direct link would be nice.

> +- The generated documentation contains explanation of magic control blocks like
> +  `igt_subtest` and `igt_fixture`. Please make sure that you understand their
> +  roles and limitation before using/altering them.
> +
> +- Also please make full use of all the helpers and convenience macros
> +  provided by the igt library. The semantic patch lib/igt.cocci can help with
> +  more automatic conversions.
> +
> +
> +Sending Patches
> +---------------
> +
> +- igt-gpu-tools is MIT licensed and we require contributions to follow the
> +  developer's certificate of origin: http://developercertificate.org/
>  
>  - Please submit patches formatted with git send-email/git format-patch or
>    equivalent to:
> @@ -23,14 +55,6 @@ A short list of contribution guidelines:
>  
>    on its first invocation.
>  
> -- igt-gpu-tools is MIT licensed and we require contributions to follow the
> -  developer's certificate of origin: http://developercertificate.org/
> -
> -- When submitting new testcases please follow the naming conventions documented
> -  in the generated documentation. Also please make full use of all the helpers
> -  and convenience macros provided by the igt library. The semantic patch
> -  lib/igt.cocci can help with the more automatic conversions.
> -
>  - Patches need to be reviewed on the mailing list. Exceptions only apply for
>    testcases and tooling for drivers with just a single contributor (e.g. vc4).
>    In this case patches must still be submitted to the mailing list first.
> @@ -46,7 +70,8 @@ A short list of contribution guidelines:
>  - Changes to the testcases are automatically tested. Take the results into
>    account before merging.
>  
> -Commit rights
> +
> +Commit Rights
>  -------------
>  
>  Commit rights will be granted to anyone who requests them and fulfills the
> @@ -80,6 +105,7 @@ come back to the project.
>  Maintainers and committers should encourage contributors to request commit
>  rights, especially junior contributors tend to underestimate their skills.
>  
> +
>  Code of Conduct
>  ---------------
>  
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation
  2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation Arkadiusz Hiler
  2019-06-20  8:20   ` Petri Latvala
@ 2019-06-24  8:00   ` Ser, Simon
  2019-06-27 12:52     ` Arkadiusz Hiler
  1 sibling, 1 reply; 26+ messages in thread
From: Ser, Simon @ 2019-06-24  8:00 UTC (permalink / raw)
  To: Hiler, Arkadiusz, igt-dev; +Cc: Latvala, Petri, daniel

On Mon, 2019-06-17 at 13:54 +0300, Arkadiusz Hiler wrote:
> This rewrites generate_description_xml in Python, so that we generate
> properly escaped XML. The switch also makes the code more manageable.
> 
> Changes in the generated docbook:
> 
> 1. subtests are not simply listed anymore, they are now another (sub)section
> 
> 2. subtests are now linkable,
>    e.g. docs/igt-kms-tests.html#kms_hdmi_inject@inject-4k
> 
> 3. subtest's section now includes output of --describe
> 
> Python is required already by gtk-doc and we are not using anything
> other than the standard library.
> 
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: Petri Latvala <petri.latvala@intel.com>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> ---
>  .../igt-gpu-tools/generate_description_xml.py | 112 ++++++++++++++++++
>  .../igt-gpu-tools/generate_description_xml.sh |  46 -------
>  docs/reference/igt-gpu-tools/meson.build      |   2 +-
>  3 files changed, 113 insertions(+), 47 deletions(-)
>  create mode 100755 docs/reference/igt-gpu-tools/generate_description_xml.py
>  delete mode 100644 docs/reference/igt-gpu-tools/generate_description_xml.sh
> 
> diff --git a/docs/reference/igt-gpu-tools/generate_description_xml.py b/docs/reference/igt-gpu-tools/generate_description_xml.py
> new file mode 100755
> index 00000000..87af945d
> --- /dev/null
> +++ b/docs/reference/igt-gpu-tools/generate_description_xml.py
> @@ -0,0 +1,112 @@
> +#!/usr/bin/env python3
> +
> +import re
> +import sys
> +import os.path
> +import subprocess
> +import xml.etree.cElementTree as ET
> +
> +from collections import namedtuple
> +
> +Subtest = namedtuple("Subtest", "name description")

I'm not sure I understand "name description". Shouldn't it just be
"Description"?

> +KEYWORDS=re.compile(r'\b(invalid|hang|swap|thrash|crc|tiled|tiling|rte|ctx|render|blt|bsd|vebox|exec|rpm)\b')
> +
> +
> +def get_testlist(path):
> +    "read binaries' names from test-list.txt"
> +    with open(path, 'r') as f:
> +        assert(f.readline() == "TESTLIST\n")
> +        tests = f.readline().strip().split(" ")
> +        assert(f.readline() == "END TESTLIST\n")
> +
> +    return tests
> +
> +
> +def keywordize(root, text, keywords):
> +    "set text for root element and wrap KEYWORDS in a <acronym>"
> +    matches = list(keywords.finditer(text))
> +
> +    if not matches:
> +        root.text = text
> +        return
> +
> +    pos = 0
> +    last_element = None
> +    root.text = ""
> +
> +    for match in matches:
> +        if match.start() > pos:
> +            to_append = text[pos:match.start()]
> +
> +            if last_element == None:
> +                root.text += to_append
> +            else:
> +                last_element.tail += to_append
> +
> +        last_element = ET.SubElement(root, "acronym")
> +        last_element.tail = ""
> +        last_element.text=match.group()
> +        pos = match.end()

This misses the text after the last match.

> +def get_subtests(testdir, test):
> +    "execute test and get subtests with their descriptions via --describe"
> +    output = []
> +    full_test_path = os.path.join(testdir, test)
> +    proc = subprocess.run([full_test_path, "--describe"], stdout=subprocess.PIPE)

Add check=True to make sure the exit status is 0.

> +    description = ""
> +    current_subtest = None
> +
> +    for line in proc.stdout.decode().splitlines():
> +        if line.startswith("SUB "):
> +            output += [Subtest(current_subtest, description)]

Should only do that if description != "".

> +            description = ""
> +            current_subtest = line.split(' ')[1]
> +        else:
> +            description += line
> +
> +    output += [Subtest(current_subtest, description)]

Ditto, although this one is more like a nit.

> +    return output
> +
> +def main():
> +    output_file   = sys.argv[1]
> +    test_filter   = re.compile(sys.argv[2])
> +    testlist_file = sys.argv[3]
> +    testdir       = os.path.abspath(os.path.dirname(testlist_file))
> +
> +    root = ET.Element("refsect1")
> +    ET.SubElement(root, "title").text = "Description"
> +
> +    tests = get_testlist(testlist_file)
> +
> +    for test in tests:
> +        if not test_filter.match(test):
> +            continue
> +
> +        test_section = ET.SubElement(root, "refsect2", id=test)
> +        test_title = ET.SubElement(test_section, "title")
> +        keywordize(test_title, test, KEYWORDS)
> +
> +        subtests = get_subtests(testdir, test)
> +
> +        # we have description with no subtest name, add it at the top level
> +        if subtests and not subtests[0].name:
> +            ET.SubElement(test_section, "para").text = subtests[0].description
> +
> +        if len(subtests) > 100:
> +            ET.SubElement(test_section, "para").text = "More than 100 subtests, skipping listing"
> +            continue
> +
> +        for name, description in subtests:
> +            if not name:
> +                continue
> +
> +            subtest_section = ET.SubElement(test_section, "refsect3", id="{}@{}".format(test, name))
> +            subtest_title = ET.SubElement(subtest_section, "title")
> +            keywordize(subtest_title, name, KEYWORDS)
> +            ET.SubElement(subtest_section, "para").text = description
> +
> +    ET.ElementTree(root).write(output_file)
> +
> +main()
> diff --git a/docs/reference/igt-gpu-tools/generate_description_xml.sh b/docs/reference/igt-gpu-tools/generate_description_xml.sh
> deleted file mode 100644
> index 705a7bf3..00000000
> --- a/docs/reference/igt-gpu-tools/generate_description_xml.sh
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -#!/bin/sh
> -
> -output=$1
> -filter=$2
> -testlist=$3
> -testdir=$(dirname $testlist)
> -
> -KEYWORDS="(invalid|hang|swap|thrash|crc|tiled|tiling|rte|ctx|render|blt|bsd|vebox|exec|rpm)"
> -
> -echo "<?xml version=\"1.0\"?>" > $output
> -echo "<!DOCTYPE refsect1 PUBLIC \"-//OASIS//DTD DocBook XML V4.3//EN\"" >> $output
> -echo "               \"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd\"" >> $output
> -echo "[" >> $output
> -echo "  <!ENTITY % local.common.attrib \"xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'\">;" >> $output
> -echo "  <!ENTITY version SYSTEM \"version.xml\">" >> $output
> -echo "]>" >> $output
> -echo "<refsect1>" >> $output
> -echo "<title>Description</title>" >> $output
> -for test in `cat $testlist | tr ' ' '\n' | grep "^$filter" | sort`; do
> -	echo "<refsect2 id=\"$test\"><title>" >> $output;
> -	echo "$test" | perl -pe "s/(?<=_)$KEYWORDS(?=(_|\\W))/<acronym>\\1<\\/acronym>/g" >> $output;
> -	echo "</title><para><![CDATA[" >> $output;
> -	testprog=$testdir/$test;
> -	 ./$testprog --help-description >> $output;
> -	echo "]]></para>" >> $output;
> -	if ./$testprog --list-subtests > /dev/null ; then
> -		echo "<refsect3><title>Subtests</title>" >> $output;
> -		subtest_list=`./$testprog --list-subtests`;
> -		subtest_count=`echo $subtest_list | wc -w`;
> -		if [ $subtest_count -gt 100 ]; then
> -			echo "<para>This test has over 100 subtests. " >> $output;
> -			echo "Run <command>$test</command> <option>--list-subtests</option> to list them.</para>" >> $output;
> -		else
> -			echo "<simplelist>" >> $output;
> -			for subtest in $subtest_list; do
> -				echo "<member>" >> $output;
> -				echo "$subtest" | perl -pe "s/\\b$KEYWORDS\\b/<acronym>\\1<\\/acronym>/g" >> $output;
> -				echo "</member>" >> $output;
> -			done;
> -			echo "</simplelist>" >> $output;
> -		fi;
> -		echo "</refsect3>" >> $output;
> -	fi;
> -	echo "</refsect2>" >> $output;
> -done;
> -echo "</refsect1>" >> $output
> diff --git a/docs/reference/igt-gpu-tools/meson.build b/docs/reference/igt-gpu-tools/meson.build
> index 4d177e49..e2bdc495 100644
> --- a/docs/reference/igt-gpu-tools/meson.build
> +++ b/docs/reference/igt-gpu-tools/meson.build
> @@ -45,7 +45,7 @@ test_groups = [
>  	'vgem',
>  ]
>  
> -gen_description = find_program('generate_description_xml.sh')
> +gen_description = find_program('generate_description_xml.py')
>  gen_programs = find_program('generate_programs_xml.sh')
>  
>  generated_docs = []
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation
  2019-06-24  8:00   ` Ser, Simon
@ 2019-06-27 12:52     ` Arkadiusz Hiler
  0 siblings, 0 replies; 26+ messages in thread
From: Arkadiusz Hiler @ 2019-06-27 12:52 UTC (permalink / raw)
  To: Ser, Simon; +Cc: igt-dev, Latvala, Petri, daniel

On Mon, Jun 24, 2019 at 11:00:17AM +0300, Ser, Simon wrote:
> On Mon, 2019-06-17 at 13:54 +0300, Arkadiusz Hiler wrote:
> > This rewrites generate_description_xml in Python, so that we generate
> > properly escaped XML. The switch also makes the code more manageable.
> > 
> > Changes in the generated docbook:
> > 
> > 1. subtests are not simply listed anymore, they are now another (sub)section
> > 
> > 2. subtests are now linkable,
> >    e.g. docs/igt-kms-tests.html#kms_hdmi_inject@inject-4k
> > 
> > 3. subtest's section now includes output of --describe
> > 
> > Python is required already by gtk-doc and we are not using anything
> > other than the standard library.
> > 
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Cc: Petri Latvala <petri.latvala@intel.com>
> > Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> > ---
> >  .../igt-gpu-tools/generate_description_xml.py | 112 ++++++++++++++++++
> >  .../igt-gpu-tools/generate_description_xml.sh |  46 -------
> >  docs/reference/igt-gpu-tools/meson.build      |   2 +-
> >  3 files changed, 113 insertions(+), 47 deletions(-)
> >  create mode 100755 docs/reference/igt-gpu-tools/generate_description_xml.py
> >  delete mode 100644 docs/reference/igt-gpu-tools/generate_description_xml.sh
> > 
> > diff --git a/docs/reference/igt-gpu-tools/generate_description_xml.py b/docs/reference/igt-gpu-tools/generate_description_xml.py
> > new file mode 100755
> > index 00000000..87af945d
> > --- /dev/null
> > +++ b/docs/reference/igt-gpu-tools/generate_description_xml.py
> > @@ -0,0 +1,112 @@
> > +#!/usr/bin/env python3
> > +
> > +import re
> > +import sys
> > +import os.path
> > +import subprocess
> > +import xml.etree.cElementTree as ET
> > +
> > +from collections import namedtuple
> > +
> > +Subtest = namedtuple("Subtest", "name description")
> 
> I'm not sure I understand "name description". Shouldn't it just be
> "Description"?

Python's way of defining named tuples is a bit weird. The first argument
is the name of the "class" and the second one is space separated list of
fields.

So this will create 'Subtest' named tuple for holding two elements.
First element will be accessible via .name and second via .description.

> > +KEYWORDS=re.compile(r'\b(invalid|hang|swap|thrash|crc|tiled|tiling|rte|ctx|render|blt|bsd|vebox|exec|rpm)\b')
> > +
> > +
> > +def get_testlist(path):
> > +    "read binaries' names from test-list.txt"
> > +    with open(path, 'r') as f:
> > +        assert(f.readline() == "TESTLIST\n")
> > +        tests = f.readline().strip().split(" ")
> > +        assert(f.readline() == "END TESTLIST\n")
> > +
> > +    return tests
> > +
> > +
> > +def keywordize(root, text, keywords):
> > +    "set text for root element and wrap KEYWORDS in a <acronym>"
> > +    matches = list(keywords.finditer(text))
> > +
> > +    if not matches:
> > +        root.text = text
> > +        return
> > +
> > +    pos = 0
> > +    last_element = None
> > +    root.text = ""
> > +
> > +    for match in matches:
> > +        if match.start() > pos:
> > +            to_append = text[pos:match.start()]
> > +
> > +            if last_element == None:
> > +                root.text += to_append
> > +            else:
> > +                last_element.tail += to_append
> > +
> > +        last_element = ET.SubElement(root, "acronym")
> > +        last_element.tail = ""
> > +        last_element.text=match.group()
> > +        pos = match.end()
> 
> This misses the text after the last match.

good catch

last_element.tail = text[pos:]

should solve that

> > +def get_subtests(testdir, test):
> > +    "execute test and get subtests with their descriptions via --describe"
> > +    output = []
> > +    full_test_path = os.path.join(testdir, test)
> > +    proc = subprocess.run([full_test_path, "--describe"], stdout=subprocess.PIPE)
> 
> Add check=True to make sure the exit status is 0.

This made me realize that for --list-subtests and --describe we are
returning 79 to denote that there are no subtests here (i.e. for
igt_simple_main).

% build/tests/core_getclient --describe
Tests the DRM_IOCTL_GET_CLIENT ioctl.

% echo $?
79

And we still utilize the description from there:

<div class="refsect2">
<a name="core_getclient"></a><h3>core_getclient</h3>
<p>Tests the DRM_IOCTL_GET_CLIENT ioctl.</p>
</div>

> > +    description = ""
> > +    current_subtest = None
> > +
> > +    for line in proc.stdout.decode().splitlines():
> > +        if line.startswith("SUB "):
> > +            output += [Subtest(current_subtest, description)]
> 
> Should only do that if description != "".
> 
> > +            description = ""
> > +            current_subtest = line.split(' ')[1]
> > +        else:
> > +            description += line
> > +
> > +    output += [Subtest(current_subtest, description)]
> 
> Ditto, although this one is more like a nit.

I am not sure why we should care?

We are producing obnoxious "NO DOCUMENTATION!" if the subtest is not
described, and if we still somehow manage to produce nothing then at
least we would list that test in the docs.

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

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

* Re: [igt-dev] [PATCH i-g-t 4/5] CONTRIBUTING: Rework a bit and update
  2019-06-20 13:49   ` Ser, Simon
@ 2019-06-27 12:57     ` Arkadiusz Hiler
  2019-06-27 14:00       ` Ser, Simon
  0 siblings, 1 reply; 26+ messages in thread
From: Arkadiusz Hiler @ 2019-06-27 12:57 UTC (permalink / raw)
  To: Ser, Simon; +Cc: igt-dev, Latvala, Petri

On Thu, Jun 20, 2019 at 04:49:39PM +0300, Ser, Simon wrote:
> On Mon, 2019-06-17 at 13:54 +0300, Arkadiusz Hiler wrote:
> > I have split the main body of the CONTRIBUTING file to 3 sections:
> >  * the short welcome message
> >  * the code - styling, suggestions
> >  * sending patches - licensing informations, mailing lists, reviews, etc.
> > 
> > Changes for the code section contents:
> >  * link to the kernel coding style docs
> >  * be more clear on subtest naming
> >  * mention igt_describe()
> > 
> > Cc: Petri Latvala <petri.latvala@intel.com>
> > Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> 
> Should that be a S-o-b instead?

oops

> > ---
> >  CONTRIBUTING.md | 46 ++++++++++++++++++++++++++++++++++++----------
> >  1 file changed, 36 insertions(+), 10 deletions(-)
> > 
> > diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
> > index d3a3d099..7deba078 100644
> > --- a/CONTRIBUTING.md
> > +++ b/CONTRIBUTING.md
> > @@ -1,9 +1,41 @@
> > +CONTRIBUTING
> > +============
> > +
> >  Patches to igt-gpu-tools are very much welcome, we really want this to be the
> >  universal set of low-level tools and testcases for kernel graphics drivers
> >  on Linux and similar platforms. So please bring on porting patches, bugfixes,
> >  improvements for documentation and new tools and testcases.
> >  
> > -A short list of contribution guidelines:
> > +
> > +The Code
> > +--------
> > +
> > +- The code should follow kernel coding style:
> > +  https://www.kernel.org/doc/html/latest/process/coding-style.html
> > +
> > +- Testcases (subtests) have to use minus signs (-) as a word separator.
> > +  The generated documentation contains glossary of commonly used terms.
> 
> Do we have a link to this generated documentation somewhere?
> 
> > +- All new test have to be described using `igt_describe()` family of
> > +  functions. The description should contain the spirit of the test (what is
> > +  the general idea behind the test) and *not* the letter (C to English
> > +  translation of the test). Refer to `igt_describe()` documentation for more
> > +  details.
> 
> Again, a direct link would be nice.

I'll put it near the top of README. Is that enough or do you still see
some value in having it also linked here?
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 4/5] CONTRIBUTING: Rework a bit and update
  2019-06-27 12:57     ` Arkadiusz Hiler
@ 2019-06-27 14:00       ` Ser, Simon
  0 siblings, 0 replies; 26+ messages in thread
From: Ser, Simon @ 2019-06-27 14:00 UTC (permalink / raw)
  To: Hiler, Arkadiusz; +Cc: igt-dev, Latvala, Petri

On Thu, 2019-06-27 at 15:57 +0300, Arkadiusz Hiler wrote:
> On Thu, Jun 20, 2019 at 04:49:39PM +0300, Ser, Simon wrote:
> > On Mon, 2019-06-17 at 13:54 +0300, Arkadiusz Hiler wrote:
> > > I have split the main body of the CONTRIBUTING file to 3 sections:
> > >  * the short welcome message
> > >  * the code - styling, suggestions
> > >  * sending patches - licensing informations, mailing lists, reviews, etc.
> > > 
> > > Changes for the code section contents:
> > >  * link to the kernel coding style docs
> > >  * be more clear on subtest naming
> > >  * mention igt_describe()
> > > 
> > > Cc: Petri Latvala <petri.latvala@intel.com>
> > > Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> > 
> > Should that be a S-o-b instead?
> 
> oops
> 
> > > ---
> > >  CONTRIBUTING.md | 46 ++++++++++++++++++++++++++++++++++++----------
> > >  1 file changed, 36 insertions(+), 10 deletions(-)
> > > 
> > > diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
> > > index d3a3d099..7deba078 100644
> > > --- a/CONTRIBUTING.md
> > > +++ b/CONTRIBUTING.md
> > > @@ -1,9 +1,41 @@
> > > +CONTRIBUTING
> > > +============
> > > +
> > >  Patches to igt-gpu-tools are very much welcome, we really want this to be the
> > >  universal set of low-level tools and testcases for kernel graphics drivers
> > >  on Linux and similar platforms. So please bring on porting patches, bugfixes,
> > >  improvements for documentation and new tools and testcases.
> > >  
> > > -A short list of contribution guidelines:
> > > +
> > > +The Code
> > > +--------
> > > +
> > > +- The code should follow kernel coding style:
> > > +  https://www.kernel.org/doc/html/latest/process/coding-style.html
> > > +
> > > +- Testcases (subtests) have to use minus signs (-) as a word separator.
> > > +  The generated documentation contains glossary of commonly used terms.
> > 
> > Do we have a link to this generated documentation somewhere?
> > 
> > > +- All new test have to be described using `igt_describe()` family of
> > > +  functions. The description should contain the spirit of the test (what is
> > > +  the general idea behind the test) and *not* the letter (C to English
> > > +  translation of the test). Refer to `igt_describe()` documentation for more
> > > +  details.
> > 
> > Again, a direct link would be nice.
> 
> I'll put it near the top of README. Is that enough or do you still see
> some value in having it also linked here?

I still think a direct link to igt_describe would save the reader from
searching it in the docs. Since these docs contain nice examples,
making it frictionless to access them while preparing a first IGT
contribution would be cool.
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions
  2019-07-01 12:21 [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions Arkadiusz Hiler
@ 2019-07-01 13:01 ` Patchwork
  0 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2019-07-01 13:01 UTC (permalink / raw)
  To: Arkadiusz Hiler; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions
URL   : https://patchwork.freedesktop.org/series/63037/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6390 -> IGTPW_3217
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_basic@bad-close:
    - fi-icl-u3:          [PASS][1] -> [DMESG-WARN][2] ([fdo#107724])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6390/fi-icl-u3/igt@gem_basic@bad-close.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3217/fi-icl-u3/igt@gem_basic@bad-close.html

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

  * igt@gem_ringfill@basic-default-interruptible:
    - fi-icl-dsi:         [PASS][5] -> [DMESG-WARN][6] ([fdo#106107])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6390/fi-icl-dsi/igt@gem_ringfill@basic-default-interruptible.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3217/fi-icl-dsi/igt@gem_ringfill@basic-default-interruptible.html

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@basic-copy:
    - fi-icl-u3:          [DMESG-WARN][7] ([fdo#107724]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6390/fi-icl-u3/igt@gem_mmap_gtt@basic-copy.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3217/fi-icl-u3/igt@gem_mmap_gtt@basic-copy.html

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [FAIL][9] ([fdo#108511]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6390/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3217/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_blt:
    - fi-skl-iommu:       [INCOMPLETE][11] ([fdo#108602]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6390/fi-skl-iommu/igt@i915_selftest@live_blt.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3217/fi-skl-iommu/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_contexts:
    - fi-icl-dsi:         [INCOMPLETE][13] ([fdo#107713] / [fdo#108569]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6390/fi-icl-dsi/igt@i915_selftest@live_contexts.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3217/fi-icl-dsi/igt@i915_selftest@live_contexts.html

  * igt@kms_busy@basic-flip-c:
    - fi-skl-6770hq:      [SKIP][15] ([fdo#109271] / [fdo#109278]) -> [PASS][16] +2 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6390/fi-skl-6770hq/igt@kms_busy@basic-flip-c.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3217/fi-skl-6770hq/igt@kms_busy@basic-flip-c.html

  * igt@kms_flip@basic-flip-vs-dpms:
    - fi-skl-6770hq:      [SKIP][17] ([fdo#109271]) -> [PASS][18] +23 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6390/fi-skl-6770hq/igt@kms_flip@basic-flip-vs-dpms.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3217/fi-skl-6770hq/igt@kms_flip@basic-flip-vs-dpms.html

  
  [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (52 -> 44)
------------------------------

  Additional (1): fi-kbl-7567u 
  Missing    (9): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-gdg-551 fi-icl-y fi-byt-clapper fi-bdw-samus 


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

  * IGT: IGT_5075 -> IGTPW_3217

  CI_DRM_6390: 4c6c23fdf450ab43bb4046ac1fb1439ebf176564 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3217: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3217/
  IGT_5075: 03779dd3de8a57544f124d9952a6d2b3e34e34ca @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

end of thread, other threads:[~2019-07-01 13:01 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-17 10:54 [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions Arkadiusz Hiler
2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 2/5] tests/kms_hdmi_inject: Provide igt_descriptions Arkadiusz Hiler
2019-06-17 12:54   ` Ser, Simon
2019-06-18 10:36   ` [igt-dev] [PATCH v2 " Arkadiusz Hiler
2019-06-19  6:44     ` Ser, Simon
2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 3/5] tests/kms_plane_multiple: Describe the test Arkadiusz Hiler
2019-06-18  9:36   ` Kahola, Mika
2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 4/5] CONTRIBUTING: Rework a bit and update Arkadiusz Hiler
2019-06-20 13:49   ` Ser, Simon
2019-06-27 12:57     ` Arkadiusz Hiler
2019-06-27 14:00       ` Ser, Simon
2019-06-17 10:54 ` [igt-dev] [PATCH i-g-t 5/5] docs: Embed subtest descriptions in the documentation Arkadiusz Hiler
2019-06-20  8:20   ` Petri Latvala
2019-06-20 10:52     ` Arkadiusz Hiler
2019-06-20 11:05       ` Ser, Simon
2019-06-20 11:16         ` Arkadiusz Hiler
2019-06-20 11:11       ` Petri Latvala
2019-06-20 11:38         ` Arkadiusz Hiler
2019-06-20 12:16           ` Petri Latvala
2019-06-24  8:00   ` Ser, Simon
2019-06-27 12:52     ` Arkadiusz Hiler
2019-06-17 13:28 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions Patchwork
2019-06-17 19:59 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2019-06-18 12:02 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] lib/igt_core: Add support for subtest descriptions (rev2) Patchwork
2019-06-18 22:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2019-07-01 12:21 [igt-dev] [PATCH i-g-t 1/5] lib/igt_core: Add support for subtest descriptions Arkadiusz Hiler
2019-07-01 13:01 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] " 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.