X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FTest%2FValgrind%2FTool.pm;h=0961fb8c896d867589ff3b080000e0025f4141e0;hb=63def84a00e5e8260b0456e0dfc716d35aab435a;hp=bb7adda0fa9e4d3013cf7b958dbb25bb0c39bd20;hpb=63f17cfcf624bc6764d32a7e674baf6329fd2d4a;p=perl%2Fmodules%2FTest-Valgrind.git diff --git a/lib/Test/Valgrind/Tool.pm b/lib/Test/Valgrind/Tool.pm index bb7adda..0961fb8 100644 --- a/lib/Test/Valgrind/Tool.pm +++ b/lib/Test/Valgrind/Tool.pm @@ -24,6 +24,8 @@ They are expected to function both in suppressions generation and in analysis mo =cut +use Test::Valgrind::Util; + use base qw; =head1 METHODS @@ -55,10 +57,10 @@ sub new { my %args = @_; if ($class eq __PACKAGE__) { - my $tool = delete $args{tool} || 'memcheck'; - $tool =~ s/[^\w:]//g; - $tool = __PACKAGE__ . "::$tool" if $tool !~ /::/; - $class->_croak("Couldn't load tool $tool: $@") unless eval "require $tool; 1"; + my ($tool, $msg) = Test::Valgrind::Util::validate_subclass( + delete $args{tool} || 'memcheck', + ); + $class->_croak($msg) unless defined $tool; return $tool->new(%args); }