Test::Valgrind::Tool - Base class for Test::Valgrind tools.


Test-Valgrind documentation Contained in the Test-Valgrind distribution.

Index


Code Index:

NAME

Top

Test::Valgrind::Tool - Base class for Test::Valgrind tools.

VERSION

Top

Version 1.12

DESCRIPTION

Top

This class is the base for Test::Valgrind tools.

They wrap around valgrind tools by parsing its output and sending reports to the parent session whenever an error occurs. They are expected to function both in suppressions generation and in analysis mode.

METHODS

Top

requires_version

The minimum valgrind version needed to run this tool. Defaults to 3.1.0.

new tool => $tool

Creates a new tool object of type $tool by requiring and redispatching the method call to the module named $tool if it contains '::' or to Test::Valgrind::Tool::$tool otherwise. The class represented by $tool must inherit this class.

new_trainer

Creates a new tool object suitable for generating suppressions.

Defaults to return undef, which skips suppression generation.

parser_class $session

Returns the class from which the parser for this tool output will be instanciated.

This method must be implemented when subclassing.

report_class $session

Returns the class in which suppression reports generated by this tool will be blessed.

This method must be implemented when subclassing.

args $session

Returns the list of tool-specific arguments that are to be passed to valgrind. All the suppression arguments are already handled by the session.

Defaults to the empty list.

suppressions_tag $session

Returns a identifier that will be used to pick up the right suppressions for running the tool, or undef to indicate that no special suppressions are needed.

This method must be implemented when subclassing.

start $session

Called when the $session starts.

Defaults to set started in Test::Valgrind::Component.

filter $session, $report

The $session calls this method after receiving a report from the parser and before letting the command filter it. You can either return a mangled $report (which does not need to be a clone of the original) or undef if you want the action to ignore it completely.

Defaults to the identity function.

finish $session

Called when the $session finishes.

Defaults to clear started in Test::Valgrind::Component.

SEE ALSO

Top

Test::Valgrind, Test::Valgrind::Component, Test::Valgrind::Session.

AUTHOR

Top

Vincent Pit, <perl at profvince.com>, http://www.profvince.com.

You can contact me by mail or on irc.perl.org (vincent).

BUGS

Top

Please report any bugs or feature requests to bug-test-valgrind at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Valgrind. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

Top

You can find documentation for this module with the perldoc command.

    perldoc Test::Valgrind::Tool

COPYRIGHT & LICENSE

Top


Test-Valgrind documentation Contained in the Test-Valgrind distribution.
package Test::Valgrind::Tool;

use strict;
use warnings;

our $VERSION = '1.12';

use base qw/Test::Valgrind::Component Test::Valgrind::Carp/;

sub requires_version { '3.1.0' }

sub new {
 my $class = shift;
 $class = ref($class) || $class;

 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";
  return $tool->new(%args);
 }

 $class->SUPER::new(@_);
}

sub new_trainer { }

sub parser_class;

sub report_class;

sub args { }

sub suppressions_tag;

sub filter { $_[2] }

1; # End of Test::Valgrind::Tool