NAME
Test::Valgrind::Session - Test::Valgrind session object.
VERSION
Version 1.10
DESCRIPTION
This class supervises the execution of the valgrind
process. It also acts as a dispatcher between the different components.
METHODS
new search_dirs => \@search_dirs, valgrind => [ $valgrind | \@valgrind ], min_version => $min_version, no_def_supp => $no_def_supp, extra_supps => \@extra_supps
The package constructor, which takes several options :
All the directories from
@search_dirs
will have valgrind appended to create a list of candidates for thevalgrind
executable.Defaults to the current
PATH
environment variable.If a simple scalar
$valgrind
is passed as the value to'valgrind'
, it will be the only candidate.@search_dirs
will then be ignored.If an array refernce
\@valgrind
is passed, its values will be prepended to the list of the candidates resulting from@search_dirs
.$min_version
specifies the minimalvalgrind
version required. The constructor will croak if it's not able to find an adequatevalgrind
from the supplied candidates list and search path.Defaults to none.
If
$no_def_supp
is false,valgrind
won't read the default suppression file associated with the tool and the command.Defaults to false.
$extra_supps
is a reference to an array of optional suppression files that will be passed tovalgrind
.Defaults to none.
valgrind
The path to the selected valgrind
executable.
version
The version object associated to the selected valgrind
.
no_def_supp
Read-only accessor for the no_def_supp
option.
extra_supps
Read-only accessor for the extra_supps
option.
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
.
report_class
Calls ->action->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
Returns the list of all the suppressions that will be passed to valgrind
. Honors "no_def_supp" and "extra_supps".
start
Starts the action and tool associated to the current run. It's automatically called at the beginning of "run".
abort $msg
Forwards to ->action->abort
after unshifting the session object to the argument list.
report $report
Forwards to ->action->report
after unshifting the session object to the argument list.
finish
Finishes the action and tool associated to the current run. It's automatically called at the end of "run".
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 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.