From 2fa07962c084dd30c50f66be1ec26d21a52510f7 Mon Sep 17 00:00:00 2001 From: Steve Hancock Date: Wed, 29 Apr 2020 07:36:21 -0700 Subject: [PATCH] added test cases regarding spaces between tokens --- t/snippets/expect/space6.def | 5 ++ t/snippets/expect/space6.space6 | 5 ++ t/snippets/make_expect.pl | 4 +- t/snippets/packing_list.txt | 2 + t/snippets/spp.in | 2 + t/snippets20.t | 125 ++++++++++++++++++++++++++++++++ 6 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 t/snippets/expect/space6.def create mode 100644 t/snippets/expect/space6.space6 create mode 100644 t/snippets20.t diff --git a/t/snippets/expect/space6.def b/t/snippets/expect/space6.def new file mode 100644 index 00000000..cdc00de2 --- /dev/null +++ b/t/snippets/expect/space6.def @@ -0,0 +1,5 @@ +# test some spacing rules at possible filehandles +my $z = $x / $y; # ok to change spaces around both sides of the / +print $x / $y; # do not remove space before or after / here +print $x/ $y; # do not add a space before the / here +print $x+ $y; # do not add a space before the + here diff --git a/t/snippets/expect/space6.space6 b/t/snippets/expect/space6.space6 new file mode 100644 index 00000000..99b84f12 --- /dev/null +++ b/t/snippets/expect/space6.space6 @@ -0,0 +1,5 @@ +# test some spacing rules at possible filehandles +my $z = $x/$y; # ok to change spaces around both sides of the / +print $x / $y; # do not remove space before or after / here +print $x/$y; # do not add a space before the / here +print $x+$y; # do not add a space before the + here diff --git a/t/snippets/make_expect.pl b/t/snippets/make_expect.pl index 0db334a1..cdbc678b 100755 --- a/t/snippets/make_expect.pl +++ b/t/snippets/make_expect.pl @@ -222,12 +222,14 @@ if (@changed) { print "------\n"; } +my $runme = "RUNME.sh"; + if ( !@mv ) { print "No differences\n"; + if (-e $runme) {unlink $runme} exit; } -my $runme = "RUNME.sh"; if ( open( RUN, ">$runme" ) ) { print RUN < "", + 'space6' => <<'----------', +-nwrs="+ - / *" +-nwls="+ - / *" +---------- + }; + + ############################ + # BEGIN SECTION 2: Sources # + ############################ + $rsources = { + + 'space6' => <<'----------', +# test some spacing rules at possible filehandles +my $z=$x/$y; # ok to change spaces around both sides of the / +print $x / $y; # do not remove space before or after / here +print $x/$y; # do not add a space before the / here +print $x+$y; # do not add a space before the + here +---------- + }; + + #################################### + # BEGIN SECTION 3: Expected output # + #################################### + $rtests = { + + 'space6.def' => { + source => "space6", + params => "def", + expect => <<'#1...........', +# test some spacing rules at possible filehandles +my $z = $x / $y; # ok to change spaces around both sides of the / +print $x / $y; # do not remove space before or after / here +print $x/ $y; # do not add a space before the / here +print $x+ $y; # do not add a space before the + here +#1........... + }, + + 'space6.space6' => { + source => "space6", + params => "space6", + expect => <<'#2...........', +# test some spacing rules at possible filehandles +my $z = $x/$y; # ok to change spaces around both sides of the / +print $x / $y; # do not remove space before or after / here +print $x/$y; # do not add a space before the / here +print $x+$y; # do not add a space before the + here +#2........... + }, + }; + + my $ntests = 0 + keys %{$rtests}; + plan tests => $ntests; +} + +############### +# EXECUTE TESTS +############### + +foreach my $key ( sort keys %{$rtests} ) { + my $output; + my $sname = $rtests->{$key}->{source}; + my $expect = $rtests->{$key}->{expect}; + my $pname = $rtests->{$key}->{params}; + my $source = $rsources->{$sname}; + my $params = defined($pname) ? $rparams->{$pname} : ""; + my $stderr_string; + my $errorfile_string; + my $err = Perl::Tidy::perltidy( + source => \$source, + destination => \$output, + perltidyrc => \$params, + argv => '', # for safety; hide any ARGV from perltidy + stderr => \$stderr_string, + errorfile => \$errorfile_string, # not used when -se flag is set + ); + if ( $err || $stderr_string || $errorfile_string ) { + if ($err) { + print STDERR +"This error received calling Perl::Tidy with '$sname' + '$pname'\n"; + ok( !$err ); + } + if ($stderr_string) { + print STDERR "---------------------\n"; + print STDERR "<>\n$stderr_string\n"; + print STDERR "---------------------\n"; + print STDERR +"This error received calling Perl::Tidy with '$sname' + '$pname'\n"; + ok( !$stderr_string ); + } + if ($errorfile_string) { + print STDERR "---------------------\n"; + print STDERR "<<.ERR file>>\n$errorfile_string\n"; + print STDERR "---------------------\n"; + print STDERR +"This error received calling Perl::Tidy with '$sname' + '$pname'\n"; + ok( !$errorfile_string ); + } + } + else { + ok( $output, $expect ); + } +} -- 2.39.5