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