build: Add known to be failing gsk comparison tests
authorEmmanuele Bassi <ebassi@gnome.org>
Wed, 14 Dec 2022 17:31:50 +0000 (17:31 +0000)
committerEmmanuele Bassi <ebassi@gnome.org>
Wed, 14 Dec 2022 17:40:04 +0000 (17:40 +0000)
The unaligned-offscreen and upside-down-label-3d tests are failing after
upgrading our CI images, seemingly because of some font rendering issue
that is hard to track. Let's use the "failing" testsuite mechanism that
we also use for the reftests.

testsuite/gsk/meson.build

index 3c90dd632e1776da26e3e47692a2b7df86a130ff..67514ebf8c0b10b052e932302f57a99179abe306 100644 (file)
@@ -84,8 +84,6 @@ compare_render_tests = [
   'repeat-texture',
   'transform-in-transform',
   'transform-in-transform-in-transform',
-  'unaligned-offscreen',
-  'upside-down-label-3d', # not really 3d, but cairo fails it
   'rounded-clip-in-clip-3d', # not really 3d, but cairo fails it
 ]
 
@@ -98,29 +96,49 @@ informative_render_tests = [
 ]
 
 renderers = [
-  # name          exclude term
-  [ 'gl', ''           ],
-  [ 'broadway',   '-3d' ],
-  [ 'cairo',      '-3d' ],
+  { 'name': 'gl' },
+  { 'name': 'broadway', 'exclude_term': '-3d' },
+  { 'name': 'cairo', 'exclude_term': '-3d' },
+]
+
+compare_xfails = [
+  # Both tests fail because of some font rendering issue
+  'unaligned-offscreen',
+  'upside-down-label-3d', # not really 3d, but cairo fails it
 ]
 
 foreach renderer : renderers
-  foreach test : compare_render_tests
-    if ((renderer[1] == '' or not test.contains(renderer[1])) and
-        (renderer[0] != 'broadway' or broadway_enabled))
-      test(renderer[0] + ' ' + test, compare_render,
+  foreach testname : compare_render_tests
+
+    renderer_name = renderer.get('name')
+    exclude_term = renderer.get('exclude_term', '')
+
+    suites = [
+      'gsk',
+      'gsk-compare',
+      'gsk-' + renderer_name,
+      'gsk-compare-' + renderer_name,
+    ]
+
+    if compare_xfails.contains(testname)
+      suites += 'failing'
+    endif
+
+    if ((exclude_term == '' or not testname.contains(exclude_term)) and
+        (renderer_name != 'broadway' or broadway_enabled))
+      test(renderer_name + ' ' + testname, compare_render,
         args: [
-          '--output', join_paths(meson.current_build_dir(), 'compare', renderer[0]),
-          join_paths(meson.current_source_dir(), 'compare', test + '.node'),
-          join_paths(meson.current_source_dir(), 'compare', test + '.png'),
+          '--output', join_paths(meson.current_build_dir(), 'compare', renderer_name),
+          join_paths(meson.current_source_dir(), 'compare', testname + '.node'),
+          join_paths(meson.current_source_dir(), 'compare', testname + '.png'),
         ],
         env: [
-          'GSK_RENDERER=' + renderer[0],
+          'GSK_RENDERER=' + renderer_name,
           'GTK_A11Y=test',
           'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
           'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir())
         ],
-        suite: [ 'gsk', 'gsk-compare', 'gsk-' + renderer[0], 'gsk-compare-' + renderer[0] ],
+        suite: suites,
       )
     endif
   endforeach