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 the valgrind 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 minimal valgrind version required. The constructor will croak if it's not able to find an adequate valgrind 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 to valgrind.

    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.

version, File::HomeDir.

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.