use strict; use Test; use Carp; BEGIN {plan tests => 1} use Perl::Tidy; #---------------------------------------------------------------------- ## test file->file through arg list # Also tests: # passing parameters names through 'argv=>' # -o flag # # NOTE: This will read file 'lextest' and create file 'lextest.out' # (for portability, 8.3 filenames are best) # NOTE: must use -npro flag to avoid using local perltidyrc flags #---------------------------------------------------------------------- my $input_file = "lextest"; my $output_file = "lextest.out"; Perl::Tidy::perltidy( source => undef, destination => undef, perltidyrc => undef, argv => "-nsyn -npro $input_file -o $output_file", ); open FILE, "< $output_file"; my @output=; my @expected_output=; my $ok=1; if (@expected_output == @output) { while ( $_ = pop @output ) { my $expect = pop @expected_output; if ( $expect ne $_ ) { print STDERR "got:$_"; print STDERR "---\n"; print STDERR "expected_output:$expect"; $ok=0; last; } } } else { print STDERR "Line Counts differ\n"; $ok=0; } ok ($ok,1); # This is the expected result of 'perltidy lextest': __DATA__ # This is a simple testfile to demonstrate perltidy, from perlop(1). # One way (of several) to run perltidy is as follows: # # perl ./perltidy lextest # # The output will be "lextest.tdy" $_ = <<'EOL'; $url = new URI::URL "http://www/"; die if $url eq "xXx"; EOL LOOP: { print(" digits"), redo LOOP if /\G\d+\b[,.;]?\s*/gc; print(" lowercase"), redo LOOP if /\G[a-z]+\b[,.;]?\s*/gc; print(" UPPERCASE"), redo LOOP if /\G[A-Z]+\b[,.;]?\s*/gc; print(" Capitalized"), redo LOOP if /\G[A-Z][a-z]+\b[,.;]?\s*/gc; print(" MiXeD"), redo LOOP if /\G[A-Za-z]+\b[,.;]?\s*/gc; print(" alphanumeric"), redo LOOP if /\G[A-Za-z0-9]+\b[,.;]?\s*/gc; print(" line-noise"), redo LOOP if /\G[^A-Za-z0-9]+/gc; print ". That's all!\n"; }