|
| 1 | +# Before `make install' is performed this script should be runnable with |
| 2 | +# `make test'. After `make install' it should work as `perl test.pl' |
| 3 | + |
| 4 | +######################### We start with some black magic to print on failure. |
| 5 | + |
| 6 | +# Change 1..1 below to 1..last_test_to_print . |
| 7 | +# (It may become useful if the test is moved to ./t subdirectory.) |
| 8 | + |
| 9 | +BEGIN { $| = 1; print "1..12\n"; } |
| 10 | +END {print "not ok 1\n" unless $loaded;} |
| 11 | +use String::DiffLine qw(diffline); |
| 12 | +$loaded = 1; |
| 13 | +print "ok 1\n"; |
| 14 | + |
| 15 | +######################### End of black magic. |
| 16 | + |
| 17 | +# Insert your test code below (better if it prints "ok 13" |
| 18 | +# (correspondingly "not ok 13") depending on the success of chunk 13 |
| 19 | +# of the test code): |
| 20 | + |
| 21 | +my @tests=( |
| 22 | + [2 ,sub{}, ["abcdef" ,"abcxyz" ],[3,1,3], ], |
| 23 | + [3 ,sub{}, ["abcdef" ,"abc" ],[3,1,3], ], |
| 24 | + [4 ,sub{}, ["abc" ,"abc" ],[undef,1,3],], |
| 25 | + [5 ,sub{}, ["abc\ndefg" ,"abc\ndxy" ],[5,2,1], ], |
| 26 | + [6 ,sub{}, ["abc\n\ndefg" ,"abc\n\ndxy" ],[6,3,1], ], |
| 27 | + [7 ,sub{}, ["abc\ndef\n" ,"abc\ndef\n" ],[undef,3,0],], |
| 28 | + [8 ,sub{$/="x"}, ["abcxdefg" ,"abcxdefy" ],[7,2,3], ], |
| 29 | + [9 ,sub{$/=""} , ["abc\n\n\ndefg","abc\n\n\nxy" ],[6,2,0], ], |
| 30 | + [10,sub{$/="121"},["1212121def" ,"1212121dex" ],[9,3,2], ], |
| 31 | + [11,sub{$/="112"},["11121112de" ,"11121112df" ],[9,3,1], ], |
| 32 | + [12,sub{$/="112"},["112112x" ,"112112ab" ],[6,3,0], ], |
| 33 | + ); |
| 34 | + |
| 35 | +foreach my $test (@tests) |
| 36 | +{ |
| 37 | + my($n,$s,$in,$tout)=@$test; |
| 38 | + &$s; |
| 39 | + my(@in2)=@$in; |
| 40 | + my $nl=$/; |
| 41 | + s/\n/\\n/g foreach ($nl,@in2); |
| 42 | + my(@out2)=my(@out)=diffline($in->[0],$in->[1]); |
| 43 | + my $fail=grep($_ ne shift @out,@$tout); |
| 44 | + local $"=","; |
| 45 | + print "\$/=$nl in=@in2 out=@out2 expected=@$tout\n"; |
| 46 | + printf "%s %d\n",($fail?"not ok":"ok"),$n; |
| 47 | +} |
0 commit comments