summaryrefslogtreecommitdiffstats
path: root/build-aux/test-runner
blob: d73369b27cccb15273841e559e505976121b2b68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/perl

use strict;
use warnings;

use TAP::Harness;

my $srcroot = $ENV{abs_top_srcdir};
my $binroot = $ENV{abs_top_builddir};

# Setup the environment
$ENV{LC_ALL} = 'C';
$ENV{DPKG_COLORS} = 'never';
$ENV{PATH} = "$binroot/src:$binroot/scripts:$binroot/utils:$ENV{PATH}";

my %options;
# XXX: We need force the file formatter to workaround verbose + parallel
# not working correctly, as the console formatter eats the test output,
# see <https://github.com/Perl-Toolchain-Gang/Test-Harness/issues/105>.
if ($ENV{TEST_VERBOSE} && $ENV{TEST_PARALLEL} > 1) {
    $options{formatter_class} = 'TAP::Formatter::File';
}

my $harness = TAP::Harness->new({
    exec => sub {
        my (undef, $test) = @_;
        return [ $test ] if $test !~ m/\.t$/ and -x $test;
        return
    },
    lib => [
        "$srcroot/scripts",
        "$srcroot/dselect/methods"
    ],
    color => 1,
    verbosity => $ENV{TEST_VERBOSE},
    jobs => $ENV{TEST_PARALLEL},
    failures => 1,
    %options,
});

my $aggregate = $harness->runtests(@ARGV);
die "FAIL: test suite has errors\n" if $aggregate->has_errors;