[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