---
name: "Test::Exec"
section: "3pm"
platform: "linux"
package: "perl-test2-tools-process"
version: "0.07-7"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Test::Exec"
---

# Test::Exec(3pm)

Test that some code calls exec without terminating testing

## NAME

Test::Exec - Test that some code calls exec without terminating testing

## VERSION

version 0.07

## SYNOPSIS

```
 use Test::More;
 use Test::Exec;

 is_deeply exec_arrayref { exec 'foo', 'bar', 'baz' }, [qw( foo bar baz )], 'found exec!';
 is exec_arrayref { }, undef, 'did not exec!';

 done_testing;
```

## DESCRIPTION

Test::Exec provides the most simple possible tools for testing code that might call `"exec"`, which would otherwise end your test by calling another program.  This code should detect and capture `"exec"` calls, even if they are inside an `"eval"`.

The concept was implementation was based on Test::Exit, but applied to `"exec"` instead of `"exit"`.

## FUNCTIONS

### exec\_arrayref

```
 exec_arrayref { ... }
```

runs the given code.  If the code calls `"exec"`, then this function will return an arrayref with its arguments.  If the code never calls `"exec"`, it will return `"undef"`.

### never\_exec\_ok

```
 never_exec_ok { ... }
```

Runs the given code.  If the code calls `"exec"`, then the test will fail (but exec will be intercepted and not performed).

## CAVEATS

This module installs its own version of `"exec"` in `"CORE::GLOBAL::exec"`, and may interact badly with any other code that is also trying to do such things.

## SEE ALSO

- Test::Exit

  Very similar to (and inspired) this module, but for `"exit"` testing instead of `"exec"`.

- Test::Mock::Cmd

  Provides an interface to mocking `"system"`, `"qx"` and `"exec"`.

## AUTHOR

Author: Graham Ollis \<plicease@cpan.org\>

Contributors:

Jeremy Mates (THRIG)

## COPYRIGHT AND LICENSE

This software is copyright (c) 2015-2022 by Graham Ollis.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
