1#!/usr/bin/perl -w
2
3use strict;
4use warnings;
5use lib 't/lib';
6
7use Test::More tests => 5;
8
9use File::Spec;
10use Test::Harness;
11
12{
13
14    #todo_skip 'Harness compatibility incomplete', 5;
15    #local $TODO = 'Harness compatibility incomplete';
16    my $died;
17
18    sub prepare_for_death {
19        $died = 0;
20        return sub { $died = 1 }
21    }
22
23    my $curdir = File::Spec->curdir;
24    my $sample_tests = File::Spec->catdir( $curdir, 't', 'sample-tests' );
25
26    {
27        local $SIG{__DIE__} = prepare_for_death();
28        eval { _runtests( File::Spec->catfile( $sample_tests, "simple" ) ); };
29        ok( !$@, "simple lives" );
30        is( $died, 0, "Death never happened" );
31    }
32
33    {
34        local $SIG{__DIE__} = prepare_for_death();
35        eval {
36            _runtests( File::Spec->catfile( $sample_tests, "too_many" ) );
37        };
38        ok( $@, "error OK" );
39        ok( $@ =~ m[Failed 1/1], "too_many dies" );
40        is( $died, 1, "Death happened" );
41    }
42}
43
44sub _runtests {
45    my (@tests) = @_;
46
47    local $ENV{PERL_TEST_HARNESS_DUMP_TAP} = 0;
48    local $ENV{HARNESS_VERBOSE}            = 0;
49    local $ENV{HARNESS_DEBUG}              = 0;
50    local $ENV{HARNESS_TIMER}              = 0;
51
52    local $Test::Harness::Verbose = -9;
53
54    runtests(@tests);
55}
56
57# vim:ts=4:sw=4:et:sta
58