Commit | Line | Data |
9aaf3646 |
1 | use strict; |
2 | use warnings; |
3 | use FindBin qw($Bin); |
4 | use Config; |
5 | use IPC::Open2; |
6 | |
7 | # rerun the tests under the assumption of pure-perl |
8 | |
9 | # for the $^X-es |
10 | $ENV{PERL5LIB} = join ($Config{path_sep}, @INC); |
11 | $ENV{DEVEL_GLOBALDESTRUCTION_PP_TEST} = 1; |
12 | |
13 | my $this_file = quotemeta(__FILE__); |
14 | |
d4be4bd8 |
15 | opendir(my $dh, $Bin); |
16 | my @tests = grep { $_ !~ /${this_file}$/ } map { "$Bin/$_" } grep { /\.t$/ } readdir $dh; |
9aaf3646 |
17 | print "1..@{[ scalar @tests ]}\n"; |
18 | |
6d3e0a6f |
19 | my $had_error = 0; |
20 | END { $? = $had_error } |
9aaf3646 |
21 | sub ok ($$) { |
6d3e0a6f |
22 | $had_error++, print "not " if !$_[0]; |
9aaf3646 |
23 | print "ok"; |
24 | print " - $_[1]" if defined $_[1]; |
25 | print "\n"; |
26 | } |
27 | |
28 | for my $fn (@tests) { |
29 | # this is cheating, and may even hang here and there (testing on windows passed fine) |
30 | # if it does - will have to fix it somehow (really *REALLY* don't want to pull |
31 | # in IPC::Cmd just for a fucking test) |
32 | # the alternative would be to have an ENV check in each test to force a subtest |
33 | open2(my $out, my $in, $^X, $fn ); |
34 | while (my $ln = <$out>) { |
35 | print " $ln"; |
36 | } |
37 | |
38 | wait; |
39 | ok (! $?, "Exit $? from: $^X $fn"); |
40 | } |