This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Test case for C<undef %File::Glob::>
[perl5.git] / t / op / length.t
CommitLineData
9dc04555
JH
1#!./perl
2
3BEGIN {
4 chdir 't' if -d 't';
5 @INC = '../lib';
6}
7
8print "1..13\n";
9
10print "not " unless length("") == 0;
11print "ok 1\n";
12
13print "not " unless length("abc") == 3;
14print "ok 2\n";
15
16$_ = "foobar";
17print "not " unless length() == 6;
18print "ok 3\n";
19
20# Okay, so that wasn't very challenging. Let's go Unicode.
21
22{
23 my $a = "\x{41}";
24
25 print "not " unless length($a) == 1;
26 print "ok 4\n";
27 $test++;
28
29 use bytes;
30 print "not " unless $a eq "\x41" && length($a) == 1;
31 print "ok 5\n";
32 $test++;
33}
34
35{
945c54fd 36 my $a = pack("U", 0x80);
c4d5f83a 37
9dc04555
JH
38 print "not " unless length($a) == 1;
39 print "ok 6\n";
40 $test++;
c4d5f83a 41
9dc04555 42 use bytes;
c4d5f83a
NIS
43 if (ord('A') == 193)
44 {
45 printf "#%vx for 0x80\n",$a;
46 print "not " unless $a eq "\x8a\x67" && length($a) == 2;
47 }
48 else
49 {
50 print "not " unless $a eq "\xc2\x80" && length($a) == 2;
51 }
9dc04555
JH
52 print "ok 7\n";
53 $test++;
54}
55
56{
57 my $a = "\x{100}";
c4d5f83a 58
9dc04555
JH
59 print "not " unless length($a) == 1;
60 print "ok 8\n";
61 $test++;
c4d5f83a 62
9dc04555 63 use bytes;
c4d5f83a
NIS
64 if (ord('A') == 193)
65 {
66 printf "#%vx for 0x100\n",$a;
67 print "not " unless $a eq "\x8c\x41" && length($a) == 2;
68 }
69 else
70 {
71 print "not " unless $a eq "\xc4\x80" && length($a) == 2;
72 }
9dc04555
JH
73 print "ok 9\n";
74 $test++;
75}
76
77{
78 my $a = "\x{100}\x{80}";
c4d5f83a 79
9dc04555
JH
80 print "not " unless length($a) == 2;
81 print "ok 10\n";
82 $test++;
c4d5f83a 83
9dc04555 84 use bytes;
c4d5f83a
NIS
85 if (ord('A') == 193)
86 {
87 printf "#%vx for 0x100 0x80\n",$a;
88 print "not " unless $a eq "\x8c\x41\x8a\x67" && length($a) == 4;
89 }
90 else
91 {
92 print "not " unless $a eq "\xc4\x80\xc2\x80" && length($a) == 4;
93 }
9dc04555
JH
94 print "ok 11\n";
95 $test++;
96}
97
98{
99 my $a = "\x{80}\x{100}";
c4d5f83a 100
9dc04555
JH
101 print "not " unless length($a) == 2;
102 print "ok 12\n";
103 $test++;
c4d5f83a 104
9dc04555 105 use bytes;
c4d5f83a
NIS
106 if (ord('A') == 193)
107 {
108 printf "#%vx for 0x80 0x100\n",$a;
109 print "not " unless $a eq "\x8a\x67\x8c\x41" && length($a) == 4;
110 }
111 else
112 {
113 print "not " unless $a eq "\xc2\x80\xc4\x80" && length($a) == 4;
114 }
9dc04555
JH
115 print "ok 13\n";
116 $test++;
117}