NAME
Test::Valgrind::Session - Test::Valgrind session object.
VERSION
Version 1.19
DESCRIPTION
This class supervises the execution of the valgrind process. It also acts as a dispatcher between the different components.
METHODS
new
my $tvs = Test::Valgrind::Session->new(
search_dirs => \@search_dirs,
valgrind => $valgrind, # One candidate
valgrind => \@valgrind, # Several candidates
min_version => $min_version,
regen_def_supp => $regen_def_supp,
no_def_supp => $no_def_supp,
allow_no_supp => $allow_no_supp,
extra_supps => \@extra_supps,
);
The package constructor, which takes several options :
All the directories from
@search_dirswill have valgrind appended to create a list of candidates for thevalgrindexecutable.Defaults to the current
PATHenvironment variable.If a simple scalar
$valgrindis passed as the value to'valgrind', it will be the only candidate.@search_dirswill then be ignored.If an array refernce
\@valgrindis passed, its values will be prepended to the list of the candidates resulting from@search_dirs.$min_versionspecifies the minimalvalgrindversion required. The constructor will croak if it's not able to find an adequatevalgrindfrom the supplied candidates list and search path.Defaults to none.
If
$regen_def_suppis true, the default suppression file associated with the tool and the command will be forcefully regenerated.Defaults to false.
If
$no_def_suppis true,valgrindwon't read the default suppression file associated with the tool and the command.Defaults to false.
If
$allow_no_suppis true, the command will always be run intovalgrindeven if no appropriate suppression file is available.Defaults to false.
$extra_suppsis a reference to an array of optional suppression files that will be passed tovalgrind.Defaults to none.
valgrind
my $valgrind_path = $tvs->valgrind;
The path to the selected valgrind executable.
version
my $valgrind_version = $tvs->version;
The Test::Valgrind::Version object associated to the selected valgrind.
regen_def_supp
my $regen_def_supp = $tvs->regen_def_supp;
Read-only accessor for the regen_def_supp option.
no_def_supp
my $no_def_supp = $tvs->no_def_supp;
Read-only accessor for the no_def_supp option.
allow_no_supp
my $allow_no_supp = $tvs->allow_no_supp;
Read-only accessor for the allow_no_supp option.
extra_supps
my @extra_supps = $tvs->extra_supps;
Read-only accessor for the extra_supps option.
run
$tvs->run(
action => $action,
tool => $tool,
command => $command,
);
Runs the command $command through valgrind with the tool $tool, which will report to the action $action.
If the command is a Test::Valgrind::Command::Aggregate object, the action and the tool will be initialized once before running all the aggregated commands.
action
Read-only accessor for the action associated to the current run.
tool
Read-only accessor for the tool associated to the current run.
parser
Read-only accessor for the parser associated to the current tool.
command
Read-only accessor for the command associated to the current run.
do_suppressions
Forwards to ->action->do_suppressions.
parser_class
Calls ->tool->parser_class with the current session object as the unique argument.
report_class
Calls ->tool->report_class with the current session object as the unique argument.
def_supp_file
Returns an absolute path to the default suppression file associated to the current session.
undef will be returned as soon as any of ->command->suppressions_tag or ->tool->suppressions_tag are also undef. Otherwise, the file part of the name is builded by joining those two together, and the directory part is roughly File::HomeDir->my_home / .perl / Test-Valgrind / suppressions / $VERSION.
suppressions
my @suppressions = $tvs->suppressions;
Returns the list of all the suppressions that will be passed to valgrind. Honors "no_def_supp" and "extra_supps".
start
$tvs->start;
Starts the action and tool associated to the current run. It's automatically called at the beginning of "run".
abort
$tvs->abort($msg);
Forwards to ->action->abort after unshifting the session object to the argument list.
report
$tvs->report($report);
Forwards to ->action->report after unshifting the session object to the argument list.
finish
$tvs->finish;
Finishes the action and tool associated to the current run. It's automatically called at the end of "run".
status
my $status = $tvs->status;
Returns the status code of the last run of the session.
SEE ALSO
Test::Valgrind, Test::Valgrind::Action, Test::Valgrind::Command, Test::Valgrind::Tool, Test::Valgrind::Parser.
AUTHOR
Vincent Pit, <perl at profvince.com>, http://www.profvince.com.
You can contact me by mail or on irc.perl.org (vincent).
BUGS
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
You can find documentation for this module with the perldoc command.
perldoc Test::Valgrind::Session
COPYRIGHT & LICENSE
Copyright 2009,2010,2011,2013,2015,2016 Vincent Pit, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.