From: Rafael Garcia-Suarez Date: Mon, 27 Jun 2005 12:46:44 +0000 (+0000) Subject: Upgrade to Test::Harness 2.52 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=43ef773bf404929508ebcd1d5537829ee65ae26f;p=p5sagit%2Fp5-mst-13.2.git Upgrade to Test::Harness 2.52 p4raw-id: //depot/perl@24989 --- diff --git a/lib/Test/Harness.pm b/lib/Test/Harness.pm index 07e612f..05a3e1c 100644 --- a/lib/Test/Harness.pm +++ b/lib/Test/Harness.pm @@ -10,12 +10,6 @@ use Benchmark; use Config; use strict; -use vars '$has_time_hires'; - -BEGIN { - eval "use Time::HiRes 'time'"; - $has_time_hires = !$@; -} use vars qw( $VERSION @@ -24,21 +18,28 @@ use vars qw( $verbose $switches $debug $Curtest $Columns + $Timer $ML $Last_ML_Print $Strap + $has_time_hires ); +BEGIN { + eval "use Time::HiRes 'time'"; + $has_time_hires = !$@; +} + =head1 NAME Test::Harness - Run Perl standard test scripts with statistics =head1 VERSION -Version 2.50 +Version 2.52 =cut -$VERSION = "2.50"; +$VERSION = "2.52"; # Backwards compatibility for exportable variable names. *verbose = *Verbose; @@ -72,6 +73,7 @@ $Debug = $ENV{HARNESS_DEBUG} || 0; $Switches = "-w"; $Columns = $ENV{HARNESS_COLUMNS} || $ENV{COLUMNS} || 80; $Columns--; # Some shells have trouble with a full line of text. +$Timer = $ENV{HARNESS_TIMER} || 0; =head1 SYNOPSIS @@ -126,6 +128,11 @@ The package variable C<$Test::Harness::switches> is exportable and can be used to set perl command line options used for running the test script(s). The default value is C<-w>. It overrides C. +=item C<$Test::Harness::Timer> + +If set to true, and C is available, print elapsed seconds +after each test file. + =back @@ -345,12 +352,22 @@ sub _run_all_tests { if ( $Test::Harness::Debug ) { print "# Running: ", $Strap->_command_line($tfile), "\n"; } - my $test_start_time = time; + my $test_start_time = $Timer ? time : 0; my %results = $Strap->analyze_file($tfile) or do { warn $Strap->{error}, "\n"; next }; - my $test_end_time = time; - my $elapsed = $test_end_time - $test_start_time; - $elapsed = $has_time_hires ? sprintf( " %8.3fs", $elapsed ) : ""; + my $elapsed; + if ( $Timer ) { + $elapsed = time - $test_start_time; + if ( $has_time_hires ) { + $elapsed = sprintf( " %8.3fs", $elapsed ); + } + else { + $elapsed = sprintf( " %8ss", $elapsed ? $elapsed : "<1" ); + } + } + else { + $elapsed = ""; + } # state of the current test. my @failed = grep { !$results{details}[$_-1]{ok} } @@ -650,12 +667,12 @@ sub _print_ml { } -# For slow connections, we save lots of bandwidth by printing only once -# per second. +# Print updates only once per second. sub _print_ml_less { - if ( $Last_ML_Print != time ) { + my $now = CORE::time; + if ( $Last_ML_Print != $now ) { _print_ml(@_); - $Last_ML_Print = time; + $Last_ML_Print = $now; } } diff --git a/lib/Test/Harness/Changes b/lib/Test/Harness/Changes index 6efac35..cb6cf4f 100644 --- a/lib/Test/Harness/Changes +++ b/lib/Test/Harness/Changes @@ -1,5 +1,23 @@ Revision history for Perl extension Test::Harness +2.52 Sun Jun 26 23:05:19 CDT 2005 + No changes + +2.51_02 + [ENHANCEMENTS] + * The Test::Harness timer is now off by default. Set HARNESS_TIMER + true if you want it. Added --timer flag to prove. + +2.50_01 + [FIXES] + * Call CORE::time() to figure out if we should print when we're + printing once per second. Otherwise, we're using Time::HiRes' + version of it. Thanks, Nicholas Clark. + +2.50 Tue Jun 21 14:32:12 CDT 2005 + [FIXES] + * Added some includes in t/strap-analyze.t to make Cygwin happy. + 2.49_02 Tue Jun 21 09:54:44 CDT 2005 [FIXES] * Added some includes in t/test_harness.t to make Cygwin happy. diff --git a/lib/Test/Harness/bin/prove b/lib/Test/Harness/bin/prove index 3b109d9..ee62afb 100644 --- a/lib/Test/Harness/bin/prove +++ b/lib/Test/Harness/bin/prove @@ -40,6 +40,7 @@ GetOptions( 's|shuffle' => \$shuffle, 't' => sub { unshift @switches, "-t" }, # Always want -t up front 'T' => sub { unshift @switches, "-T" }, # Always want -T up front + 'timer' => \$Test::Harness::Timer, 'v|verbose' => \$Test::Harness::verbose, 'V|version' => sub { print_version(); exit; }, 'ext=s@' => \@ext, @@ -179,6 +180,7 @@ Options: -s, --shuffle Run the tests in a random order. -T Enable tainting checks -t Enable tainting warnings + --timer Print elapsed time after each test file -v, --verbose Display standard output of test scripts while running them. -V, --version Display version info @@ -292,6 +294,10 @@ Runs test programs under perl's -t taint warning mode. Runs test programs under perl's -T taint mode. +=head2 --timer + +Print elapsed time after each test file + =head2 -v, --verbose Display standard output of test scripts while running them. Also sets @@ -323,7 +329,7 @@ Andy Lester C<< >> =head1 COPYRIGHT -Copyright 2003 by Andy Lester C<< >>. +Copyright 2005 by Andy Lester C<< >>. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.