# from Eric Wilhelm
# on Monday 10 September 2007 11:14 pm:
>Hacking t/harness to do
>
> system($^X, qw(-I /tmp/lib -S runtests -j 9), @tests);
>
>in place of 'Test::Harness::runtests(@tests)' gets it rolling. (I
> know, that could be App::Prove->new and not need the system(), but
> this is essentially the same problem as parrot where the tests are
> organized internally (by logic inside the t/harness file), which
> makes it hard to run them with the standard runtests application.)
Not too bad in 5.8.8. Two TAP::Harness bugs, and one resource conflict
(with directory-based process partitioning.)
../lib/Test/t/multiline.t (Wstat: 0 Tests: 2 Failed: 2)
Failed tests: 1-2
Parse errors: No plan found in TAP output
run/fresh_perl.t (Wstat: 0 Tests: 94 Failed: 1)
Failed tests: 9
op/stat.t (Wstat: 0 Tests: 86 Failed: 1)
Failed tests: 48
Files=995, Tests=117285, 204 wallclock secs (64.09 usr 6.80 sys +
255.18 cusr 39.91 csys = 365.98 CPU)
--vs runtests without -j -----------------
op/stat.t (Wstat: 0 Tests: 86 Failed: 1)
Failed tests: 48
../lib/Test/t/multiline.t (Wstat: 0 Tests: 2 Failed: 2)
Failed tests: 1-2
Parse errors: No plan found in TAP output
Files=995, Tests=117285, 499 wallclock secs (59.98 usr 8.19 sys +
254.29 cusr 40.83 csys = 363.29 CPU)
For comparison, the original t/harness:
All tests successful, 59 tests and 239 subtests skipped.
Files=995, Tests=117285, 490 wallclock secs (257.00 cusr + 47.79 csys =
304.79 CPU)
And yes, that is 60% reduced waiting.
--Eric
--
Introducing change is like pulling off a bandage: the pain is a memory
almost as soon as you feel it.
--Paul Graham
---------------------------------------------------
http://scratchcomputing.com
---------------------------------------------------