[PATCH i-g-t v5 2/4] lib/igt_core: Added message to runner about ignoring kernel warns

Kamil Konieczny kamil.konieczny at linux.intel.com
Mon Aug 19 10:32:40 UTC 2024


Allow a test to emit regex into dmesg to be read by runner when
it will be generating results based on kernel dmesg. When it
will encounter such message, runner will save it and then
temporarily ignore kernel warnings or errors which matches given
regex.

v2: check creation of regex in subtest run and bail out quickly
on error, fix description (Zbigniew)
v3: print error when compiling regex fails (Zbigniew)

Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
---
 lib/igt_core.c | 24 ++++++++++++++++++++++++
 lib/igt_core.h |  2 ++
 2 files changed, 26 insertions(+)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index 3ff3e0392..6eef25dd5 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -3432,3 +3432,27 @@ int igt_pci_system_init(void)
 
 	return pthread_once(&once_control, __pci_system_init);
 }
+
+/**
+ * igt_emit_ignore_dmesg_regex:
+ * @ignore_dmesg: string regex
+ *
+ * Emits a string for igt_runner to ignore next dmesg warns or errors which
+ * matches it.
+ */
+void igt_emit_ignore_dmesg_regex(const char *ignore_dmesg_regex)
+{
+	static const char mark_ignore_dmesg[] = "add ignored dmesg regex: ";
+	GError *err = NULL;
+	GRegex *re;
+
+	re = g_regex_new(ignore_dmesg_regex, G_REGEX_OPTIMIZE, 0, &err);
+	if (err) {
+		igt_debug("regexp: '%s'\n", err->message);
+		g_error_free(err);
+		igt_assert_f(re, "Error in regexp\n");
+	}
+
+	g_regex_unref(re);
+	igt_kmsg(KMSG_INFO "%s%s\n", mark_ignore_dmesg, ignore_dmesg_regex);
+}
diff --git a/lib/igt_core.h b/lib/igt_core.h
index 06c5314bf..a437ff8ed 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -1542,4 +1542,6 @@ static inline void igt_pci_system_cleanup(void)
 {
 }
 
+void igt_emit_ignore_dmesg_regex(const char *ignore_dmesg_regex);
+
 #endif /* IGT_CORE_H */
-- 
2.43.0



More information about the igt-dev mailing list