complete-run: don’t parallelize more than the number of tests
This commit is contained in:
parent
da8d0baa74
commit
81f4b6fc1a
|
@ -61,8 +61,16 @@ pod2usage(-verbose => 2, -exitcode => 0) if $help;
|
||||||
@displays = split(/,/, join(',', @displays));
|
@displays = split(/,/, join(',', @displays));
|
||||||
@displays = map { s/ //g; $_ } @displays;
|
@displays = map { s/ //g; $_ } @displays;
|
||||||
|
|
||||||
|
# 2: get a list of all testcases
|
||||||
|
my @testfiles = @ARGV;
|
||||||
|
|
||||||
|
# if no files were passed on command line, run all tests from t/
|
||||||
|
@testfiles = <t/*.t> if @testfiles == 0;
|
||||||
|
|
||||||
|
my $numtests = scalar @testfiles;
|
||||||
|
|
||||||
# No displays specified, let’s start some Xdummy instances.
|
# No displays specified, let’s start some Xdummy instances.
|
||||||
@displays = start_xdummy($parallel) if @displays == 0;
|
@displays = start_xdummy($parallel, $numtests) if @displays == 0;
|
||||||
|
|
||||||
# 1: create an output directory for this test-run
|
# 1: create an output directory for this test-run
|
||||||
my $outdir = "testsuite-";
|
my $outdir = "testsuite-";
|
||||||
|
@ -96,12 +104,6 @@ for my $display (@displays) {
|
||||||
my $timingsjson = StartXDummy::slurp('.last_run_timings.json');
|
my $timingsjson = StartXDummy::slurp('.last_run_timings.json');
|
||||||
%timings = %{decode_json($timingsjson)} if length($timingsjson) > 0;
|
%timings = %{decode_json($timingsjson)} if length($timingsjson) > 0;
|
||||||
|
|
||||||
# 2: get a list of all testcases
|
|
||||||
my @testfiles = @ARGV;
|
|
||||||
|
|
||||||
# if no files were passed on command line, run all tests from t/
|
|
||||||
@testfiles = <t/*.t> if @testfiles == 0;
|
|
||||||
|
|
||||||
# Re-order the files so that those which took the longest time in the previous
|
# Re-order the files so that those which took the longest time in the previous
|
||||||
# run will be started at the beginning to not delay the whole run longer than
|
# run will be started at the beginning to not delay the whole run longer than
|
||||||
# necessary.
|
# necessary.
|
||||||
|
|
|
@ -27,7 +27,7 @@ the Xdummy processes and a list of PIDs of the processes.
|
||||||
my $x_socketpath = '/tmp/.X11-unix/X';
|
my $x_socketpath = '/tmp/.X11-unix/X';
|
||||||
|
|
||||||
sub start_xdummy {
|
sub start_xdummy {
|
||||||
my ($parallel) = @_;
|
my ($parallel, $numtests) = @_;
|
||||||
|
|
||||||
my @displays = ();
|
my @displays = ();
|
||||||
my @childpids = ();
|
my @childpids = ();
|
||||||
|
@ -41,6 +41,9 @@ sub start_xdummy {
|
||||||
|
|
||||||
$parallel ||= $num_cores * 2;
|
$parallel ||= $num_cores * 2;
|
||||||
|
|
||||||
|
# If we are running a small number of tests, don’t over-parallelize.
|
||||||
|
$parallel = $numtests if $numtests < $parallel;
|
||||||
|
|
||||||
# First get the last used display number, then increment it by one.
|
# First get the last used display number, then increment it by one.
|
||||||
# Effectively falls back to 1 if no X server is running.
|
# Effectively falls back to 1 if no X server is running.
|
||||||
my ($displaynum) = map { /(\d+)$/ } reverse sort glob($x_socketpath . '*');
|
my ($displaynum) = map { /(\d+)$/ } reverse sort glob($x_socketpath . '*');
|
||||||
|
|
Loading…
Reference in New Issue