1use strict; use warnings; 2 3BEGIN { require './t/lib/ok.pl' } 4use Text::Tabs; 5 6my @tests = (split(/\nEND\n/s, <<DONE)); 7TEST 1 u 8 x 9END 10 x 11END 12TEST 2 e 13 x 14END 15 x 16END 17TEST 3 e 18 x 19 y 20 z 21END 22 x 23 y 24 z 25END 26TEST 4 u 27 x 28 y 29 z 30END 31 x 32 y 33 z 34END 35TEST 5 u 36This Is a test of a line with many embedded tabs 37END 38This Is a test of a line with many embedded tabs 39END 40TEST 6 e 41This Is a test of a line with many embedded tabs 42END 43This Is a test of a line with many embedded tabs 44END 45TEST 7 u 46 x 47END 48 x 49END 50TEST 8 e 51 52 53 54 55 56END 57 58 59 60 61 62END 63TEST 9 u 64 65END 66 67END 68TEST 10 u 69 70 71 72 73 74END 75 76 77 78 79 80END 81TEST 11 u 82foobar IN A 140.174.82.12 83 84END 85foobar IN A 140.174.82.12 86 87END 88DONE 89 90 91my $numtests = scalar(@tests) / 2; 92print "1..$numtests\n"; 93 94while (@tests) { 95 my $in = shift(@tests); 96 my $out = shift(@tests); 97 98 $in =~ s/^TEST\s*(\d+)?\s*(\S+)?\n//; 99 100 my $f = $2 eq 'e' ? \&expand : \&unexpand; 101 102 my $back = &$f($in); 103 104 ok( $back eq $out ); 105} 106