Loop in S_init_perllib(), only calling S_incpush*() with INCPUSH_ADD_OLD_VERS
[p5sagit/p5-mst-13.2.git] / t / harness
index e6e8d9e..b087cc5 100644 (file)
--- a/t/harness
+++ b/t/harness
@@ -188,14 +188,16 @@ if (@ARGV) {
        my $mani  = File::Spec->catfile(File::Spec->updir, "MANIFEST");
        if (open(MANI, $mani)) {
            my @manitests = ();
-           my $ext_pat = $^O eq 'MSWin32' ? '(?:win32/)?ext' : 'ext';
            while (<MANI>) { # similar code in t/TEST
-               if (m!^($ext_pat/(\S+)/+(?:[^/\s]+\.t|test\.pl)|lib/\S+?(?:\.t|test\.pl))\s!) {
+               if (m!^(ext/(\S+)/+(?:[^/\s]+\.t|test\.pl)|lib/\S+?(?:\.t|test\.pl))\s!) {
                    my ($test, $extension) = ($1, $2);
                    if (defined $extension) {
                        $extension =~ s!/t$!!;
                        # XXX Do I want to warn that I'm skipping these?
                        next if $skip{$extension};
+                       my $flat_extension = $extension;
+                       $flat_extension =~ s!-!/!g;
+                       next if $skip{$flat_extension}; # Foo/Bar may live in Foo-Bar
                    }
                    push @manitests, File::Spec->catfile($updir, $test);
                }
@@ -236,6 +238,11 @@ if ($jobs) {
                         $state->observe_test(@_);
                     }
                    );
+       $h->callback(
+                    after_runtests => sub {
+                        $state->commit(@_);
+                    }
+                   );
     }
     $h->runtests(@tests);
 } else {