]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/blobdiff - lib/Test/Valgrind/Session.pm
The report_class is given by the tool, not by the action
[perl/modules/Test-Valgrind.git] / lib / Test / Valgrind / Session.pm
index fe521a0e0907ef8edc18d36c253c538131b4af83..b1710e2947acf86b0bf17922ce713fd86dd4462e 100644 (file)
@@ -9,11 +9,11 @@ Test::Valgrind::Session - Test::Valgrind session object.
 
 =head1 VERSION
 
-Version 1.02
+Version 1.11
 
 =cut
 
-our $VERSION = '1.02';
+our $VERSION = '1.11';
 
 =head1 DESCRIPTION
 
@@ -22,15 +22,13 @@ It also acts as a dispatcher between the different components.
 
 =cut
 
-# All these modules are required at configure time.
+use File::Spec   ();
+use Scalar::Util ();
 
-BEGIN {
- require File::Spec;
- require Scalar::Util;
+use Fcntl (); # F_SETFD
+use POSIX (); # SIGKILL
 
- require Fcntl; # F_SETFD
- require POSIX; # SIGKILL
-}
+use version ();
 
 use base qw/Test::Valgrind::Carp/;
 
@@ -78,11 +76,6 @@ Defaults to none.
 
 =cut
 
-my $build_version = sub {
- require version;
- version->new($_[0]);
-};
-
 sub new {
  my $class = shift;
  $class = ref($class) || $class;
@@ -90,7 +83,7 @@ sub new {
  my %args = @_;
 
  my @paths;
- my $vg = delete $args{vg};
+ my $vg = delete $args{valgrind};
  if (defined $vg and not ref $vg) {
   @paths = ($vg);
  } else {
@@ -103,7 +96,7 @@ sub new {
  $class->_croak('Empty valgrind candidates list') unless @paths;
 
  my $min_version = delete $args{min_version};
- defined and not ref and $_ = $build_version->($_) for $min_version;
+ defined and not ref and $_ = version->new($_) for $min_version;
 
  my ($valgrind, $version);
  for (@paths) {
@@ -111,7 +104,7 @@ sub new {
   my $ver = qx/$_ --version/;
   if ($ver =~ /^valgrind-(\d+(\.\d+)*)/) {
    if ($min_version) {
-    $version = $build_version->($1);
+    $version = version->new($1);
     next if $version < $min_version;
    } else {
     $version = $1;
@@ -149,7 +142,7 @@ sub version {
  my ($self) = @_;
 
  my $version = $self->{version};
- $self->{version} = $version = $build_version->($version) unless ref $version;
+ $self->{version} = $version = version->new($version) unless ref $version;
 
  return $version;
 }
@@ -284,6 +277,10 @@ Read-only accessor for the C<action> associated to the current run.
 
 Read-only accessor for the C<tool> associated to the current run.
 
+=head2 C<parser>
+
+Read-only accessor for the C<parser> associated to the current tool.
+
 =head2 C<command>
 
 Read-only accessor for the C<command> associated to the current run.
@@ -307,9 +304,17 @@ Forwards to C<< ->action->do_suppressions >>.
 
 sub do_suppressions { $_[0]->action->do_suppressions }
 
+=head2 C<parser_class>
+
+Calls C<< ->tool->parser_class >> with the current session object as the unique argument.
+
+=cut
+
+sub parser_class { $_[0]->tool->parser_class($_[0]) }
+
 =head2 C<report_class>
 
-Calls C<< ->action->report_class >> with the current session object as the unique argument.
+Calls C<< ->tool->report_class >> with the current session object as the unique argument.
 
 =cut
 
@@ -388,7 +393,7 @@ sub start {
  delete @{$self}{qw/last_status exit_code/};
 
  $self->tool->start($self);
- $self->parser($self->tool->parser_class($self)->new)->start($self);
+ $self->parser($self->parser_class->new)->start($self);
  $self->action->start($self);
 
  return;