[PATCH i-g-t v5 2/4] lib/igt_core: Added message to runner about ignoring kernel warns
Rodrigo Vivi
rodrigo.vivi at intel.com
Mon Aug 26 17:04:06 UTC 2024
On Mon, Aug 19, 2024 at 12:32:40PM +0200, Kamil Konieczny wrote:
> 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>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi at 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