From: Tony Cook Date: Sat, 13 Feb 2016 02:19:39 +0000 (+1100) Subject: imcover.perl: add an option to just regen coverage X-Git-Tag: v1.004_001~25 X-Git-Url: http://git.imager.perl.org/imager.git/commitdiff_plain/1c7c39406f15d3745b77c560767c0c695cf360d0 imcover.perl: add an option to just regen coverage --- diff --git a/imcover.perl b/imcover.perl index 5c75c438..09db97a8 100644 --- a/imcover.perl +++ b/imcover.perl @@ -9,33 +9,39 @@ my @tests; my $verbose; my $nodc; my $make_opts = ""; +my $regen_only; GetOptions("t|test=s" => \@tests, "m=s" => \$make_opts, "n" => \$nodc, - "v" => \$verbose) + "v" => \$verbose, + "r" => \$regen_only) or die; -my $make = $Config{make}; -# if there's a way to make with profiling for a recursive build like -# Imager I don't see how -if (-f 'Makefile') { - run("$make clean"); -} -run("cover -delete"); -run("perl Makefile.PL --coverage @ARGV") - and die "Makefile.PL failed\n"; -run("$make $make_opts 'OTHERLDFLAGS=-ftest-coverage -fprofile-arcs'") - and die "build failed\n"; +my $do_build = !$regen_only; +if ($do_build) { + my $make = $Config{make}; + # if there's a way to make with profiling for a recursive build like + # Imager I don't see how + if (-f 'Makefile') { + run("$make clean"); + } + run("cover -delete"); + run("perl Makefile.PL --coverage @ARGV") + and die "Makefile.PL failed\n"; + run("$make $make_opts 'OTHERLDFLAGS=-ftest-coverage -fprofile-arcs'") + and die "build failed\n"; -{ - local $ENV{DEVEL_COVER_OPTIONS} = "-db," . getcwd() . "/cover_db,-coverage,statement,branch,condition,subroutine"; - my $makecmd = "$make test TEST_VERBOSE=1"; - $makecmd .= " HARNESS_PERL_SWITCHES=-MDevel::Cover" unless $nodc; - if (@tests) { - $makecmd .= " TEST_FILES='@tests'"; + { + local $ENV{DEVEL_COVER_OPTIONS} = "-db," . getcwd() . "/cover_db,-coverage,statement,branch,condition,subroutine"; + my $makecmd = "$make test"; + $makecmd .= " TEST_VERBOSE=1" if $verbose; + $makecmd .= " HARNESS_PERL_SWITCHES=-MDevel::Cover" unless $nodc; + if (@tests) { + $makecmd .= " TEST_FILES='@tests'"; + } + run($makecmd) + and die "Test failed\n"; } - run($makecmd) - and die "Test failed\n"; } # build gcov files @@ -85,3 +91,18 @@ sub run { print "Running: $cmd\n" if $verbose; return system $cmd; } + +=head1 NAME + +imcover.perl - perform C and perl coverage testing for Imager + +=head1 SYNOPSIS + + perl imcover.perl [-m=...][-t=...][-n][-v][-r] -- ... Makefile.PL options + +=head1 DESCRIPTION + +Builds Imager with the C< -ftest-coverage -fprofile-arcs > gcc options +and then runs perl's tests. + +=cut