---
name: "Test::Fork"
section: "3pm"
platform: "linux"
package: "libtest-fork-perl"
version: "0.02-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::Fork"
---

# Test::Fork(3pm)

test code which forks

## NAME

Test::Fork - test code which forks

## SYNOPSIS

```
    use Test::More tests => 4;
    use Test::Fork;

    fork_ok(2, sub{
        pass("Test in the child process");
        pass("Another test in the child process");
    });

    pass("Test in the parent");
```

## DESCRIPTION

**THIS IS ALPHA CODE!**  The implementation is unreliable and the interface is subject to change.

Because each test has a number associated with it, testing code which forks is problematic.  Coordinating the test number amongst the parent and child processes is complicated.  Test::Fork provides a function to smooth over the complications.

### Functions

Each function is exported by default.

***fork\_ok***

```
    my $child_pid = fork_ok( $num_tests, sub {
        ...child test code...
    });
```

Runs the given child test code in a forked process.  Returns the pid of the forked child process, or false if the fork fails.

`$num_tests` is the number of tests in your child test code. Consider it to be a sub-plan.

**fork\_ok()** itself is a test, if the fork fails it will fail.  **fork\_ok()** test does not count towards your `$num_tests`.

```
    # This is three tests.
    fork_ok( 2, sub {
        is $foo, $bar;
        ok Something->method;
    });
```

The children are automatically reaped.

## CAVEATS

The failure of tests in a child process cannot be detected by the parent. Therefore, the normal end-of-test reporting done by Test::Builder will not notice failed child tests.

Test::Fork turns off test numbering in order to avoid test counter coordination issues.  It turns it back on once the children are done running.

Test::Fork will wait for all your child processes to complete at the end of the parent process.

## SEE ALSO

Test::MultiFork

## AUTHOR

Michael G Schwern \<schwern@pobox.com\>

## BUGS and FEEDBACK

Please send all bugs and feature requests to  *bug-Test-Fork* at *rt.cpan.org* or use the web interface via \<http://rt.cpan.org\>.

If you use it, please send feedback.  I like getting feedback.

## COPYRIGHT and LICENSE

Copyright 2007-2008 by Michael G Schwern \<schwern@pobox.com\>.

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

See *http://www.perl.com/perl/misc/Artistic.html*
