1 # Created with: ./make_t.pl
20 # To locate test #13 you can search for its name or the string '#13'
32 ###########################################
33 # BEGIN SECTION 1: Parameter combinations #
34 ###########################################
37 'rt127633' => "-baao",
40 ############################
41 # BEGIN SECTION 2: Sources #
42 ############################
45 'align10' => <<'----------',
46 $message =~ &rhs_wordwrap( $message, $width );
47 $message_len =~ split( /^/, $message );
50 'align11' => <<'----------',
51 my $accountno = getnextacctno( $env, $bornum, $dbh );
52 my $item = getiteminformation( $env, $itemno );
53 my $account = "Insert into accountlines
57 'align12' => <<'----------',
58 my $type = shift || "o";
59 my $fname = ( $type eq 'oo' ? 'orte_city' : 'orte' );
60 my $suffix = ( $coord_system eq 'standard' ? '' : '-orig' );
63 'align13' => <<'----------',
64 # symbols =~ and !~ are equivalent in alignment
65 ok( $out !~ /EXACT <fop>/, "No 'baz'" );
66 ok( $out =~ /<liz>/, "Got 'liz'" ); # liz
67 ok( $out =~ /<zoo>/, "Got 'zoo'" ); # zoo
68 ok( $out !~ /<zap>/, "Got 'zap'" ); # zap
71 'align14' => <<'----------',
73 my($apple)=new Fruit("Apple1",.1,.30);
74 my($grapefruit)=new Grapefruit("Grapefruit1",.3);
75 my($redgrapefruit)=new RedGrapefruit("Grapefruit2",.3);
78 'align15' => <<'----------',
80 my$color=$opts{'-color'}//'black';
81 my$background=$opts{'-background'}//'none';
82 my$linewidth=$opts{'-linewidth'}//1;
83 my$radius=$opts{'-radius'}//0;
86 'align16' => <<'----------',
87 # align all at first =>
89 PHFAM => [ { John => 1, Jane => 2, Sally => 3 }, 33, 28, 3 ],
90 FAMILY => [qw( John Jane Sally )],
91 AGES => { John => 33, Jane => 28, Sally => 3 },
92 RFAM => [ [qw( John Jane Sally )] ],
94 SPIT => sub { shift },
99 'align19' => <<'----------',
100 # different lhs patterns, do not align the '='
101 @_ = qw(sort grep map do eval);
102 @is_not_zero_continuation_block_type{@_} = (1) x scalar(@_);
105 'align20' => <<'----------',
106 # marginal two-line match; differnt lhs patterns; do not align
111 'align21' => <<'----------',
112 # two lines with large gap but same lhs pattern so align equals
113 local (@pieces) = split( /\./, $filename, 2 );
114 local ($just_dir_and_base) = $pieces[0];
117 'align22' => <<'----------',
118 # two equality lines with different patterns to left of equals do not align
119 $signame{$_} = ++$signal;
120 $signum[$signal] = $_;
123 'align23' => <<'----------',
124 # two equality lines with same pattern on left of equals will align
125 my $orig = my $format = "^<<<<< ~~\n";
129 'break5' => <<'----------',
130 # do not break at .'s after the ?
132 ( $pod eq $pod2 ) & amp;
138 . "\">\n$text</A>\n"
139 : "\n$type$pod2.html\#" . $value . "\">$text<\/A>\n";
142 'rt127633' => <<'----------',
143 # keep lines long; do not break after 'return' and '.' with -baoo
144 return $ref eq 'SCALAR' ? $self->encode_scalar( $object, $name, $type, $attr ) : $ref eq 'ARRAY';
145 my $s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' . 'bbbbbbbbbbbbbbbbbbbbbbbbb';
149 ####################################
150 # BEGIN SECTION 3: Expected output #
151 ####################################
157 expect => <<'#1...........',
158 $message =~ &rhs_wordwrap( $message, $width );
159 $message_len =~ split( /^/, $message );
166 expect => <<'#2...........',
167 my $accountno = getnextacctno( $env, $bornum, $dbh );
168 my $item = getiteminformation( $env, $itemno );
169 my $account = "Insert into accountlines
177 expect => <<'#3...........',
178 my $type = shift || "o";
179 my $fname = ( $type eq 'oo' ? 'orte_city' : 'orte' );
180 my $suffix = ( $coord_system eq 'standard' ? '' : '-orig' );
187 expect => <<'#4...........',
188 # symbols =~ and !~ are equivalent in alignment
189 ok( $out !~ /EXACT <fop>/, "No 'baz'" );
190 ok( $out =~ /<liz>/, "Got 'liz'" ); # liz
191 ok( $out =~ /<zoo>/, "Got 'zoo'" ); # zoo
192 ok( $out !~ /<zap>/, "Got 'zap'" ); # zap
197 source => "rt127633",
199 expect => <<'#5...........',
200 # keep lines long; do not break after 'return' and '.' with -baoo
201 return $ref eq 'SCALAR'
202 ? $self->encode_scalar( $object, $name, $type, $attr )
204 my $s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
205 . 'bbbbbbbbbbbbbbbbbbbbbbbbb';
209 'rt127633.rt127633' => {
210 source => "rt127633",
211 params => "rt127633",
212 expect => <<'#6...........',
213 # keep lines long; do not break after 'return' and '.' with -baoo
214 return $ref eq 'SCALAR' ? $self->encode_scalar( $object, $name, $type, $attr ) :
216 my $s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' .
217 'bbbbbbbbbbbbbbbbbbbbbbbbb';
224 expect => <<'#7...........',
226 my ($apple) = new Fruit( "Apple1", .1, .30 );
227 my ($grapefruit) = new Grapefruit( "Grapefruit1", .3 );
228 my ($redgrapefruit) = new RedGrapefruit( "Grapefruit2", .3 );
235 expect => <<'#8...........',
236 # align both = and //
237 my $color = $opts{'-color'} // 'black';
238 my $background = $opts{'-background'} // 'none';
239 my $linewidth = $opts{'-linewidth'} // 1;
240 my $radius = $opts{'-radius'} // 0;
247 expect => <<'#9...........',
248 # align all at first =>
250 PHFAM => [ { John => 1, Jane => 2, Sally => 3 }, 33, 28, 3 ],
251 FAMILY => [qw( John Jane Sally )],
252 AGES => { John => 33, Jane => 28, Sally => 3 },
253 RFAM => [ [qw( John Jane Sally )] ],
255 SPIT => sub { shift },
264 expect => <<'#10...........',
265 # do not break at .'s after the ?
267 ( $pod eq $pod2 ) & amp;
271 ? "\n<A NAME=\"" . $value . "\">\n$text</A>\n"
272 : "\n$type$pod2.html\#" . $value . "\">$text<\/A>\n";
279 expect => <<'#11...........',
280 # different lhs patterns, do not align the '='
281 @_ = qw(sort grep map do eval);
282 @is_not_zero_continuation_block_type{@_} = (1) x scalar(@_);
289 expect => <<'#12...........',
290 # marginal two-line match; differnt lhs patterns; do not align
299 expect => <<'#13...........',
300 # two lines with large gap but same lhs pattern so align equals
301 local (@pieces) = split( /\./, $filename, 2 );
302 local ($just_dir_and_base) = $pieces[0];
309 expect => <<'#14...........',
310 # two equality lines with different patterns to left of equals do not align
311 $signame{$_} = ++$signal;
312 $signum[$signal] = $_;
319 expect => <<'#15...........',
320 # two equality lines with same pattern on left of equals will align
321 my $orig = my $format = "^<<<<< ~~\n";
327 my $ntests = 0 + keys %{$rtests};
328 plan tests => $ntests;
335 foreach my $key ( sort keys %{$rtests} ) {
337 my $sname = $rtests->{$key}->{source};
338 my $expect = $rtests->{$key}->{expect};
339 my $pname = $rtests->{$key}->{params};
340 my $source = $rsources->{$sname};
341 my $params = defined($pname) ? $rparams->{$pname} : "";
343 my $errorfile_string;
344 my $err = Perl::Tidy::perltidy(
346 destination => \$output,
347 perltidyrc => \$params,
348 argv => '', # for safety; hide any ARGV from perltidy
349 stderr => \$stderr_string,
350 errorfile => \$errorfile_string, # not used when -se flag is set
352 if ( $err || $stderr_string || $errorfile_string ) {
355 "This error received calling Perl::Tidy with '$sname' + '$pname'\n";
358 if ($stderr_string) {
359 print STDERR "---------------------\n";
360 print STDERR "<<STDERR>>\n$stderr_string\n";
361 print STDERR "---------------------\n";
363 "This error received calling Perl::Tidy with '$sname' + '$pname'\n";
364 ok( !$stderr_string );
366 if ($errorfile_string) {
367 print STDERR "---------------------\n";
368 print STDERR "<<.ERR file>>\n$errorfile_string\n";
369 print STDERR "---------------------\n";
371 "This error received calling Perl::Tidy with '$sname' + '$pname'\n";
372 ok( !$errorfile_string );
376 ok( $output, $expect );