From e41e8072b1d337393fdf6bcc851db36b59a0073c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 5 Feb 2020 23:35:39 -0500 Subject: [PATCH] css tests: Ignore ".csd" vs ".solid-csd" It it hard to control which of the csd style classes we get, since it depends on details of the X server or compositor. Explicitly ignore this difference by replacing .solid-csd with .csd in the output. --- testsuite/css/style/test-css-style.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/testsuite/css/style/test-css-style.c b/testsuite/css/style/test-css-style.c index 47e80ceacd..6e6a59466e 100644 --- a/testsuite/css/style/test-css-style.c +++ b/testsuite/css/style/test-css-style.c @@ -95,15 +95,35 @@ diff_with_file (const char *file1, return output; } +static char * +fixup_style_differences (const char *str) +{ + GRegex *regex; + char *result; + + /* normalize differences that creep in from hard-to-control environmental influences */ + regex = g_regex_new ("[.]solid-csd", 0, 0, NULL); + result = g_regex_replace_literal (regex, str, -1, 0, ".csd", 0, NULL); + g_regex_unref (regex); + + return result; +} + static void style_context_changed (GtkWidget *window, const char **output) { GtkStyleContext *context; + char *str; context = gtk_widget_get_style_context (window); - *output = gtk_style_context_to_string (context, GTK_STYLE_CONTEXT_PRINT_RECURSE | - GTK_STYLE_CONTEXT_PRINT_SHOW_STYLE); + str = gtk_style_context_to_string (context, GTK_STYLE_CONTEXT_PRINT_RECURSE | + GTK_STYLE_CONTEXT_PRINT_SHOW_STYLE); + + *output = fixup_style_differences (str); + + g_free (str); + g_main_context_wakeup (NULL); }