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