In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/226de479579f4a84dd17654b44e5aef323b0a403?hp=fc279e463ddb1765ee76b9e5d84a0c7545544bbe>

- Log -----------------------------------------------------------------
commit 226de479579f4a84dd17654b44e5aef323b0a403
Author: Nicholas Clark <[email protected]>
Date:   Sun Aug 9 10:44:28 2009 +0100

    Run the main tests "slowest first" by ordering the rules correctly.
    
    (It seems that the current TAP::Harness implementation sequences based on 
the
    parallel/serial rules, not the order of the list of test names presented to 
it.)
-----------------------------------------------------------------------

Summary of changes:
 t/harness |   30 +++++++++++++++++++++---------
 1 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/t/harness b/t/harness
index c2fbbee..9e3af04 100644
--- a/t/harness
+++ b/t/harness
@@ -200,19 +200,31 @@ if (@ARGV) {
        push @last, <pod/*.t>;
        push @last, <x2p/*.t>;
 
+       my %times;
+       if ($state) {
+           # Where known, collate the elapsed times by test name
+           foreach ($state->results->tests()) {
+               $times{$_->name} = $_->elapsed();
+           }
+       }
+
+       my %dir;
+       my %total_time;
+
+       for (@last) {
+           m!(.*/)! or die "'$_'";
+           push @{$dir{$1}}, $_;
+           $total_time{$1} += $times{$_} || 0;
+       }
+
        push @tests, @last;
 
        # Generate T::H schedule rules that run the contents of each directory
        # sequentially.
-       {
-           my %dir;
-           for (@last) {
-               s{[^/]+$}{\*};
-               $dir{$_}++;
-           }
-
-           push @seq, { par => [ map { { seq => $_ } } sort keys %dir ] };
-       }
+       push @seq, { par => [ map { { seq => "$_*" } } sort {
+           # Directories, ordered by total time descending then name ascending
+           $total_time{$b} <=> $total_time{$a} || $a cmp $b
+       } keys %dir ] };
 
        $rules = { seq => \...@seq };
     }

--
Perl5 Master Repository

Reply via email to