This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
INADDR_ANY INADDR_BROADCAST INADDR_LOOPBACK INADDR_NONE
[perl5.git] / t / lib / texttabs.t
CommitLineData
e7db9daf 1#!./perl -w
1a3850a5
GA
2
3BEGIN {
4 chdir 't' if -d 't';
20822f61 5 @INC = '../lib';
1a3850a5
GA
6}
7
3e2ea5df
JH
8@tests = (split(/\nEND\n/s, <<DONE));
9TEST 1 u
10 x
11END
12 x
13END
14TEST 2 e
15 x
16END
17 x
18END
19TEST 3 e
20 x
21 y
22 z
23END
24 x
25 y
26 z
27END
28TEST 4 u
29 x
30 y
31 z
32END
33 x
34 y
35 z
36END
37TEST 5 u
38This Is a test of a line with many embedded tabs
39END
40This Is a test of a line with many embedded tabs
41END
42TEST 6 e
43This Is a test of a line with many embedded tabs
44END
45This Is a test of a line with many embedded tabs
46END
47TEST 7 u
48 x
49END
50 x
51END
52TEST 8 e
53
54
55
1a3850a5 56
3e2ea5df
JH
57
58END
59
60
61
62
63
64END
65TEST 9 u
66
67END
68
69END
70TEST 10 u
71
72
73
74
75
76END
77
78
79
80
81
82END
83TEST 11 u
84foobar IN A 140.174.82.12
85
86END
87foobar IN A 140.174.82.12
1a3850a5 88
3e2ea5df
JH
89END
90DONE
1a3850a5 91
3e2ea5df 92$| = 1;
1a3850a5 93
22458fee
CB
94my $testcount = "1..";
95$testcount .= @tests/2;
96print "$testcount\n";
1a3850a5 97
3e2ea5df
JH
98use Text::Tabs;
99
100$rerun = $ENV{'PERL_DL_NONLAZY'} ? 0 : 1;
101
102$tn = 1;
103while (@tests) {
104 my $in = shift(@tests);
105 my $out = shift(@tests);
1a3850a5 106
3e2ea5df 107 $in =~ s/^TEST\s*(\d+)?\s*(\S+)?\n//;
1a3850a5 108
3e2ea5df
JH
109 if ($2 eq 'e') {
110 $f = \&expand;
111 $fn = 'expand';
112 } else {
113 $f = \&unexpand;
114 $fn = 'unexpand';
115 }
1a3850a5 116
3e2ea5df
JH
117 my $back = &$f($in);
118
119 if ($back eq $out) {
120 print "ok $tn\n";
121 } elsif ($rerun) {
122 my $oi = $in;
123 foreach ($in, $back, $out) {
124 s/\t/^I\t/gs;
125 s/\n/\$\n/gs;
126 }
127 print "------------ input ------------\n";
128 print $in;
129 print "\$\n------------ $fn -----------\n";
130 print $back;
131 print "\$\n------------ expected ---------\n";
132 print $out;
133 print "\$\n-------------------------------\n";
134 $Text::Tabs::debug = 1;
135 my $back = &$f($in);
136 exit(1);
137 } else {
138 print "not ok $tn\n";
139 }
140 $tn++;
141}