Move Test::Harness from ext/ to cpan/
[p5sagit/p5-mst-13.2.git] / cpan / Test-Harness / t / harness-bailout.t
CommitLineData
bdaf8c65 1#!perl
2
3use strict;
4use File::Spec;
5
6BEGIN {
7 *CORE::GLOBAL::exit = sub { die '!exit called!' };
8}
9
10use TAP::Harness;
11use Test::More;
12
13my @jobs = (
14 { name => 'sequential',
15 args => { verbosity => -9 },
16 },
17 { name => 'parallel',
18 args => { verbosity => -9, jobs => 2 },
19 },
20);
21
22plan tests => @jobs * 2;
23
24for my $test (@jobs) {
25 my $name = $test->{name};
26 my $args = $test->{args};
27 my $harness = TAP::Harness->new($args);
28 eval {
29 local ( *OLDERR, *OLDOUT );
30 open OLDERR, '>&STDERR' or die $!;
31 open OLDOUT, '>&STDOUT' or die $!;
32 my $devnull = File::Spec->devnull;
33 open STDERR, ">$devnull" or die $!;
34 open STDOUT, ">$devnull" or die $!;
35
36 $harness->runtests(
37 File::Spec->catfile(
bdaf8c65 38 't',
39 'sample-tests',
40 'bailout'
41 )
42 );
43
44 open STDERR, '>&OLDERR' or die $!;
45 open STDOUT, '>&OLDOUT' or die $!;
46 };
47 my $err = $@;
48 unlike $err, qr{!exit called!}, "$name: didn't exit";
49 like $err, qr{FAILED--Further testing stopped: GERONIMMMOOOOOO!!!},
50 "$name: bailout message";
51}
52
53# vim:ts=2:sw=2:et:ft=perl
54