]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/commitdiff
Allow passing a command to Test::Valgrind->import
authorVincent Pit <vince@profvince.com>
Tue, 14 Apr 2009 13:52:15 +0000 (15:52 +0200)
committerVincent Pit <vince@profvince.com>
Tue, 14 Apr 2009 13:53:46 +0000 (15:53 +0200)
lib/Test/Valgrind.pm

index a447541b0a7e4e9f63148bcc6f1cbd2a76f6d991..4b33486fe3e34b5eeae8e74d0f2aa01b68dbbccb 100644 (file)
@@ -47,6 +47,14 @@ You can pass parameters to C<import> as a list of key / value pairs, where valid
 
 =item *
 
+C<< command => $command >>
+
+The L<Test::Valgrind::Command> object (or class name) to use.
+
+Defaults to L<Test::Valgrind::Command::PerlScript>.
+
+=item *
+
 C<< tool => $tool >>
 
 The L<Test::Valgrind::Tool> object (or class name) to use.
@@ -136,18 +144,21 @@ sub import {
   return;
  }
 
- require Test::Valgrind::Command;
- my $cmd = Test::Valgrind::Command->new(
-  command => 'PerlScript',
-  file    => $file,
-  args    => [ '-MTest::Valgrind=run,1' ],
- );
-
  my $instanceof = sub {
   require Scalar::Util;
   Scalar::Util::blessed($_[0]) && $_[0]->isa($_[1]);
  };
 
+ my $cmd = delete $args{command};
+ unless ($cmd->$instanceof('Test::Valgrind::Command')) {
+  require Test::Valgrind::Command;
+  $cmd = Test::Valgrind::Command->new(
+   command => $cmd || 'PerlScript',
+   file    => $file,
+   args    => [ '-MTest::Valgrind=run,1' ],
+  );
+ }
+
  my $tool = delete $args{tool};
  unless ($tool->$instanceof('Test::Valgrind::Tool')) {
   require Test::Valgrind::Tool;