|
24 | 24 | use utf8;
|
25 | 25 | use open qw(:std utf8);
|
26 | 26 |
|
27 |
| -use constant FALSE => 0; |
28 |
| -use constant TRUE => 1; |
| 27 | +use Getopt::Long; |
29 | 28 |
|
30 |
| -my $verbose; |
31 |
| -my $switch = shift; |
32 |
| -if ( defined($switch) && ( $switch eq "-v" || $switch eq "--verbose" ) ) { |
33 |
| - $verbose = TRUE; |
34 |
| -} |
| 29 | +my $verbose = 0; |
| 30 | +GetOptions( "verbose|v:1" => \$verbose ); |
35 | 31 |
|
36 | 32 | # All test suites = executable files, excluding source files, debug
|
37 | 33 | # and profiling information, etc. We can't just grep {! /\./} because
|
|
50 | 46 | $suite_cases_failed, $suite_cases_skipped, $total_cases_passed,
|
51 | 47 | $total_cases_failed, $total_cases_skipped );
|
52 | 48 |
|
| 49 | +sub pad_print_center { |
| 50 | + my( $width, $padchar, $string ) = @_; |
| 51 | + my $padlen = ( $width - length( $string ) - 2 ) / 2; |
| 52 | + print $padchar x( $padlen ), " $string ", $padchar x( $padlen ), "\n"; |
| 53 | +} |
| 54 | + |
53 | 55 | for my $suite (@suites)
|
54 | 56 | {
|
55 | 57 | print "$suite ", "." x ( 72 - length($suite) - 2 - 4 ), " ";
|
56 |
| - my $result = `$prefix$suite`; |
| 58 | + my $command = "$prefix$suite"; |
| 59 | + if( $verbose ) { |
| 60 | + $command .= ' -v'; |
| 61 | + } |
| 62 | + my $result = `$command`; |
57 | 63 |
|
58 | 64 | $suite_cases_passed = () = $result =~ /.. PASS/g;
|
59 | 65 | $suite_cases_failed = () = $result =~ /.. FAILED/g;
|
60 | 66 | $suite_cases_skipped = () = $result =~ /.. ----/g;
|
61 | 67 |
|
62 | 68 | if( $result =~ /PASSED/ ) {
|
63 | 69 | print "PASS\n";
|
| 70 | + if( $verbose > 2 ) { |
| 71 | + pad_print_center( 72, '-', "Begin $suite" ); |
| 72 | + print $result; |
| 73 | + pad_print_center( 72, '-', "End $suite" ); |
| 74 | + } |
64 | 75 | } else {
|
65 | 76 | $failed_suites++;
|
66 | 77 | print "FAIL\n";
|
| 78 | + if( $verbose ) { |
| 79 | + pad_print_center( 72, '-', "Begin $suite" ); |
| 80 | + print $result; |
| 81 | + pad_print_center( 72, '-', "End $suite" ); |
| 82 | + } |
67 | 83 | }
|
68 | 84 |
|
69 | 85 | my ($passed, $tests, $skipped) = $result =~ /([0-9]*) \/ ([0-9]*) tests.*?([0-9]*) skipped/;
|
70 | 86 | $total_tests_run += $tests - $skipped;
|
71 | 87 |
|
72 |
| - if ( $verbose ) { |
| 88 | + if( $verbose > 1 ) { |
73 | 89 | print "(test cases passed:", $suite_cases_passed,
|
74 | 90 | " failed:", $suite_cases_failed,
|
75 | 91 | " skipped:", $suite_cases_skipped,
|
|
87 | 103 | print $failed_suites ? "FAILED" : "PASSED";
|
88 | 104 | printf " (%d suites, %d tests run)\n", scalar @suites, $total_tests_run;
|
89 | 105 |
|
90 |
| -if ( $verbose ) { |
| 106 | +if( $verbose > 1 ) { |
91 | 107 | print " test cases passed :", $total_cases_passed, "\n";
|
92 | 108 | print " failed :", $total_cases_failed, "\n";
|
93 | 109 | print " skipped :", $total_cases_skipped, "\n";
|
|
0 commit comments