---
name: "Test::Valgrind::Session"
section: "3pm"
platform: "linux"
package: "libtest-valgrind-perl"
version: "1.19-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::Valgrind::Session"
---

# Test::Valgrind::Session(3pm)

Test::Valgrind session object.

## 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_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 reference `"\@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 `$regen_def_supp` is true, the default suppression file associated with the tool and the command will be forcefully regenerated.

  Defaults to false.

- •

  If `$no_def_supp` is true, `"valgrind"` won't read the default suppression file associated with the tool and the command.

  Defaults to false.

- •

  If `$allow_no_supp` is true, the command will always be run into `"valgrind"` even if no appropriate suppression file is available.

  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"

```
    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.

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,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.
