threads branch: t/pmc/filehandle.t: test results differ between gcc and g++ builds

James E Keenan jkeen at verizon.net
Tue Sep 4 01:41:28 UTC 2012


As part of our discussion as to whether the threads branch is ready to 
be merged into master, we have had to focus considerable attention on 
t/pmc/filehandle.t.

Two tests in this file are TODO-ed.  The reason for the first is 
self-documented:

# GH #535 pir_output_is( <<'CODE', <<'OUT', 'print, read, and readline - 
asynchronous', todo => 'not yet implemented' );

However, the second test, #28, is in TODO-ed status because we cannot 
get it to PASS on all the platforms on which we habitually test.

pir_output_is( <<"CODE", <<'OUT', 'write after buffered read', todo => 
'GH #811 Write error: No space left on device on swap fs' );

I think we should note, however, that it is not simply the case that 
this test fails on older or more obscure operating systems.  It fails in 
very elementary cases on our lead developers' favorite OS/platform: 
Linux/i386.

If I build Parrot on this platform -- as I have been doing for six years 
-- with an "all-gcc" build -- using gcc for 'cc', 'link' and 'ld' -- 
t/pmc/filehandle.t #28 fails, meaning that the file as a whole PASSes 
only because of the TODO.

not ok 28 - write after buffered read # TODO GH #811 Write error: No 
space left on device on swap fs

#   Failed (TODO) test 'write after buffered read'
#   at t/pmc/filehandle.t line 929.
#          got: '10
# abcdefghij
# '
#     expected: '10
# abcde#####klmno
# '
ok 29 - small reads and seeks
ok 30 - partial multibyte char in buffer
ok 31 - .write_bytes
ok 32 - .read_bytes
ok
All tests successful.
Files=1, Tests=32,  2 wallclock secs ( 0.03 usr  0.01 sys +  0.82 cusr 
0.32 csys =  1.18 CPU)
Result: PASS

But when I test with "all-g++ build -- using g++ for 'cc', 'link' and 
'ld' -- t/pmc/filehandle.t #28 passes, meaning that the test harness 
reports an unexpected PASS.

ok 28 - write after buffered read # TODO GH #811 Write error: No space 
left on device on swap fs
...
t/pmc/filehandle.t (Wstat: 0 Tests: 32 Failed: 0)
   TODO passed:   28

(These results were run at commit 5709835825; Sept 02 2012.  But I've 
submitted dozens of smolders with the same results in recent months.)

In my experience, it's really rare that we get consistently different 
test results between all-gcc and all-g++ builds on our most heavily 
tested platform.

Any thoughts as to the cause of this discrepancy?

Thank you very much.
Jim Keenan



More information about the parrot-dev mailing list