dk / Prima

prima.eu.org
Other
106 stars 27 forks source link

Test failures Prima-1.70, perl-5.34, Ubuntu #100

Closed hvds closed 8 months ago

hvds commented 8 months ago

Just tried to compile Prima for the first time. Short version:

(This is perl 5, version 34, subversion 0 (v5.34.0) built for x86_64-linux)
% uname -rvpio
5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64 x86_64 GNU/Linux

Test Summary Report
-------------------
t/Object/Fonts.t      (Wstat: 1280 Tests: 15660 Failed: 19)
  Failed tests:  284, 291, 7947, 7954, 15646-15660
  Non-zero exit status: 5
  Parse errors: Bad plan.  You planned 15645 tests but ran 15660.
t/Widget/Size.t       (Wstat: 768 Tests: 12 Failed: 3)
  Failed tests:  9-10, 12
  Non-zero exit status: 3
Files=48, Tests=25632, 791 wallclock secs ( 2.58 usr  0.25 sys + 2212.05 cusr  3.32 csys = 2218.20 CPU)
Result: FAIL
Failed 2/48 test programs. 22/25632 subtests failed.

Details below

configure ``` Version: 1.70 Flavor: linux.x86_64 Build: Prima-1.70-linux.x86_64-5.34.0 Compiler: gcc ... Checking if your kit is complete... Looks good Unrecognized argument in LIBS ignored: ':nosearch' ... ** Warning: fribidi is needed for bidirectional text. ... ** Warning: libthai is needed for proper breaking of thai text. ... ** Warning: the following image libraries weren't found: gif heif webp Xpm ```

Build proceeded without warnings or errors.

tests ``` t/misc/syntax.t ......... 1/114 Failed to load standard bitmap '/src/perl/Prima- t/misc/syntax.t ......... ok ... t/Object/Fonts.t ........ 258/15645 # Failed test 'width by height / seg7' # at t/Object/Fonts.t line 52. # got: '7' # expected: '6' xft: want 10x0.0.fixed.seg7/us-ascii^0.2 xft: want 42x0.0.default.seg7/^0.2 xft: refuse xft: want 10x0.0.default.seg7/^0.2 xft: refuse xft: want -36x0.0.default.seg7/^0.2 xft: refuse xft: want -8x0.0.default.seg7/^0.2 xft: refuse xft: want 8x0.0.default.seg7/^12.2 xft: try nonrotated font xft: want 8x0.0.default.seg7/^0.2 xft: refuse xft: FC_PIXEL_SIZE = 8 xft: height factor read:8 (8) xft: width factor read:100 (100) xft: size factor read:6 (5.98425) xft: pass to cached core xft: want 8x0.0.default.seg7/^0.2 xft: refuse xft: want 8x0.0.default.seg7/^0.2 xft: refuse xft: want 8x30.0.default.seg7/^0.2 xft: refuse xft: want 8x6.0.default.seg7/^0.2 xft: refuse # Failed test 'width by height / seg7' # at t/Object/Fonts.t line 52. # got: '7' # expected: '6' xft: want -7x0.0.default.seg7/^0.2 xft: refuse xft: want -7x33.0.default.seg7/^0.2 xft: refuse xft: want -7x7.0.default.seg7/^0.2 xft: refuse xft: want 8x0.BTI.default.seg7/^0.2 xft: refuse font reqH:8(s=7)x0.BTIUSO+.default seg7/ font: #2506 (diff=7563): -libdockapp-seg7-medium-r-normal--0-0-75-75-c-0-us-asci font: pick:0(0)x0.0.fixed seg7/us-ascii .vector font: construct h=8, s=0 font: loading -libdockapp-seg7-medium-r-normal--8-0-75-75-c-0-us-ascii font: width = FXA_AVERAGE_WIDTH 6(56) font cache add: 8(10)x6.0.fixed seg7/us-ascii xft: want 8x0.0.default.seg7/^0.2 xft: refuse xft: want 16x0.0.default.seg7/^0.2 xft: refuse t/Object/Fonts.t ........ 7943/15645 # Failed test 'size / Emoji One' # at t/Object/Fonts.t line 34. # got: '79' # expected: '247' xft: want 106x0.0.default.Emoji One/fontspecific^0.2 xft: want 330x0.0.default.Emoji One/^0.2 xft: want -753x0.0.default.Emoji One/^0.2 xft: want -247x0.0.default.Emoji One/^0.2 # Failed test 'size / Emoji One' # at t/Object/Fonts.t line 34. # got: '79' # expected: '247' xft: want 330x0.0.default.Emoji One/^12.2 xft: want 106x0.0.default.Emoji One/^0.2 xft: want 106x0.0.default.Emoji One/^0.2 xft: want 106x396.0.default.Emoji One/^0.2 xft: want 106x128.0.default.Emoji One/^0.2 xft: want -79x0.0.default.Emoji One/^0.2 xft: want -79x393.0.default.Emoji One/^0.2 xft: want -79x127.0.default.Emoji One/^0.2 xft: want 105x0.BTI.default.Emoji One/^0.2 xft: want 106x0.0.default.Emoji One/^0.2 xft: want 16x0.0.default.Emoji One/^0.2 t/Object/Fonts.t ........ 7974/15645 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: BadLength (poly request too large or internal Xlib length error), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 t/Object/Fonts.t ........ 8004/15645 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 X Error: RenderBadGlyph (invalid Glyph parameter), request: 139, after unix/font.c:1832 t/Object/Fonts.t ........ 15650/15645 # Failed test 'planned to run 15645 but done_testing() expects 15659' # at t/Object/Fonts.t line 107. # Looks like you planned 15645 tests but ran 15660. # Looks like you failed 5 tests of 15660 run. t/Object/Fonts.t ........ Dubious, test returned 5 (wstat 1280, 0x500) Failed 4/15645 subtests (less 107 skipped subtests: 15534 okay) ... t/Widget/Size.t ......... 6/12 # Failed test 'virtual size restore consistency' # at t/Widget/Size.t line 64. # Structures begin differing at: # $got->[0] = '-1714' # $expected->[0] = '-2' # Failed test 'reparent check 1' # at t/Widget/Size.t line 70. # Structures begin differing at: # $got->[0] = '-1714' # $expected->[0] = '-2' # Failed test 'virtual size runtime consistency' # at t/Widget/Size.t line 75. # Structures begin differing at: # $got->[0] = '-1714' # $expected->[0] = '-2' # Looks like you failed 3 tests of 12. t/Widget/Size.t ......... Dubious, test returned 3 (wstat 768, 0x300) Failed 3/12 subtests ```

