From 4483aef5bd082edad1459490915f01b747cea5fc Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 19 Jul 2017 20:29:26 -0300 Subject: [PATCH] Bug 18979: Speed up 'valid-templates.t' tests Content-Type: text/plain; charset=utf-8 Test plan: Confirm than prove xt/author/valid-templates.t is quicker with this patch. Before I got: Files=1, Tests=840, 21 wallclock secs ( 0.18 usr 0.02 sys + 20.28 cusr 0.32 csys = 20.80 CPU) After: Files=1, Tests=840, 17 wallclock secs ( 0.06 usr 0.01 sys + 21.56 cusr 0.48 csys = 22.11 CPU) Signed-off-by: David Bourgault Signed-off-by: Marcel de Rooy --- xt/author/valid-templates.t | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/xt/author/valid-templates.t b/xt/author/valid-templates.t index d31b01e..b7baf55 100644 --- a/xt/author/valid-templates.t +++ b/xt/author/valid-templates.t @@ -19,6 +19,10 @@ use Modern::Perl; +use threads; # used for parallel +use Parallel::ForkManager; +use Sys::CPU; + =head1 NAME valid-templates.t @@ -63,8 +67,18 @@ for my $theme ( grep { not /^\.|lib|js/ } readdir($dh) ) { } close $dh; +my $ncpu; +if ( $ENV{KOHA_PROVE_CPUS} ) { + $ncpu = $ENV{KOHA_PROVE_CPUS} ; # set number of cpus to use +} else { + $ncpu = Sys::CPU::cpu_count(); +} + +my $pm = new Parallel::ForkManager($ncpu); + # Tests foreach my $theme ( @themes ) { + $pm->start and next; # do the fork print "Testing $theme->{'type'} $theme->{'theme'} templates\n"; if ( $theme->{'theme'} eq 'bootstrap' ) { run_template_test( @@ -82,8 +96,11 @@ foreach my $theme ( @themes ) { $theme->{'includes'}, ); } + $pm->finish; } +$pm->wait_all_children; + done_testing(); sub run_template_test { -- 2.1.4