1N/A#!./perl -w
1N/A
1N/ABEGIN {
1N/A chdir 't' if -d 't';
1N/A @INC = '../lib';
1N/A}
1N/A
1N/A@tests = (split(/\nEND\n/s, <<DONE));
1N/ATEST1
1N/AThis
1N/Ais
1N/Aa
1N/Atest
1N/AEND
1N/A This
1N/A is
1N/A a
1N/A test
1N/AEND
1N/ATEST2
1N/AThis is a test of a very long line. It should be broken up and put onto multiple lines.
1N/AThis is a test of a very long line. It should be broken up and put onto multiple lines.
1N/A
1N/AThis is a test of a very long line. It should be broken up and put onto multiple lines.
1N/AEND
1N/A This is a test of a very long line. It should be broken up and put onto
1N/A multiple lines.
1N/A This is a test of a very long line. It should be broken up and put onto
1N/A multiple lines.
1N/A
1N/A This is a test of a very long line. It should be broken up and put onto
1N/A multiple lines.
1N/AEND
1N/ATEST3
1N/AThis is a test of a very long line. It should be broken up and put onto multiple lines.
1N/AEND
1N/A This is a test of a very long line. It should be broken up and put onto
1N/A multiple lines.
1N/AEND
1N/ATEST4
1N/AThis is a test of a very long line. It should be broken up and put onto multiple lines.
1N/A
1N/AEND
1N/A This is a test of a very long line. It should be broken up and put onto
1N/A multiple lines.
1N/A
1N/AEND
1N/ATEST5
1N/AThis 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
1N/AEND
1N/A This is a test of a very long line. It should be broken up and put onto
1N/A multiple This is a test of a very long line. It should be broken up and
1N/A put
1N/AEND
1N/ATEST6
1N/A11111111 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
1N/AEND
1N/A 11111111 22222222 33333333 44444444 55555555 66666666 77777777 888888888
1N/A 999999999 aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee ffffffff
1N/A gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmmm nnnnnnnnn
1N/A ooooooooo ppppppppp qqqqqqqqq rrrrrrrrr sssssssss
1N/AEND
1N/ATEST7
1N/Ac3t1d0s6 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
1N/AEND
1N/A c3t1d0s6 c4t1d0s6 c5t1d0s6 c6t1d0s6 c7t1d0s6 c8t1d0s6 c9t1d0s6 c10t1d0s6
1N/A c11t1d0s6 c12t1d0s6 c13t1d0s6 c14t1d0s6 c15t1d0s6 c16t1d0s6 c3t1d0s0
1N/A c4t1d0s0 c5t1d0s0 c6t1d0s0 c7t1d0s0 c8t1d0s0 c9t1d0s0 c10t1d0s0 c11t1d0s0
1N/A c12t1d0s0 c13t1d0s0 c14t1d0s0 c15t1d0s0 c16t1d0s0
1N/AEND
1N/ATEST8
1N/AA test of a very very long word.
1N/Aa123456789b123456789c123456789d123456789e123456789f123456789g123456789g1234567
1N/AEND
1N/A A test of a very very long word.
1N/A a123456789b123456789c123456789d123456789e123456789f123456789g123456789g123
1N/A 4567
1N/AEND
1N/ATEST9
1N/AA test of a very very long word. a123456789b123456789c123456789d123456789e123456789f123456789g123456789g1234567
1N/AEND
1N/A A test of a very very long word.
1N/A a123456789b123456789c123456789d123456789e123456789f123456789g123456789g123
1N/A 4567
1N/AEND
1N/ATEST10
1N/Amy mother once said
1N/A"never eat paste my darling"
1N/Awould that I heeded
1N/AEND
1N/A my mother once said
1N/A "never eat paste my darling"
1N/A would that I heeded
1N/AEND
1N/ATEST11
1N/AThis_is_a_word_that_is_too_long_to_wrap_we_want_to_make_sure_that_the_program_does_not_crash_and_burn
1N/AEND
1N/A This_is_a_word_that_is_too_long_to_wrap_we_want_to_make_sure_that_the_pr
1N/A ogram_does_not_crash_and_burn
1N/AEND
1N/ATEST12
1N/AThis
1N/A
1N/AHas
1N/A
1N/ABlank
1N/A
1N/ALines
1N/A
1N/AEND
1N/A This
1N/A
1N/A Has
1N/A
1N/A Blank
1N/A
1N/A Lines
1N/A
1N/AEND
1N/ADONE
1N/A
1N/A
1N/A$| = 1;
1N/A
1N/Aprint "1..", 2 +@tests, "\n";
1N/A
1N/Ause Text::Wrap;
1N/A
1N/A$rerun = $ENV{'PERL_DL_NONLAZY'} ? 0 : 1;
1N/A
1N/A$tn = 1;
1N/A
1N/A@st = @tests;
1N/Awhile (@st) {
1N/A my $in = shift(@st);
1N/A my $out = shift(@st);
1N/A
1N/A $in =~ s/^TEST(\d+)?\n//;
1N/A
1N/A my $back = wrap(' ', ' ', $in);
1N/A
1N/A if ($back eq $out) {
1N/A print "ok $tn\n";
1N/A } elsif ($rerun) {
1N/A my $oi = $in;
1N/A foreach ($in, $back, $out) {
1N/A s/\t/^I\t/gs;
1N/A s/\n/\$\n/gs;
1N/A }
1N/A print "------------ input ------------\n";
1N/A print $in;
1N/A print "\n------------ output -----------\n";
1N/A print $back;
1N/A print "\n------------ expected ---------\n";
1N/A print $out;
1N/A print "\n-------------------------------\n";
1N/A $Text::Wrap::debug = 1;
1N/A wrap(' ', ' ', $oi);
1N/A exit(1);
1N/A } else {
1N/A print "not ok $tn\n";
1N/A }
1N/A $tn++;
1N/A
1N/A}
1N/A
1N/A@st = @tests;
1N/Awhile(@st) {
1N/A my $in = shift(@st);
1N/A my $out = shift(@st);
1N/A
1N/A $in =~ s/^TEST(\d+)?\n//;
1N/A
1N/A my @in = split("\n", $in, -1);
1N/A @in = ((map { "$_\n" } @in[0..$#in-1]), $in[-1]);
1N/A
1N/A my $back = wrap(' ', ' ', @in);
1N/A
1N/A if ($back eq $out) {
1N/A print "ok $tn\n";
1N/A } elsif ($rerun) {
1N/A my $oi = $in;
1N/A foreach ($in, $back, $out) {
1N/A s/\t/^I\t/gs;
1N/A s/\n/\$\n/gs;
1N/A }
1N/A print "------------ input2 ------------\n";
1N/A print $in;
1N/A print "\n------------ output2 -----------\n";
1N/A print $back;
1N/A print "\n------------ expected2 ---------\n";
1N/A print $out;
1N/A print "\n-------------------------------\n";
1N/A $Text::Wrap::debug = 1;
1N/A wrap(' ', ' ', $oi);
1N/A exit(1);
1N/A } else {
1N/A print "not ok $tn\n";
1N/A }
1N/A $tn++;
1N/A}
1N/A
1N/A$Text::Wrap::huge = 'overflow';
1N/A
1N/Amy $tw = 'This_is_a_word_that_is_too_long_to_wrap_we_want_to_make_sure_that_the_program_does_not_crash_and_burn';
1N/Amy $w = wrap('zzz','yyy',$tw);
1N/Aprint (($w eq "zzz$tw") ? "ok $tn\n" : "not ok $tn");
1N/A$tn++;
1N/A
1N/A{
1N/A local $Text::Wrap::columns = 10;
1N/A local $Text::Wrap::huge = "wrap";
1N/A print ((wrap("verylongindent", "", "foo") eq "verylongindent\nfoo") ? "ok $tn\n" : "not ok $tn");
1N/A $tn++;
1N/A}