Bug#1077288: gtk4: several test failures in gsk suite on 32-bit architectures
Simon McVittie
smcv at debian.org
Sun Jul 28 00:06:56 BST 2024
Source: gtk4
Version: 4.14.4+ds-3
Severity: important
Tags: upstream
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/issues/6395#note_2179328
Control: block 1072395 by -1
Several tests in the gsk test suite are failing on at least i386 and
armhf, and presumably all other 32-bit architectures. This is not a
FTBFS and therefore probably not RC, because Sebastien Bacher already
marked the entire gsk suite to be skipped on 32-bit architectures.
I'm concerned that as GSK becomes more mainstream as a component of GTK
and a replacement for Clutter, brokenness in GSK could become increasingly
visble to end-users, so it seems unfortunate that we are skipping the
entire gsk test suite. In the short to medium term, perhaps we could at
least re-enable most of it, and skip the known-failing tests in a more
targeted way?
Obviously the ideal solution would be to fix whatever the problem is here.
After resolving the alignment issue https://bugs.debian.org/1077192 (which
affects multiple architectures, not just s390x but also at least i386),
the remaining failures on 32-bit, as exemplified by armhf, are:
1. gtk:gsk+gsk-nodeparser / parser empty-fill.node
> # Resulting file doesn't match reference:
> # --- /home/smcv/gtk4-hf/testsuite/gsk/nodeparser/empty-fill.ref.node 2024-07-27 21:54:16.244826282 +0000
> # +++ - 2024-07-27 22:06:26.105338264 +0000
> # @@ -4,11 +4,11 @@
> # color: rgb(255,0,204);
> # }
> # path: "\
> # -M 25 0\
> # -L 39.6946297 45.2254257\
> # -L 1.22358704 17.2745743\
> # -L 48.776413 17.2745743\
> # -L 10.3053684 45.2254257\
> # +M 1.4717025e-37 25\
> # +L 0 39.6946297\
> # +L 45.2254257 1.22358704\
> # +L 17.2745743 48.776413\
> # +L 17.2745743 10.3053684\
> # Z";
> # fill-rule: winding;
2. gtk:gsk+gsk-nodeparser / parser empty-stroke.node
> # Resulting file doesn't match reference:
> # --- /home/smcv/gtk4-hf/testsuite/gsk/nodeparser/empty-stroke.ref.node 2024-07-27 21:54:16.244826282 +0000
> # +++ - 2024-07-27 22:06:26.330690736 +0000
> # @@ -4,11 +4,11 @@
> # color: rgb(255,0,204);
> # }
> # path: "\
> # -M 25 0\
> # -L 39.6946297 45.2254257\
> # -L 1.22358704 17.2745743\
> # -L 48.776413 17.2745743\
> # -L 10.3053684 45.2254257\
> # +M 3.26918066e-37 25\
> # +L 0 39.6946297\
> # +L 45.2254257 1.22358704\
> # +L 17.2745743 48.776413\
> # +L 17.2745743 10.3053684\
> # Z";
3. gtk:gsk+gsk-nodeparser / parser fill2.node
> # Resulting file doesn't match reference:
> # --- /home/smcv/gtk4-hf/testsuite/gsk/nodeparser/fill2.ref.node 2024-07-27 21:54:16.244826282 +0000
> # +++ - 2024-07-27 22:06:26.603463283 +0000
> # @@ -4,6 +4,6 @@
> # color: rgb(255,0,204);
> # }
> # path: "\
> # -M 0 0 O 10 0, 20 20, 5";
> # +M 1.25346098e-36 0 O 0 10, 0 20, 0";
> # fill-rule: even-odd;
> # }
4. gtk:gsk+gsk-nodeparser / parser fill.node
> # Resulting file doesn't match reference:
> # --- /home/smcv/gtk4-hf/testsuite/gsk/nodeparser/fill.ref.node 2024-07-27 21:54:16.244826282 +0000
> # +++ - 2024-07-27 22:06:26.599504983 +0000
> # @@ -4,9 +4,9 @@
> # color: rgb(255,0,204);
> # }
> # path: "\
> # -M 0 0\
> # -L 50 0\
> # -C 50 50, 0 50, 0 0\
> # +M 9.30466272e-38 0\
> # +L 0 50\
> # +C 0 50, 50 0, 50 0\
> # Z";
5. gtk:gsk+gsk-nodeparser / parser stroke.node
> # Resulting file doesn't match reference:
> # --- /home/smcv/gtk4-hf/testsuite/gsk/nodeparser/stroke.ref.node 2024-07-27 21:54:16.244826282 +0000
> # +++ - 2024-07-27 22:06:26.989276907 +0000
> # @@ -4,10 +4,10 @@
> # color: rgb(255,0,0);
> # }
> # path: "\
> # -M 10 10\
> # -L 90 90\
> # -M 90 10\
> # -L 10 90";
> # +M 1.9948876e-37 1.99488805e-37\
> # +L 10 10\
> # +M 1.99490195e-37 1.99490239e-37\
> # +L 90 10";
> # line-width: 10;
6. gtk:gsk / path-special-cases
> not ok /path/rsvg-parse - ERROR:../../../testsuite/gsk/path-special-cases.c:259:test_rsvg_parse: assertion failed (string == string2): ("M 8.07894258e-37 10 L 20 30" == "M 8.06371798e-37 10 L 20 30")
7. gtk:gsk / curve-special-cases
> not ok /curve/special/crossing - ERROR:../../../testsuite/gsk/curve-special-cases.c:145:test_curve_crossing: 'gsk_curve_get_crossing (&c, &tests[i].p) == tests[i].crossing' should be TRUE
8. gtk:gsk / path-private
> not ok /path/circle/winding - ERROR:../../../testsuite/gsk/path-private.c:125:test_circle_winding: 'gsk_contour_get_winding (contour1, &GRAPHENE_POINT_INIT (100, 100)) == 1' should be TRUE
I suspect that 1-6 might all have the same root cause, perhaps something
wrong with path parsing or serialization.
7 and 8 I think might be something different.
Additionally there is an i386-specific failure outside the gsk suite,
which I will report separately.
smcv
More information about the pkg-gnome-maintainers
mailing list