# 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 ---------------------------------------------------