in reply to Writing a Test Harness

Try to avoid using forked processes in the tests (or to use modules for the test using such processes). If forked processes are used, these must terminate themselves.

In Windows forked processes are implemented as pseudo-processes. To use kill(9, $child) on pseudo-processes is unsafe and there is a probability that the process which implements all the pseudo-processes is blocked. The test can hang.

The outcome of kill on a pseudo-process, depends on the timing in the operating system, and code that has worked, suddenly can fail, resulting in errors which are difficult to find.