On Sun, Sep 11, 2005 at 01:52:41PM -0400, Christopher H. Laco wrote:
> I've always thought tests passing should be a requisite of make by 
> default. Make fails if tests fail. There should of course be a 
> -skiptests to opt out of testing for those who insist on not doing it, 
> but for the most part, if tests are so important like we the perl 
> community say they are, then they should be run as part of make. Period.

This is a bad idea.

If people don't want to run tests, they won't run the tests.  If people want
to ignore test failures, they will ignore them.  Putting more technology in
their way just makes it a bit more annoying (see also the long, expensive
War On Piracy that is DRM).  This is a social problem that will not be 
solved with technology, especially not BDSM tech.

Tying together the build and test phase and then inserting a new back
door doesn't change anything except reducing the flexibility of the build
system (now you can't easily tell the difference between a build failure and
a test failure) and making people learn the new work around.  Doesn't make 
much difference if I say "make;  make install" or if I say "make --skiptests; 
make install", the tests don't get run.

Finally, there's many, many, many instances where a test will fail even
though something isn't really wrong.  The author made a bad assumption about
my environment or maybe the tests are just crap.  The former happens all
the time with network modules (LWP and mod_perl come to mind) or when 
installing CPAN modules on a non-Unix system (what do you mean you don't
have ctime?!)  *I*, the human end-user, get to evaluate the failure and
decide to go ahead anyway.  Sometimes its better to have a mostly working
module than no module at all.

This could be called the 2nd ammendment of CPAN: The right to blow off
your own foot.


It also reminds me of a possibly apocryphal story about the analog 
targetting computers they used to use on ships in WWII.  These things were
simple mechanical computers that given such variables as the range, speed,
heading and angle off the bow to your target plus your own speed and heading,
plus wind conditions, plus information about the gun you're firing would tell
you at what angle and elevation to lay the gun and how much powder to use
to transport a lump of metal onto the enemy's deck.  During heavy use they
had a tendency to overheat.  The computer had safeguards to shut itself 
down before it damaged itself, it doesn't to do break your expensive 
targetting computer during a training exercise.  It had a switch called 
"Battle Mode".  When in this mode rather than shutting down when it started 
to overheat or detected a fault it would just light warning lights but 
continue to supply firing solutions.  Right answers, wrong answers... any 
answer is better than no answer when you're beign shot at... and it would 
keep right on pumping out answers until it melted down.  Because the last
thing you want is your guns to stop firing because some programmer put in 
an overzealous assert()!


-- 
Michael G Schwern     [EMAIL PROTECTED]     http://www.pobox.com/~schwern
I do have a cause though. It's obscenity. I'm for it.
    - Tom Lehrer

Reply via email to