--- Eric Wilhelm <[EMAIL PROTECTED]> wrote:

> Now, assuming that both ways carry the same caveats, I too would
> prefer 
> the latter because it not only eliminates load time, but also allows 
> concurrency and provides isolation via the boundary between child 
> processes.

I may be a bit of a heretic, but after years of using Test::Class, I
rather like the fact that I don't have the isolation between tests
because a lot of code makes incorrect assumptions about all sorts of
things.  For example, here's a couple of time bombs waiting to happen:

  sub slurp {
    open FH, "< $file" or die $!;
    do { $/ = undef; <FH> }
  }

Without the process boundary, I'm more likely to catch this in tests.

I know most folks would disagree with me on this, but I find this a far
more common problem than folks think.

> Hmm, could one slurp the __DATA__/__END__ block into a scalar and
> open 
> DATA, '<', \$scalar it on behalf of the subprocess?
> 
> PPI?

The goal of Test::Aggregate was to improve performance :)

Kidding aside, PPI could be an optional feature to get around some
issues, but only with aggressive caching and the open question is
whether or not "speeding up tests" is a widespread enough problem to
warrant the effort.
 
> I don't see anything in Test::Aggregate where "which modules to
> preload" 
> is specified.  Presumably, it lets perl's compile-time handle that.  

Correct.  As I've stated before, the goal of this is to make it as
transparent as possible.  Move tests from t/ to your 'aggregate'
directory.

> I also wonder about debug-ability where the `prove aggtests/foo.t` is

> potentially a completely different landscape than the full run.  If
> the 
> full run is 10 minutes and the landscape-specific failure is at the
> end 
> that seems a bit costly.

You can dump the file that it's running and debug that, including
commenting out slow bits.  This is documented.

Cheers,
Ovid

--
Buy the book  - http://www.oreilly.com/catalog/perlhks/
Perl and CGI  - http://users.easystreet.com/ovid/cgi_course/
Personal blog - http://publius-ovidius.livejournal.com/
Tech blog     - http://use.perl.org/~Ovid/journal/

Reply via email to