[Twisted-Python] marking 3 problem tests on Windows 'todo'

glyph at divmod.com glyph at divmod.com
Sun Apr 9 22:39:26 EDT 2006

Currently there are 3 tests which are causing problems on the select reactor on win32, as detailed by this build report: 


I think they should all be marked 'todo'.  Although ideally all the functionality these tests cover should be supported on Windows, the tests themselves are somewhat suspect, and marking them as 'todo' conditionally for the platform would turn the Windows buildbot green, allowing us to notice much more quickly when other, more serious things have gone wrong.

I am writing out a big rationale here becuase normally .todo'ing tests which are passing is a big no-no, and I think that this is something of a special case due to the long period of neglect for the platform involved.

The test in question are:

 * twisted.pb.test.test_negotiate.CrossfireReverse.test1

I've talked to brian about this test being todo'd because it is intermittently failing on _all_ platforms; windows just seems to have a far greater chance of failing.

 * twisted.test.test_udp.MulticastTestCase.testJoinFailure

I'm not really sure what is going on here.  Some nuance of error reporting in Python? _is_ considered a multicast address on Windows?  This seems like it should be TODO'd conditionally, and there should be a ticket to conclusively diagnose it.

 * twisted.web2.test.test_http.SSLServerTest.testLingeringClose

Buffering 'lo' on Windows is weird.  I don't think that there is a proper way to fix this; IMHO the test is slightly buggy.  It's worth noting that the thing that's blowing up is a direct call to openssl's send(), _not_ a Twisted API.

While I think that this test is sort of suspicious, and it should figure out a way to be more lenient to its subprocess, I think that it can be todo'd for win32 since the behavior being tested isn't platform dependent, only the client APIs involved.  I believe that the ticket here should use Twisted in the subprocess so that if there is a portability issue with buffering, we can properly abstract it.

 * twisted.test.test_ssl.ConnectionLostTestCase.testFailedVerify

This is reporting the wrong error, but it is correctly dropping the connection.  There is a small security risk here, which bothers me, but there may be no way to expose the proper information without fixing bugs in openssl.  Considering that this passes on UNIX I believe it should also be conditionally marked on Windows.  The ticket here is simply to get the test to pass, since I think the test itself is OK in this circumstance.

In conclusion: one of these tests should be todo'd on all platforms, the rest should be todo'd conditionally if isWindows().  Any objections?

More information about the Twisted-Python mailing list