On Fri, Nov 22, 2002 at 05:29:34PM +0100, Philippe 'BooK' Bruhat wrote: > 1..7 > ok 1 - The proxy requests what we expect > ok 1 - Got what we wanted > ok 2 - The proxy requests what we expect > ok 2 - Got what we wanted > ok 1 - Served the correct number of requests > not ok 3 - Got what we wanted > # Failed test (t/20simple.t at line 84) > ok 3 - The proxy requests what we expect > # Looks like you planned 7 tests but only ran 3. > > (Before you ask: yeah, I know one of the tests fails, I am also > investigating this) > > Each instance of the forked Test::Builder thinks it's all alone in the > world, and starts at 1. Which is perfectly understandable. > > So I tried to add the following lines at the beginning of my test script: > > my $test = Test::Builder->new; > $test->use_numbers( 0 ); > > But Test::Builder is still confused and only sees the three tests run by > the parent process.
To get that to work you'd also shut off the ending checks. $test->no_ending(1); so it won't complain because it thinks you only ran 3 tests. The alternative is to play with the counter. use Test::More tests => 7; ...regular tests... fork a child ...run a test normally... back in the parent # force the parent to increment the counter for the test run in the child. $test->current_test($test->current_test + 1); > Ooh, I think I get it: the parent process' Test::Builder warns about the > fact that it has not seen all tests (since most of them were run by the > children). On the other hand, Test::Harness sees everything right, since > it's looking at the test script output only. > > Hence with make test, I simple have garbled output due to the diagnostics. > > I guess my question is something like is there's a way for the children's > test output to be taken into account by the main Test::Builder object? > Must I really use some IPC to report back to the parent process' > Test::Builder object? forking and IPC are not my bag, so I don't know what's possible and what's not. If you can do something to coordinate the parent and child objects which works everywhere, send a patch. But I don't know if IPC is portable. -- Michael G Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/ Perl Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One