1 | #!./perl
|
---|
2 |
|
---|
3 | BEGIN {
|
---|
4 | chdir 't' if -d 't';
|
---|
5 | @INC = '../lib';
|
---|
6 | }
|
---|
7 |
|
---|
8 | print q(1..21
|
---|
9 | );
|
---|
10 |
|
---|
11 | # This is() function is written to avoid ""
|
---|
12 | my $test = 1;
|
---|
13 | sub is {
|
---|
14 | my($left, $right) = @_;
|
---|
15 |
|
---|
16 | if ($left eq $right) {
|
---|
17 | printf 'ok %d
|
---|
18 | ', $test++;
|
---|
19 | return 1;
|
---|
20 | }
|
---|
21 | foreach ($left, $right) {
|
---|
22 | # Comment out these regexps to map non-printables to ord if the perl under
|
---|
23 | # test is so broken that it's not helping
|
---|
24 | s/([^-+A-Za-z_0-9])/sprintf q{'.chr(%d).'}, ord $1/ge;
|
---|
25 | $_ = sprintf q('%s'), $_;
|
---|
26 | s/^''\.//;
|
---|
27 | s/\.''$//;
|
---|
28 | }
|
---|
29 | printf q(not ok %d - got %s expected %s
|
---|
30 | ), $test++, $left, $right;
|
---|
31 |
|
---|
32 | printf q(# Failed test at line %d
|
---|
33 | ), (caller)[2];
|
---|
34 |
|
---|
35 | return 0;
|
---|
36 | }
|
---|
37 |
|
---|
38 | is ("\x53", chr 83);
|
---|
39 | is ("\x4EE", chr (78) . 'E');
|
---|
40 | is ("\x4i", chr (4) . 'i'); # This will warn
|
---|
41 | is ("\xh", chr (0) . 'h'); # This will warn
|
---|
42 | is ("\xx", chr (0) . 'x'); # This will warn
|
---|
43 | is ("\xx9", chr (0) . 'x9'); # This will warn. \x9 is tab in EBCDIC too?
|
---|
44 | is ("\x9_E", chr (9) . '_E'); # This will warn
|
---|
45 |
|
---|
46 | is ("\x{4E}", chr 78);
|
---|
47 | is ("\x{6_9}", chr 105);
|
---|
48 | is ("\x{_6_3}", chr 99);
|
---|
49 | is ("\x{_6B}", chr 107);
|
---|
50 |
|
---|
51 | is ("\x{9__0}", chr 9); # multiple underscores not allowed.
|
---|
52 | is ("\x{77_}", chr 119); # trailing underscore warns.
|
---|
53 | is ("\x{6FQ}z", chr (111) . 'z');
|
---|
54 |
|
---|
55 | is ("\x{0x4E}", chr 0);
|
---|
56 | is ("\x{x4E}", chr 0);
|
---|
57 |
|
---|
58 | is ("\x{0065}", chr 101);
|
---|
59 | is ("\x{000000000000000000000000000000000000000000000000000000000000000072}",
|
---|
60 | chr 114);
|
---|
61 | is ("\x{0_06_5}", chr 101);
|
---|
62 | is ("\x{1234}", chr 4660);
|
---|
63 | is ("\x{10FFFD}", chr 1114109);
|
---|