1 # Created with: ./make_t.pl
13 #10 long_line.long_line
24 # To locate test #13 you can search for its name or the string '#13'
36 ###########################################
37 # BEGIN SECTION 1: Parameter combinations #
38 ###########################################
41 'comments1' => <<'----------',
42 # testing --fixed-position-side-comment=40,
43 # --ignore-side-comment-lengths,
44 # --noindent-block-comments,
45 # --nohanging-side-comments
46 # --static-side-comments
48 -fpsc=40 -iscl -nibc -nhsc -ssc -trp
50 'comments2' => <<'----------',
51 # testing --minimum-space-to-comment=10, --delete-block-comments, --delete-pod
54 'comments3' => <<'----------',
55 # testing --maximum-consecutive-blank-lines=2 and --indent-spaced-block-comments --no-format-skipping
58 'comments4' => <<'----------',
59 # testing --keep-old-blank-lines=2 [=all] and
60 # --nooutdent-long-comments and
61 # --outdent-static-block-comments
62 # --format-skipping-begin and --format-skipping-end
63 -kbl=2 -nolc -osbc -fsb='#<{2,}' -fse='#>{2,}'
66 'long_line' => "-l=0",
67 'pbp' => "-pbp -nst -nse",
69 "-pbp -nst --ignore-side-comment-lengths --converge -l=0 -q",
73 ############################
74 # BEGIN SECTION 2: Sources #
75 ############################
78 'align32' => <<'----------',
79 # should not get alignment here:
80 my $c_sub_khwnd = WindowFromId $k_hwnd, 0x8008; # FID_CLIENT
81 ok $c_sub_khwnd, 'have kids client window';
82 ok IsWindow($c_sub_khwnd), 'IsWindow works on the client';
85 'bos' => <<'----------',
86 $top_label->set_text( gettext("check permissions.") )
90 'comments' => <<'----------',
92 # an initial hash bang line cannot be deleted with -dp
93 #<<< format skipping of first code can cause an error message in perltidy v20210625
94 my $rvar = [ [ 1, 2, 3 ], [ 4, 5, 6 ] ];
96 sub length { return length($_[0]) } # side comment
97 # hanging side comment
98 # very longgggggggggggggggggggggggggggggggggggggggggggggggggggg hanging side comment
100 # a blank will be inserted to prevent forming a hanging side comment
101 sub macro_get_names { #
103 # %name = macro_get_names(); (key=macrohandle, value=macroname)
105 ##local(%name); # a static block comment without indentation
106 local(%name)=(); ## a static side comment to test -ssc
108 # a spaced block comment to test -isbc
110 # a very long comment for testing the parameter --nooutdent-long-comments (or -nolc)
111 $name{$_} = $mac_ext[$idx{$mac_exti[$_]}];
112 $vmsfile =~ s/;[\d\-]*$//; # very long side comment; Clip off version number; we can use a newer version as well
121 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
122 ## 'Dec', 'Nov' [a static block comment with indentation]
126 { # this side comment will not align
127 my $IGNORE = 0; # This is a side comment
128 # This is a hanging side comment
131 # A blank line interrupts the hsc's; this is a block comment
135 # side comments at different indentation levels should not normally be aligned
136 { { { { { ${msg} = "Hello World!"; print "My message: ${msg}\n"; } } #end level 4
142 #<<< do not let perltidy touch this unless -nfs is set
150 #<< test alternate format skipping string
160 # some blank lines follow
165 Some pod before __END__ to delete with -dp
172 # text following __END__, not a comment
176 Some pod after __END__ to delete with -dp and trim with -trp
182 'long_line' => <<'----------',
183 # This single line should break into multiple lines, even with -l=0
184 # sub 'tight_paren_follows' should break the do block
185 $body = SOAP::Data->name('~V:Fault')->attr( { 'xmlns' => $SOAP::Constants::NS_ENV } )->value( \SOAP::Data->set_value( SOAP::Data->name( faultcode => qualify( $self->namespace => shift(@parameters) ) ), SOAP::Data->name( faultstring => shift(@parameters) ), @parameters ? SOAP::Data->name( detail => do { my $detail = shift(@parameters); ref $detail ? \$detail : $detail } ) : (), @parameters ? SOAP::Data->name( faultactor => shift(@parameters) ) : (), ) );
188 'pbp6' => <<'----------',
189 # These formerly blinked with -pbp
190 return $width1*$common_length*(
193 - $RTHSQPWSQ*atan2(1,$RTHSQPWSQ)
195 ($WSQP1*$HSQP1)/(1+$WSQ+$HSQ)
196 *($WSQ*(1+$WSQ+$HSQ)/($WSQP1*$HSQPWSQ))**$WSQ
197 *($HSQ*(1+$WSQ+$HSQ)/($HSQP1*$HSQPWSQ))**$HSQ
201 my $oldSec = ( 60 * $session->{originalStartHour} + $session->{originalStartMin} ) * 60;
205 'rperl' => <<'----------',
206 # Some test cases for RPerl, https://github.com/wbraswell/rperl/
207 # These must not remain as single lines with default formatting and long lines
208 sub multiply_return_F { { my number $RETURN_TYPE }; ( my integer $multiplicand, my number $multiplier ) = @ARG; return $multiplicand * $multiplier; }
210 sub empty_method { { my void::method $RETURN_TYPE }; return 2; }
212 sub foo_subroutine_in_main { { my void $RETURN_TYPE }; print 'Howdy from foo_subroutine_in_main()...', "\n"; return; }
215 'rt132059' => <<'----------',
216 # Test deleting comments and pod
218 sub f { # a side comment
219 # a hanging side comment
231 'signature' => <<'----------',
232 # git22: Preserve function signature on a single line
233 # This behavior is controlled by 'sub weld_signature_parens'
235 sub foo($x, $y="abcd") {
239 # do not break after closing do brace
240 sub foo($x, $y=do{{}}, $z=42, $w=do{"abcd"}) {
244 # This signature should get put back on one line
246 $p = do { $z += 10; 222 }, $a = do { $z++; 333 }
249 # anonymous sub with signature
250 my $subref = sub ( $cat, $id = do { state $auto_id = 0; $auto_id++ } ) {
254 # signature and prototype and attribute
255 sub foo1 ( $x, $y ) : prototype ( $$ ) : shared { }
257 sub foo11 ( $thing, % ) { print $thing }
259 sub animal4 ( $cat, $ = ) { } # second argument is optional
277 "first=$first, third=$third"
282 sub fnord (&\%) : switch(10,foo(7,3)) : expensive;
283 sub plugh () : Ugly('\(") : Bad;
286 'ternary4' => <<'----------',
288 *{"${callpkg}::$sym"} =
289 $type eq '&' ? \&{"${pkg}::$sym"} #
290 : $type eq '$' ? \${"${pkg}::$sym"} #
291 : $type eq '@' ? \@{"${pkg}::$sym"}
292 : $type eq '%' ? \%{"${pkg}::$sym"} # side comment
293 : $type eq '*' ? *{"${pkg}::$sym"} #
294 : do { require Carp; Carp::croak("Can't export symbol: $type$sym") };
297 'wn7' => <<'----------',
298 # do not weld paren to opening one-line non-paren container
299 $Self->_Add($SortOrderDisplay{$Field->GenerateFieldForSelectSQL()});
301 # this will not get welded with -wn
303 do { 1; !!(my $x = bless []); }
308 ####################################
309 # BEGIN SECTION 3: Expected output #
310 ####################################
316 expect => <<'#1...........',
317 # should not get alignment here:
318 my $c_sub_khwnd = WindowFromId $k_hwnd, 0x8008; # FID_CLIENT
319 ok $c_sub_khwnd, 'have kids client window';
320 ok IsWindow($c_sub_khwnd), 'IsWindow works on the client';
327 expect => <<'#2...........',
328 $top_label->set_text( gettext("check permissions.") )
336 expect => <<'#3...........',
337 $top_label->set_text( gettext("check permissions.") );
341 'comments.comments1' => {
342 source => "comments",
343 params => "comments1",
344 expect => <<'#4...........',
346 # an initial hash bang line cannot be deleted with -dp
347 #<<< format skipping of first code can cause an error message in perltidy v20210625
348 my $rvar = [ [ 1, 2, 3 ], [ 4, 5, 6 ] ];
350 sub length { return length( $_[0] ) } # side comment
352 # hanging side comment
353 # very longgggggggggggggggggggggggggggggggggggggggggggggggggggg hanging side comment
355 # a blank will be inserted to prevent forming a hanging side comment
356 sub macro_get_names { #
359 # %name = macro_get_names(); (key=macrohandle, value=macroname)
361 ##local(%name); # a static block comment without indentation
362 local (%name) = (); ## a static side comment to test -ssc
364 # a spaced block comment to test -isbc
365 for ( 0 .. $#mac_ver ) {
367 # a very long comment for testing the parameter --nooutdent-long-comments (or -nolc)
368 $name{$_} = $mac_ext[ $idx{ $mac_exti[$_] } ];
369 $vmsfile =~ s/;[\d\-]*$//; # very long side comment; Clip off version number; we can use a newer version as well
376 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
377 ## 'Dec', 'Nov' [a static block comment with indentation]
381 { # this side comment will not align
382 my $IGNORE = 0; # This is a side comment
384 # This is a hanging side comment
387 # A blank line interrupts the hsc's; this is a block comment
391 # side comments at different indentation levels should not normally be aligned
396 { ${msg} = "Hello World!"; print "My message: ${msg}\n"; }
402 #<<< do not let perltidy touch this unless -nfs is set
410 #<< test alternate format skipping string
411 my @list = ( 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, );
415 # some blank lines follow
418 Some pod before __END__ to delete with -dp
424 # text following __END__, not a comment
428 Some pod after __END__ to delete with -dp and trim with -trp
435 'comments.comments2' => {
436 source => "comments",
437 params => "comments2",
438 expect => <<'#5...........',
440 #<<< format skipping of first code can cause an error message in perltidy v20210625
441 my $rvar = [ [ 1, 2, 3 ], [ 4, 5, 6 ] ];
443 sub length { return length( $_[0] ) } # side comment
444 # hanging side comment
445 # very longgggggggggggggggggggggggggggggggggggggggggggggggggggg hanging side comment
447 sub macro_get_names { #
448 local (%name) = (); ## a static side comment to test -ssc
450 for ( 0 .. $#mac_ver ) {
451 $name{$_} = $mac_ext[ $idx{ $mac_exti[$_] } ];
452 $vmsfile =~ s/;[\d\-]*$//
453 ; # very long side comment; Clip off version number; we can use a newer version as well
460 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
464 { # this side comment will not align
465 my $IGNORE = 0; # This is a side comment
466 # This is a hanging side comment
475 { ${msg} = "Hello World!"; print "My message: ${msg}\n"; }
481 #<<< do not let perltidy touch this unless -nfs is set
489 my @list = ( 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, );
495 # text following __END__, not a comment
503 'comments.comments3' => {
504 source => "comments",
505 params => "comments3",
506 expect => <<'#6...........',
508 # an initial hash bang line cannot be deleted with -dp
509 #<<< format skipping of first code can cause an error message in perltidy v20210625
510 my $rvar = [ [ 1, 2, 3 ], [ 4, 5, 6 ] ];
513 sub length { return length( $_[0] ) } # side comment
514 # hanging side comment
515 # very longgggggggggggggggggggggggggggggggggggggggggggggggggggg hanging side comment
517 # a blank will be inserted to prevent forming a hanging side comment
518 sub macro_get_names { #
521 # %name = macro_get_names(); (key=macrohandle, value=macroname)
523 ##local(%name); # a static block comment without indentation
524 local (%name) = (); ## a static side comment to test -ssc
526 # a spaced block comment to test -isbc
527 for ( 0 .. $#mac_ver ) {
529 # a very long comment for testing the parameter --nooutdent-long-comments (or -nolc)
530 $name{$_} = $mac_ext[ $idx{ $mac_exti[$_] } ];
531 $vmsfile =~ s/;[\d\-]*$//
532 ; # very long side comment; Clip off version number; we can use a newer version as well
540 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
541 ## 'Dec', 'Nov' [a static block comment with indentation]
546 { # this side comment will not align
547 my $IGNORE = 0; # This is a side comment
548 # This is a hanging side comment
551 # A blank line interrupts the hsc's; this is a block comment
555 # side comments at different indentation levels should not normally be aligned
560 { ${msg} = "Hello World!"; print "My message: ${msg}\n"; }
567 #<<< do not let perltidy touch this unless -nfs is set
568 my @list = ( 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, );
572 #<< test alternate format skipping string
573 my @list = ( 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, );
578 # some blank lines follow
582 Some pod before __END__ to delete with -dp
589 # text following __END__, not a comment
593 Some pod after __END__ to delete with -dp and trim with -trp
600 'comments.comments4' => {
601 source => "comments",
602 params => "comments4",
603 expect => <<'#7...........',
605 # an initial hash bang line cannot be deleted with -dp
606 #<<< format skipping of first code can cause an error message in perltidy v20210625
607 my $rvar = [ [ 1, 2, 3 ], [ 4, 5, 6 ] ];
609 sub length { return length( $_[0] ) } # side comment
610 # hanging side comment
611 # very longgggggggggggggggggggggggggggggggggggggggggggggggggggg hanging side comment
613 # a blank will be inserted to prevent forming a hanging side comment
614 sub macro_get_names { #
617 # %name = macro_get_names(); (key=macrohandle, value=macroname)
619 ##local(%name); # a static block comment without indentation
620 local (%name) = (); ## a static side comment to test -ssc
622 # a spaced block comment to test -isbc
623 for ( 0 .. $#mac_ver ) {
625 # a very long comment for testing the parameter --nooutdent-long-comments (or -nolc)
626 $name{$_} = $mac_ext[ $idx{ $mac_exti[$_] } ];
627 $vmsfile =~ s/;[\d\-]*$//
628 ; # very long side comment; Clip off version number; we can use a newer version as well
637 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
638 ## 'Dec', 'Nov' [a static block comment with indentation]
643 { # this side comment will not align
644 my $IGNORE = 0; # This is a side comment
645 # This is a hanging side comment
648 # A blank line interrupts the hsc's; this is a block comment
652 # side comments at different indentation levels should not normally be aligned
657 { ${msg} = "Hello World!"; print "My message: ${msg}\n"; }
664 #<<< do not let perltidy touch this unless -nfs is set
672 #<< test alternate format skipping string
682 # some blank lines follow
687 Some pod before __END__ to delete with -dp
694 # text following __END__, not a comment
698 Some pod after __END__ to delete with -dp and trim with -trp
706 source => "comments",
708 expect => <<'#8...........',
710 # an initial hash bang line cannot be deleted with -dp
711 #<<< format skipping of first code can cause an error message in perltidy v20210625
712 my $rvar = [ [ 1, 2, 3 ], [ 4, 5, 6 ] ];
714 sub length { return length( $_[0] ) } # side comment
715 # hanging side comment
716 # very longgggggggggggggggggggggggggggggggggggggggggggggggggggg hanging side comment
718 # a blank will be inserted to prevent forming a hanging side comment
719 sub macro_get_names { #
722 # %name = macro_get_names(); (key=macrohandle, value=macroname)
724 ##local(%name); # a static block comment without indentation
725 local (%name) = (); ## a static side comment to test -ssc
727 # a spaced block comment to test -isbc
728 for ( 0 .. $#mac_ver ) {
730 # a very long comment for testing the parameter --nooutdent-long-comments (or -nolc)
731 $name{$_} = $mac_ext[ $idx{ $mac_exti[$_] } ];
732 $vmsfile =~ s/;[\d\-]*$//
733 ; # very long side comment; Clip off version number; we can use a newer version as well
740 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
741 ## 'Dec', 'Nov' [a static block comment with indentation]
745 { # this side comment will not align
746 my $IGNORE = 0; # This is a side comment
747 # This is a hanging side comment
750 # A blank line interrupts the hsc's; this is a block comment
754 # side comments at different indentation levels should not normally be aligned
759 { ${msg} = "Hello World!"; print "My message: ${msg}\n"; }
765 #<<< do not let perltidy touch this unless -nfs is set
773 #<< test alternate format skipping string
774 my @list = ( 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, );
778 # some blank lines follow
781 Some pod before __END__ to delete with -dp
787 # text following __END__, not a comment
791 Some pod after __END__ to delete with -dp and trim with -trp
799 source => "long_line",
801 expect => <<'#9...........',
802 # This single line should break into multiple lines, even with -l=0
803 # sub 'tight_paren_follows' should break the do block
805 SOAP::Data->name('~V:Fault')->attr( { 'xmlns' => $SOAP::Constants::NS_ENV } )
807 \SOAP::Data->set_value(
809 faultcode => qualify( $self->namespace => shift(@parameters) )
811 SOAP::Data->name( faultstring => shift(@parameters) ),
815 my $detail = shift(@parameters);
816 ref $detail ? \$detail : $detail;
820 @parameters ? SOAP::Data->name( faultactor => shift(@parameters) ) : (),
826 'long_line.long_line' => {
827 source => "long_line",
828 params => "long_line",
829 expect => <<'#10...........',
830 # This single line should break into multiple lines, even with -l=0
831 # sub 'tight_paren_follows' should break the do block
832 $body = SOAP::Data->name('~V:Fault')->attr( { 'xmlns' => $SOAP::Constants::NS_ENV } )->value(
833 \SOAP::Data->set_value(
834 SOAP::Data->name( faultcode => qualify( $self->namespace => shift(@parameters) ) ),
835 SOAP::Data->name( faultstring => shift(@parameters) ),
838 detail => do { my $detail = shift(@parameters); ref $detail ? \$detail : $detail }
841 @parameters ? SOAP::Data->name( faultactor => shift(@parameters) ) : (),
850 expect => <<'#11...........',
851 # These formerly blinked with -pbp
855 $W * atan2( 1, $W ) +
856 $H * atan2( 1, $H ) -
857 $RTHSQPWSQ * atan2( 1, $RTHSQPWSQ ) +
859 ( $WSQP1 * $HSQP1 ) /
860 ( 1 + $WSQ + $HSQ ) *
861 ( $WSQ * ( 1 + $WSQ + $HSQ ) / ( $WSQP1 * $HSQPWSQ ) )
863 ( $HSQ * ( 1 + $WSQ + $HSQ ) / ( $HSQP1 * $HSQPWSQ ) )**$HSQ
869 ( 60 * $session->{originalStartHour} + $session->{originalStartMin} )
878 expect => <<'#12...........',
879 # These formerly blinked with -pbp
881 $width1 * $common_length
884 + $H * atan2( 1, $H )
885 - $RTHSQPWSQ * atan2( 1, $RTHSQPWSQ )
888 / ( 1 + $WSQ + $HSQ )
889 * ( $WSQ * ( 1 + $WSQ + $HSQ ) / ( $WSQP1 * $HSQPWSQ ) )
891 * ( $HSQ * ( 1 + $WSQ + $HSQ ) / ( $HSQP1 * $HSQPWSQ ) )
898 = ( 60 * $session->{originalStartHour}
899 + $session->{originalStartMin} )
908 expect => <<'#13...........',
909 # Some test cases for RPerl, https://github.com/wbraswell/rperl/
910 # These must not remain as single lines with default formatting and long lines
911 sub multiply_return_F {
912 { my number $RETURN_TYPE };
913 ( my integer $multiplicand, my number $multiplier ) = @ARG;
914 return $multiplicand * $multiplier;
918 { my void::method $RETURN_TYPE };
922 sub foo_subroutine_in_main {
923 { my void $RETURN_TYPE };
924 print 'Howdy from foo_subroutine_in_main()...', "\n";
933 expect => <<'#14...........',
934 # Some test cases for RPerl, https://github.com/wbraswell/rperl/
935 # These must not remain as single lines with default formatting and long lines
936 sub multiply_return_F {
937 { my number $RETURN_TYPE };
938 ( my integer $multiplicand, my number $multiplier ) = @ARG;
939 return $multiplicand * $multiplier;
943 { my void::method $RETURN_TYPE };
947 sub foo_subroutine_in_main {
948 { my void $RETURN_TYPE };
949 print 'Howdy from foo_subroutine_in_main()...', "\n";
956 source => "rt132059",
958 expect => <<'#15...........',
959 # Test deleting comments and pod
962 sub f { # a side comment
963 # a hanging side comment
976 'rt132059.rt132059' => {
977 source => "rt132059",
978 params => "rt132059",
979 expect => <<'#16...........',
992 source => "signature",
994 expect => <<'#17...........',
995 # git22: Preserve function signature on a single line
996 # This behavior is controlled by 'sub weld_signature_parens'
998 sub foo ( $x, $y = "abcd" ) {
1002 # do not break after closing do brace
1003 sub foo ( $x, $y = do { {} }, $z = 42, $w = do { "abcd" } ) {
1007 # This signature should get put back on one line
1008 sub t022 ( $p = do { $z += 10; 222 }, $a = do { $z++; 333 } ) { "$p/$a" }
1010 # anonymous sub with signature
1011 my $subref = sub ( $cat, $id = do { state $auto_id = 0; $auto_id++ } ) {
1015 # signature and prototype and attribute
1016 sub foo1 ( $x, $y ) : prototype ( $$ ) : shared { }
1018 sub foo11 ( $thing, % ) { print $thing }
1020 sub animal4 ( $cat, $ = ) { } # second argument is optional
1022 *share = sub ( \[$@%] ) { };
1025 sub foo2 ( $first, $, $third ) {
1026 return "first=$first, third=$third";
1030 sub fnord (&\%) : switch(10,foo(7,3)) : expensive;
1031 sub plugh () : Ugly('\(") : Bad;
1036 source => "ternary4",
1038 expect => <<'#18...........',
1039 # some side comments
1040 *{"${callpkg}::$sym"} = $type eq '&' ? \&{"${pkg}::$sym"} #
1041 : $type eq '$' ? \${"${pkg}::$sym"} #
1042 : $type eq '@' ? \@{"${pkg}::$sym"}
1043 : $type eq '%' ? \%{"${pkg}::$sym"} # side comment
1044 : $type eq '*' ? *{"${pkg}::$sym"} #
1045 : do { require Carp; Carp::croak("Can't export symbol: $type$sym") };
1052 expect => <<'#19...........',
1053 # do not weld paren to opening one-line non-paren container
1056 $Field->GenerateFieldForSelectSQL()
1060 # this will not get welded with -wn
1062 do { 1; !!( my $x = bless [] ); }
1068 my $ntests = 0 + keys %{$rtests};
1069 plan tests => $ntests;
1076 foreach my $key ( sort keys %{$rtests} ) {
1078 my $sname = $rtests->{$key}->{source};
1079 my $expect = $rtests->{$key}->{expect};
1080 my $pname = $rtests->{$key}->{params};
1081 my $source = $rsources->{$sname};
1082 my $params = defined($pname) ? $rparams->{$pname} : "";
1084 my $errorfile_string;
1085 my $err = Perl::Tidy::perltidy(
1087 destination => \$output,
1088 perltidyrc => \$params,
1089 argv => '', # for safety; hide any ARGV from perltidy
1090 stderr => \$stderr_string,
1091 errorfile => \$errorfile_string, # not used when -se flag is set
1093 if ( $err || $stderr_string || $errorfile_string ) {
1094 print STDERR "Error output received for test '$key'\n";
1096 print STDERR "An error flag '$err' was returned\n";
1099 if ($stderr_string) {
1100 print STDERR "---------------------\n";
1101 print STDERR "<<STDERR>>\n$stderr_string\n";
1102 print STDERR "---------------------\n";
1103 ok( !$stderr_string );
1105 if ($errorfile_string) {
1106 print STDERR "---------------------\n";
1107 print STDERR "<<.ERR file>>\n$errorfile_string\n";
1108 print STDERR "---------------------\n";
1109 ok( !$errorfile_string );
1113 if ( !is( $output, $expect, $key ) ) {
1114 my $leno = length($output);
1115 my $lene = length($expect);
1116 if ( $leno == $lene ) {
1118 "#> Test '$key' gave unexpected output. Strings differ but both have length $leno\n";
1122 "#> Test '$key' gave unexpected output. String lengths differ: output=$leno, expected=$lene\n";