---
name: "Test::Valgrind::Command"
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::Command"
---

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

Base class for Test::Valgrind commands.

## NAME

Test::Valgrind::Command - Base class for Test::Valgrind commands.

## VERSION

Version 1.19

## DESCRIPTION

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

Commands gather information about the target of the analysis. They should also provide a default setup for generating suppressions.

## METHODS

### "new"

```
    my $tvc = Test::Valgrind::Command->new(
     command => $command,
     args    => \@args,
    );
```

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

The `"args"` key is used to initialize the "args" accessor.

### "new\_trainer"

Creates a new command object suitable for generating suppressions.

Defaults to return `"undef"`, which skips suppression generation.

### "args"

```
    my @args = $tvc->args($session);
```

Returns the list of command-specific arguments that are to be passed to `"valgrind"`.

Defaults to return the contents of the `"args"` option.

### "env"

```
    my $env = $tvc->env($session);
```

This event is called in scalar context before the command is ran, and the returned value goes out of scope when the analysis ends. It's useful for e.g. setting up `%ENV` for the child process by returning an Env::Sanctify object, hence the name.

Defaults to void.

### "suppressions\_tag"

```
    my $tag = $tvc->suppressions_tag($session);
```

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

This method must be implemented when subclassing.

### "check\_suppressions\_file"

```
    my $supp_ok = $tvc->check_suppressions_file($file);
```

Returns a boolean indicating whether the suppressions contained in `$file` are compatible with the command.

Defaults to true.

### "filter"

```
    my $filtered_report = $tvc->filter($session, $report);
```

The `$session` calls this method after receiving a report from the tool and before forwarding it to the action. 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.

## SEE ALSO

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

## 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::Command
```

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