Please let me know if you want the full configure output, or other details; I'm happy to help diagnose.

dk commented 8 months ago

Hi Hugo, thanks for the report. Fonts.t I wouldn't worry much about, it quite often hiccups on one or another crazy font, so I finally moved it to the extended tests, but that will be there in 1.71. I'll check out that libdockapp-seg7 font just in case but generally it's not a showstopper.

As for Size.t this one should be more robust, even though it runs at mercy of a window manager. Would you be able share details about your window manager, and/or the system if yours was freshly installed - so I can try to reproduce that under en emulator?

hvds commented 8 months ago

Hi Dmitry, window manager is fvwm2 (Ubuntu package 2.6.7-3). The rc file (attached) is mostly unchanged in nearly 30 years, so probably has quite a lot of irrelevant rubbish in it.

In case it is relevant, I had a full-screen xterm open on the build; usually if there is any attempt to place a window on the screen when there is no room for it, it'll hang on the mouse cursor waiting to be dropped, but I didn't see any such attempt during the tests.

hv-fvwm2rc.txt

dk commented 8 months ago

I could reproduce the problem and even though I didn't fix the root cause, the test doesn't fail now. Could you confirm that it works for you possibly?

hvds commented 8 months ago

I confirm that if I run the test manually with:

PERL_DL_NONLAZY=1 /opt/maths-5.34.0/bin/perl -MExtUtils::Command::MM -MTest::Harness -e 'undef *Test::Harness::Switches; test_harness(0, "blib/lib", "blib/arch")' t/Widget/Size.t

it fails as before; if I manually apply 44b77a26e8 and do the same, it passes.

Since the fix affects only the test file, I'll install and try actually using Prima. :)