On Thu, Feb 26, 2009 at 6:24 PM, Michael G Schwern <schw...@pobox.com> wrote:
> demerphq wrote:
>> Id prefer we find a different solution. Im not sure what it is, but
>> having the tests all run in one block is a very desirable feature.

Me too.

> The important thing is the core change from running the ext/ tests manually to
> using each module's own "make test".  This will make integrating and
> developing dual life modules far easier by eliminating a key difference in how
> ext/ and CPAN modules are developed.

Hmm.  This only makes any difference for modules that distribute their
own libraries that are only used for testing, right?  It looks like
ext/Test-Harness/t/lib is the only one like that currently.  Add
Module::Build and ExtUtils::MakeMaker when they get moved to ext/,
maybe a couple others.  So in order to accommodate a few special
cases, you're proposing a significant change to the way tests are
done, a change that adds multiple points of failure to a process
that's been pretty well debugged over a period of years, and also
creates a lot of churn in all the platform-specific bits of the
toolchain, not to mention Test::Smoke?  Ick.

Wouldn't it be much, much simpler to add a few lines of code somewhere
central (possibly t/TestInit.pm, maybe t/TEST) that recognizes the
special cases of "I'm a funny module that can't run tests without
access to my own special, uninstalled libraries under
../ext/$module_name/t/lib"?  The "special needs" modules under ext
wouldn't have to do anything different from what they do on CPAN and
the core test process wouldn't change except to add one entry to @INC
for the special cases.  That's a list that would be very short and
wouldn't change very often.  Heck, it might even work to pass
-I../ext/$module_name/t/lib to *all* tests under ext/, and the
extensions that don't have such a directory obviously won't get
anything loaded from there.

Reply via email to