#!/usr/bin/perl # for p in perl$perlall; do perl$p t/mock --logdir=t/reports/1.28/r584 t/*.t; done # # Replay results from stored log files to test the result of the # current TODO status. # # Currently perl compiler tests are stored in two formats: # # 1. log.test-$arch-$perlversion # # 2. log.modules-$perlversion # # When running the Mock tests the actual tests are not executed, # instead the results from log file are used instead for the result of ok. # A typical perl-compiler testrun lasts several hours, with Mock # several seconds. use strict; BEGIN { unshift @INC, 't'; } use Mock; use modules; my $X = $^X =~ m/\s/ ? qq{"$^X"} : $^X; unless (eval "require Test::Harness::Straps;") { print "Installing Test::Harness::Straps via cpan...\n"; system("$X -S cpan Test::Harness::Straps"); } my ($logdir) = grep /--logdir=(.+)/, @ARGV; my ($arch) = grep /--arch=(.+)/, @ARGV; $logdir = "." unless $logdir; my @mod = find_modules_report($logdir); my @tst = find_test_report($logdir, $arch); my @tests = @ARGV ? @ARGV : glob "t/*.t"; for my $test (@tests) { my $version = perlversion; my @files = $test =~ /modules\.t/ ? @mod : @tst; @files = () if $test =~ /issue34\.t/; # ignore handmade test @files = () if $test =~ /bytecode\.t/; # XXX make it into a sub from test.pl for my $log (@files) { #my $rpt = parse_report($_); # XXX run mock test and use result mock_harness($log, $test); } }