Most people don't realize this, but test.pl doesn't really work outside the core.
MakeMaker runs module tests in t/*.t are run through Test::Harness. test.pl is *not*. As a result, there is no parsing of the output. The only way "make test" can fail is if test.pl exits abnormally. A 'not ok' will *not* cause "make test" to fail (unless you're using Test::Simple or Test::More, which *will* exit abnormally for you on failure). This makes any sort of automated testing really hard. It also trips up the CPAN shell. Why is it that way? Well, I think it's because test.pl predates the universal adaption of Test::Harness. So there's no explicit structure imposed on it's output. Some modules do follow the harness output style. Others don't. Others don't use it to test at all, but do other things, like benchmarking (for example, DBI). The test.pl convention is forever muddled. To attempt to impose Test::Harness discipline on it would break lots and lots and lots of CPAN modules. So we'll leave it muddled and recommend people use the t/*.t files instead. So we phase out test.pl by... Update module author documentation to say to use t/Foo.t instead of test.pl, even if you only have one test file. Alter h2xs and ExtUtils::ModuleMaker to make the stub test be t/Foo.t instead of test.pl. CPAN::Test (formerly CPAN::Smoke), the testing arm of CPANTS, will note the use of test.pl and recommend the author change it to t/Foo.t -- Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/ Perl6 Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One <mendel> ScHWeRnsChweRN sChWErN SchweRN SCHWErNSChwERnsCHwERN sChWErn ScHWeRn schweRn sCHWErN schWeRn scHWeRN SchWeRN scHWErn SchwErn scHWErn ScHweRN sChwern scHWerN scHWeRn scHWerN ScHwerN SChWeRN scHWeRn SchwERNschwERn SCHwern sCHWErN SCHWErN sChWeRn