Initial import from FreeBSD RELENG_4:
[games.git] / contrib / perl5 / t / lib / textwrap.t
1 #!./perl -w
2
3 BEGIN {
4     chdir 't' if -d 't';
5     @INC = '../lib';
6 }
7
8 @tests = (split(/\nEND\n/s, <<DONE));
9 TEST1
10 This 
11 is
12 a
13 test
14 END
15    This 
16  is
17  a
18  test
19 END
20 TEST2
21 This is a test of a very long line.  It should be broken up and put onto multiple lines.
22 This is a test of a very long line.  It should be broken up and put onto multiple lines.
23
24 This is a test of a very long line.  It should be broken up and put onto multiple lines.
25 END
26    This is a test of a very long line.  It should be broken up and put onto
27  multiple lines.
28  This is a test of a very long line.  It should be broken up and put onto
29  multiple lines.
30  
31  This is a test of a very long line.  It should be broken up and put onto
32  multiple lines.
33 END
34 TEST3
35 This is a test of a very long line.  It should be broken up and put onto multiple lines.
36 END
37    This is a test of a very long line.  It should be broken up and put onto
38  multiple lines.
39 END
40 TEST4
41 This is a test of a very long line.  It should be broken up and put onto multiple lines.
42
43 END
44    This is a test of a very long line.  It should be broken up and put onto
45  multiple lines.
46
47 END
48 TEST5
49 This is a test of a very long line. It should be broken up and put onto multiple This is a test of a very long line. It should be broken up and put
50 END
51    This is a test of a very long line. It should be broken up and put onto
52  multiple This is a test of a very long line. It should be broken up and
53  put
54 END
55 TEST6
56 11111111 22222222 33333333 44444444 55555555 66666666 77777777 888888888 999999999 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee ffffffff gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmmm nnnnnnnnn ooooooooo ppppppppp qqqqqqqqq rrrrrrrrr sssssssss
57 END
58    11111111 22222222 33333333 44444444 55555555 66666666 77777777 888888888
59  999999999 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee ffffffff
60  gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmmm nnnnnnnnn
61  ooooooooo ppppppppp qqqqqqqqq rrrrrrrrr sssssssss
62 END
63 TEST7
64 c3t1d0s6 c4t1d0s6 c5t1d0s6 c6t1d0s6 c7t1d0s6 c8t1d0s6 c9t1d0s6 c10t1d0s6 c11t1d0s6 c12t1d0s6 c13t1d0s6 c14t1d0s6 c15t1d0s6 c16t1d0s6 c3t1d0s0 c4t1d0s0 c5t1d0s0 c6t1d0s0 c7t1d0s0 c8t1d0s0 c9t1d0s0 c10t1d0s0 c11t1d0s0 c12t1d0s0 c13t1d0s0 c14t1d0s0 c15t1d0s0 c16t1d0s0
65 END
66    c3t1d0s6 c4t1d0s6 c5t1d0s6 c6t1d0s6 c7t1d0s6 c8t1d0s6 c9t1d0s6 c10t1d0s6
67  c11t1d0s6 c12t1d0s6 c13t1d0s6 c14t1d0s6 c15t1d0s6 c16t1d0s6 c3t1d0s0
68  c4t1d0s0 c5t1d0s0 c6t1d0s0 c7t1d0s0 c8t1d0s0 c9t1d0s0 c10t1d0s0 c11t1d0s0
69  c12t1d0s0 c13t1d0s0 c14t1d0s0 c15t1d0s0 c16t1d0s0
70 END
71 TEST8
72 A test of a very very long word.
73 a123456789b123456789c123456789d123456789e123456789f123456789g123456789g1234567
74 END
75    A test of a very very long word.
76  a123456789b123456789c123456789d123456789e123456789f123456789g123456789g123
77  4567
78 END
79 TEST9
80 A test of a very very long word.  a123456789b123456789c123456789d123456789e123456789f123456789g123456789g1234567
81 END
82    A test of a very very long word. 
83  a123456789b123456789c123456789d123456789e123456789f123456789g123456789g123
84  4567
85 END
86 DONE
87
88
89 $| = 1;
90
91 print "1..", @tests/2, "\n";
92
93 use Text::Wrap;
94
95 $rerun = $ENV{'PERL_DL_NONLAZY'} ? 0 : 1;
96
97 $tn = 1;
98 while (@tests) {
99         my $in = shift(@tests);
100         my $out = shift(@tests);
101
102         $in =~ s/^TEST(\d+)?\n//;
103
104         my $back = wrap('   ', ' ', $in);
105
106         if ($back eq $out) {
107                 print "ok $tn\n";
108         } elsif ($rerun) {
109                 my $oi = $in;
110                 foreach ($in, $back, $out) {
111                         s/\t/^I\t/gs;
112                         s/\n/\$\n/gs;
113                 }
114                 print "------------ input ------------\n";
115                 print $in;
116                 print "\n------------ output -----------\n";
117                 print $back;
118                 print "\n------------ expected ---------\n";
119                 print $out;
120                 print "\n-------------------------------\n";
121                 $Text::Wrap::debug = 1;
122                 wrap('   ', ' ', $oi);
123                 exit(1);
124         } else {
125                 print "not ok $tn\n";
126         }
127         $tn++;
128 }