This is latest set of results.
This is likely to be "what you get" for 5.7.1 unless someone else
has some time to tune the tests.
As far as I can tell, with the possible exception of scripts-in
utf-16 (who cares?) and "ranges" in regular
expressions/tr where spec' isn't clear to me, perl is now
working "as it should" (IMHO).
Remaining issues are with the .t files.
It would probably be a good idea for someone _else_ to tune those
as that would be a cross-check on what I implemented.
I explain away the fails below:
Failed 20/308 test scripts, 93.51% okay. 190/22961 subtests failed, 99.17% okay.
Failed Test Status Wstat Total Fail Failed List of Failed
--------------------------------------------------------------------------------
comp/require.t 23 3 13.04% 21-23
io/utf8.t 25 10 40.00% 6-9, 15, 19-20, 23-25
lib/charnames.t 16 3 18.75% 4-5, 15
lib/digest.t 3 2 66.67% 1-2
lib/glob-basic.t 11 2 18.18% 10-11
lib/io_multihomed.t 49 12544 8 8 100.00% 1-8
lib/io_sock.t 49 12544 20 20 100.00% 1-20
lib/io_udp.t 49 12544 7 7 100.00% 1-7
lib/io_unix.t 113 28928 5 3 60.00% 3-5
lib/md5-file.t 2 1 50.00% 1
lib/mimeqp.t 24 11 45.83% 2-6, 19-24
lib/xs-typemap.t 129 33024 78 78 100.00% 1-78
op/append.t 255 65280 13 7 53.85% 7-13
op/bop.t 44 3 6.82% 36-38
op/pat.t 581 6 1.03% 234-235, 238, 240, 242-243
op/tr.t 65 3 4.62% 50, 58-59
op/vec.t 30 1 3.33% 27
op/ver.t 28 3 10.71% 19, 21, 23
pragma/locale.t 129 33024 116 18 15.52% 99-116
pragma/warnings.t 421 1 0.24% 73
13 tests and 95 subtests skipped.
real 34m52.96s
user 7m28.11s
sys 2m29.37s
Reasons:
-----------------------------------------------------------------------------
comp/require.t 23 3 13.04% 21-23
The utf-16 BOM stuff needs work if anyone is likely to care,
or skipping.
io/utf8.t 25 10 40.00% 6-9, 15, 19-20, 23-25
Test needs tuning to check for UTF-EBCDIC output.
I am going to document that open($fh,":utf8",...) produces UTF-EBCDIC
on EBCDIC. This is in keeping with ":utf8" IO being the "normal way
to hold Unicode text".
Encode will (eventually) get fixed so that
open($fh,"encoding(UTF-8)",...)
will give you true UTF-8 if that is what you wanted.
(And perhaps ASCIC machines will be able to say encoding(UTF-EBCDIC).)
lib/charnames.t 16 3 18.75% 4-5, 15
Test needs tuning to check for UTF-EBCDIC encoded chars.
lib/digest.t 3 2 66.67% 1-2
Digest of EBCDIC isn't same as ASCII.
lib/glob-basic.t 11 2 18.18% 10-11
Sort order is EBCDIC not ASCII.
lib/io_multihomed.t 49 12544 8 8 100.00% 1-8
lib/io_sock.t 49 12544 20 20 100.00% 1-20
lib/io_udp.t 49 12544 7 7 100.00% 1-7
lib/io_unix.t 113 28928 5 3 60.00% 3-5
TI's mainframe has very bare /etc/* and getprotobyname() et. al.
don't work. Could do with testing ...
lib/md5-file.t 2 1 50.00% 1
EBDCIC checksum needs re-generating. (One passes so basics seem
to be ok.)
lib/mimeqp.t 24 11 45.83% 2-6, 19-24
Now runs, but of course produces =XX where XX is EBCDIC.
I would need to check the RFCs to see if that is what is expected.
lib/xs-typemap.t 129 33024 78 78 100.00% 1-78
Not looked at it, may have had out-of-date version anyway, it is a new
test and my os390 perl was static-linked.
op/append.t 255 65280 13 7 53.85% 7-13
This one is result of the following revolting hack in the test:
my($a, $ab) = ("\141", "\141\000\142");
my($u, $ub) = map pack("U0a*", $_), $a, $ab;
The $u case says mark-this-as-UTF-X, then verbatim copy these bytes.
The bytes in question are coding violation in UTF-EBCDIC so
perl objects (with a "die").
Test needs re-writing or another magic number chosen which is legal
both places.
op/bop.t 44 3 6.82% 36-38
36 and 37 are coding length assumptions which don't hold for UTF-EBCDIC.
38 is caused by fact that UTF-EBCDIC cannot represent 0xFFFFFFFF.
so ~chr(0) does not exist.
op/pat.t 581 6 1.03% 234-235, 238, 240, 242-243
234,235,238 & 240 are /\C/ encoding assumptions.
242-243 is testing legacy EBCDIC range gap hack, and is probably broken
by "use re 'asciirange'" which made other tests work ;-).
op/tr.t 65 3 4.62% 50, 58-59
Range issues - needs at least discussion, possible use of new
use re 'asciirange' (once toke.c honours it for tr///)
to clarify what is being tested.
op/vec.t 30 1 3.33% 27
Messing with guts of UTF-X encoded thing with vec(), and then
looking for byte pattern - good luck tuning it!
op/ver.t 28 3 10.71% 19, 21, 23
Apparently out-of-date EBCDIC specific checks.
pragma/locale.t 129 33024 116 18 15.52% 99-116
Suspect the machine ...
pragma/warnings.t 421 1 0.24% 73
13 tests and 95 subtests skipped.
use warnings 'once' report is stash key order, that is different
when $x and $z have EBCDIC x and z.
--
Nick Ing-Simmons