On Sat, Sep 16, 2006 at 04:36:50PM -0500, Michael G Schwern wrote:
> The tenor of the opinions in the passing TODO tests bother me a bit.  It 
> seems folks have forgotten why the CPAN installation chain exists.  
> Especially the assertion that its perfectly ok for modules to start failing 
> even though there's nothing wrong with them (unless you reeeeaally stretch 
> things).  The install chain is a special place and very conservative, often 
> radically so.
> 

I'm sure hoping that some of the things that I've been planning on in the
Perl 5 core have not been interpreted incorrectly.  I've been planning
for quite some time to add additional TODO tests for bugs currently in 
the Perl 5 bug queue.  We've even altered the Test::Harness to report
on passing TODO tests.  This, however, is of primary importance for the
developers and not for the typical user.

When you have a bug queue the size of the Perl 5 bug queue, you are bound
to have multiple tickets related to a single problem.  Possibly a bug
will manifest itself with multiple symptoms.  The primary purpose of 
adding the TODO tests are to alert the developers when a bug is
coincidentally fixed.  Smoke testing will discover the passing TODO's to
alert developers that another bug has been fixed.  It should not, however,
cause any alarm to the typical user compiling, testing, and installing
Perl.  It shouldn't cause additional bug reports for simply confirming
whether a specific bug exists or not.

The other purpose of TODO's is to provide a ready made test case when 
the bug is fixed.  If you are following one of the many test driven
development models, when you have a bug, the first step is to write a 
test case.  Using TAP, however, we have a way to capture the test case
without causing the tests to fail for the typical user.  The bug fix
can come at a different time, or even from a different developer than
the one that wrote the test case.  This is ideal for an open source
where developers have differing skill sets and motivations regarding
bug fixes and testing.

So, if you as a developer want to cause a TODO test case to behave like
a normal test case, there is a simple answer.  Don't make the test case be
a TODO.  The choice is up to the developer.  It should never be up to the
user.  This is expected as part of the TAP protocol and would have the 
possiblity of effected many unsuspecting developers and users.

Steve Peters
[EMAIL PROTECTED]

Reply via email to