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

Reply via email to