From fe8e97975194a47772ecdaef4462cd99d9e5c891 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 16:55:08 +0100 Subject: Update modules-test script --- tools/build/modules-test.pl | 49 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/tools/build/modules-test.pl b/tools/build/modules-test.pl index 396f066..1c8239b 100644 --- a/tools/build/modules-test.pl +++ b/tools/build/modules-test.pl @@ -1,5 +1,8 @@ #! perl +use warnings; +use strict; + use Cwd; use Getopt::Long; @@ -9,17 +12,39 @@ my $base = shift @ARGV; my $perl6 = shift @ARGV; while (<>) { - next if /^\s*(#|$)/; - my ($moduledir) = /(\S+)/; - print "Testing modules/$moduledir with $perl6...\n"; - if (-d "$base/modules/$moduledir/t") { - chdir("$base/modules/$moduledir"); - system('prove', $verbose ? '-v' : (), '-e', $perl6, '-r', 't'); - } - else { - print "...no t/ directory found.\n"; - } - print "\n"; + # Skip comments + next if /^\s*(#|$)/; + + # Extract only the module name from the current line + my ($moduledir) = /(\S+)/; + + # Run the tests through prove + if (-d "$base/modules/$moduledir/t") { + chdir("$base/modules/$moduledir"); + + my @cmd = ( + 'prove', + $verbose ? '-v' : (), + '-e', $perl6, + '-r', + 't', + ); + + # Show the command that's going to be ran, for debugging purposes + print "@cmd\n"; + + # Actually run the command + my $exit = system "@cmd"; + + # Exit early if any errors occurred + exit 1 if $exit; + } + else { + print "...no t/ directory found.\n"; + } + + print "\n"; } -0; +# If we reach this, no errors have been found +exit 0; -- cgit v1.1