complete-run: make --valgrind, --strace, --coverage-testing work again
This commit is contained in:
parent
cc2fda9242
commit
d22458cde0
|
@ -37,20 +37,23 @@ my $log;
|
||||||
sub Log { say $log "@_" }
|
sub Log { say $log "@_" }
|
||||||
|
|
||||||
my %timings;
|
my %timings;
|
||||||
my $coverage_testing = 0;
|
|
||||||
my $valgrind = 0;
|
|
||||||
my $strace = 0;
|
|
||||||
my $help = 0;
|
my $help = 0;
|
||||||
# Number of tests to run in parallel. Important to know how many Xdummy
|
# Number of tests to run in parallel. Important to know how many Xdummy
|
||||||
# instances we need to start (unless @displays are given). Defaults to
|
# instances we need to start (unless @displays are given). Defaults to
|
||||||
# num_cores * 2.
|
# num_cores * 2.
|
||||||
my $parallel = undef;
|
my $parallel = undef;
|
||||||
my @displays = ();
|
my @displays = ();
|
||||||
|
my %options = (
|
||||||
|
valgrind => 0,
|
||||||
|
strace => 0,
|
||||||
|
coverage => 0,
|
||||||
|
restart => 0,
|
||||||
|
);
|
||||||
|
|
||||||
my $result = GetOptions(
|
my $result = GetOptions(
|
||||||
"coverage-testing" => \$coverage_testing,
|
"coverage-testing" => \$options{coverage},
|
||||||
"valgrind" => \$valgrind,
|
"valgrind" => \$options{valgrind},
|
||||||
"strace" => \$strace,
|
"strace" => \$options{strace},
|
||||||
"display=s" => \@displays,
|
"display=s" => \@displays,
|
||||||
"parallel=i" => \$parallel,
|
"parallel=i" => \$parallel,
|
||||||
"help|?" => \$help,
|
"help|?" => \$help,
|
||||||
|
@ -104,7 +107,7 @@ for my $display (@displays) {
|
||||||
die "Could not connect to display $display\n";
|
die "Could not connect to display $display\n";
|
||||||
} else {
|
} else {
|
||||||
# start a TestWorker for each display
|
# start a TestWorker for each display
|
||||||
push @single_worker, worker($display, $x, $outdir);
|
push @single_worker, worker($display, $x, $outdir, \%options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,7 +117,7 @@ if (defined($multidpy)) {
|
||||||
if ($x->has_error) {
|
if ($x->has_error) {
|
||||||
die "Could not connect to multi-monitor display $multidpy\n";
|
die "Could not connect to multi-monitor display $multidpy\n";
|
||||||
} else {
|
} else {
|
||||||
push @multi_worker, worker($multidpy, $x, $outdir);
|
push @multi_worker, worker($multidpy, $x, $outdir, \%options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,13 +13,17 @@ our @EXPORT = qw(worker worker_next);
|
||||||
|
|
||||||
use File::Basename qw(basename);
|
use File::Basename qw(basename);
|
||||||
my @x;
|
my @x;
|
||||||
|
my $options;
|
||||||
|
|
||||||
sub worker {
|
sub worker {
|
||||||
my ($display, $x, $outdir) = @_;
|
my ($display, $x, $outdir, $optref) = @_;
|
||||||
|
|
||||||
# make sure $x hangs around
|
# make sure $x hangs around
|
||||||
push @x, $x;
|
push @x, $x;
|
||||||
|
|
||||||
|
# store the options hashref
|
||||||
|
$options = $optref;
|
||||||
|
|
||||||
socketpair(my $ipc_child, my $ipc, AF_UNIX, SOCK_DGRAM, PF_UNSPEC)
|
socketpair(my $ipc_child, my $ipc, AF_UNIX, SOCK_DGRAM, PF_UNSPEC)
|
||||||
or die "socketpair: $!";
|
or die "socketpair: $!";
|
||||||
|
|
||||||
|
@ -102,7 +106,13 @@ sub worker_wait {
|
||||||
$test->todo_output(\*STDOUT);
|
$test->todo_output(\*STDOUT);
|
||||||
|
|
||||||
@ENV{qw(DISPLAY TESTNAME OUTDIR VALGRIND STRACE COVERAGE RESTART)}
|
@ENV{qw(DISPLAY TESTNAME OUTDIR VALGRIND STRACE COVERAGE RESTART)}
|
||||||
= ($self->{display}, basename($file), $outdir, 0, 0, 0, 0);
|
= ($self->{display},
|
||||||
|
basename($file),
|
||||||
|
$outdir,
|
||||||
|
$options->{valgrind},
|
||||||
|
$options->{strace},
|
||||||
|
$options->{coverage},
|
||||||
|
$options->{restart});
|
||||||
|
|
||||||
package main;
|
package main;
|
||||||
local $@;
|
local $@;
|
||||||
|
|
Loading…
Reference in New Issue