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

Reply via email to