
if there is anything I can do to clarify (like i.e. running on non-virtualized
hardware FreeBSD) let me know.
Have you run the tests on OS X as well?
I'll do that.
Caveat: as attached to the ticket, there are some errs when running trial which don't happen with select reactor.
Do you think you could start fixing some of those errors? Do they make
I've looked at the logs in more detail, the error _diff_ between select/kqueue yields:
twisted.test.test_tcp.HalfCloseBuggyApplicationTests.test_readNotificationRaises twisted.test.test_tcp.HalfCloseTestCase.testCloseWriteCloser twisted.test.test_tcp.HalfCloseTestCase.testWriteCloseNotification
which all seem to be testing TCP Half-Close.
I've looked at the case code .. guess I can grasp that after reading some background.
But I have no clue where to start "fixing" / looking for why this works with the select reactor vs kqueue.
sense to you? If you're interested in moving this ticket forward, I'm sure that folks on this mailing list (me included) would love to provide you some guidance.
Ok, will see what I can do.
Need some advice/hints though.
Generally, there are a couple of skipped tests missing modules (i.e. pycrypto) which I could install. Should I do that, or are those not necessary? Note, that there are packages I could, but would not like to install: GTK etc.
Then, whats the difference between FAIL and ERROR?
Then, there are a couple of tests which are skipped because
xxx_KQueueReactor No module named kqsyscall
The kqsyscall should now be select.kqueue/kevent .. so I guess those test cases needed to be adapted as well, right?
Then, baseline. I've run the trial using select reactor in the expectation of finding all tests passed.
This is not the case, there are a couple of failed ones. Those are also failed with the kqueue reactor, so I need to know whether I need to inspect those or those are problems unrelated to the reactor, but of general (platform?) nature.
[1] twisted.internet.test.test_posixprocess FileDescriptorTests test_expectedFDs ... [FAIL]
[2] twisted.internet.test.test_process PTYProcessTestsBuilder_PollReactor test_openFileDescriptors ... [ERROR] PTYProcessTestsBuilder_SelectReactor test_openFileDescriptors ... [ERROR] ProcessTestsBuilder_PollReactor test_openFileDescriptors ... [ERROR] ProcessTestsBuilder_SelectReactor test_openFileDescriptors ... [ERROR]
[3] twisted.python.test.test_components RegistrationTestCase test_duplicateAdapterForInterfaceAllowed ... [ERROR] test_registerAdapterForInterface ... [ERROR] test_subclassAdapterRegistrationForInterface ... [ERROR]
Now, [2] could be a consequence of [3], since they all fail because of
exceptions.ValueError: an adapter (<function <lambda> at 0x2c0dc41c>) was already registered.
See:
twisted.internet.test.test_process.PTYProcessTestsBuilder_PollReactor.test_openFileDescriptors twisted.internet.test.test_process.PTYProcessTestsBuilder_SelectReactor.test_openFileDescriptors twisted.internet.test.test_process.ProcessTestsBuilder_PollReactor.test_openFileDescriptors twisted.internet.test.test_process.ProcessTestsBuilder_SelectReactor.test_openFileDescriptors =============================================================================== [ERROR] Traceback (most recent call last): File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/python/test/test_components.py", line 351, in test_duplicateAdapterForInterfaceAllowed return self._duplicateAdapterForClassOrInterfaceAllowed(TheOriginal) File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/python/test/test_components.py", line 312, in _duplicateAdapterForClassOrInterfaceAllowed components.registerAdapter(firstAdapter, original, TheInterface) File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/python/components.py", line 93, in registerAdapter raise ValueError("an adapter (%s) was already registered." % (factory, )) exceptions.ValueError: an adapter (<function <lambda> at 0x2c0dc41c>) was already registered.
twisted.python.test.test_components.RegistrationTestCase.test_duplicateAdapterForInterfaceAllowed =============================================================================== [ERROR] Traceback (most recent call last): File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/python/test/test_components.py", line 268, in test_registerAdapterForInterface return self._registerAdapterForClassOrInterface(TheOriginal) File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/python/test/test_components.py", line 245, in _registerAdapterForClassOrInterface components.registerAdapter(adapter, original, TheInterface) File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/python/components.py", line 93, in registerAdapter raise ValueError("an adapter (%s) was already registered." % (factory, )) exceptions.ValueError: an adapter (<function <lambda> at 0x2c0dc41c>) was already registered.
twisted.python.test.test_components.RegistrationTestCase.test_registerAdapterForInterface =============================================================================== [ERROR] Traceback (most recent call last): File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/python/test/test_components.py", line 423, in test_subclassAdapterRegistrationForInterface return self._subclassAdapterRegistrationForClassOrInterface(TheOriginal) File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/python/test/test_components.py", line 396, in _subclassAdapterRegistrationForClassOrInterface components.registerAdapter(firstAdapter, original, TheInterface) File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/python/components.py", line 93, in registerAdapter raise ValueError("an adapter (%s) was already registered." % (factory, )) exceptions.ValueError: an adapter (<function <lambda> at 0x2c0dc41c>) was already registered.
twisted.python.test.test_components.RegistrationTestCase.test_subclassAdapterRegistrationForInterface
=======
And [1]:
twisted.internet.test.test_posixprocess.FileDescriptorTests.test_expectedFDs =============================================================================== [ERROR] Traceback (most recent call last): File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/internet/_baseprocess.py", line 60, in maybeCallProcessEnded proto.processEnded(Failure(reason)) File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/internet/test/test_process.py", line 289, in processEnded checkOutput("".join(self.output)) File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/internet/test/test_process.py", line 276, in checkOutput self.assertEquals('[0, 1, 2, 3]', output) twisted.trial.unittest.FailTest: not equal: a = '[0, 1, 2, 3]' b = 'xrange(256)'
**********************************************
Now, for the kqeue reactor, the following _additional_ errors appear:
twisted.test.test_tcp HalfCloseBuggyApplicationTests test_readNotificationRaises ... [FAIL] HalfCloseTestCase testCloseWriteCloser ... [ERROR] testWriteCloseNotification ... [ERROR]
twisted.test.test_tcp.HalfCloseBuggyApplicationTests.test_readNotificationRaises =============================================================================== [ERROR] Traceback (most recent call last): File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/internet/_baseprocess.py", line 60, in maybeCallProcessEnded proto.processEnded(Failure(reason)) File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/internet/test/test_process.py", line 289, in processEnded checkOutput("".join(self.output)) File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/internet/test/test_process.py", line 276, in checkOutput self.assertEquals('[0, 1, 2, 3]', output) twisted.trial.unittest.FailTest: not equal: a = '[0, 1, 2, 3]' b = 'xrange(256)'
=============================================================================== [ERROR] Traceback (most recent call last): Failure: twisted.internet.defer.TimeoutError: <twisted.test.test_tcp.HalfCloseTestCase testMethod=testCloseWriteCloser> (testCloseWriteCloser) still running at 120.0 secs
twisted.test.test_tcp.HalfCloseTestCase.testCloseWriteCloser =============================================================================== [ERROR] Traceback (most recent call last): Failure: twisted.trial.util.DirtyReactorAggregateError: Reactor was unclean. DelayedCalls: (set twisted.internet.base.DelayedCall.debug = True to debug) <DelayedCall 0x29c0462c [-6.91413879395e-05s] called=0 cancelled=0 LoopingCall<0>(check, *(), **{})()>
twisted.test.test_tcp.HalfCloseTestCase.testCloseWriteCloser =============================================================================== [ERROR] Traceback (most recent call last): Failure: twisted.trial.util.DirtyReactorAggregateError: Reactor was unclean. Selectables: <<class 'twisted.internet.tcp.Port'> of twisted.test.test_tcp.MyHCFactory on 53746>
twisted.test.test_tcp.HalfCloseTestCase.testCloseWriteCloser =============================================================================== [ERROR] Traceback (most recent call last): Failure: twisted.internet.defer.TimeoutError: <twisted.test.test_tcp.HalfCloseTestCase testMethod=testWriteCloseNotification> (testWriteCloseNotification) still running at 120.0 secs
twisted.test.test_tcp.HalfCloseTestCase.testWriteCloseNotification =============================================================================== [ERROR] Traceback (most recent call last): File "/home/autobahn/python/lib/python2.7/site-packages/Twisted-11.0.0-py2.7-freebsd-8.2-RELEASE-p3-i386.egg/twisted/test/test_tcp.py", line 1602, in tearDown self.assertEquals(self.client.closed, 0) twisted.trial.unittest.FailTest: not equal: a = 1 b = 0
twisted.test.test_tcp.HalfCloseTestCase.testWriteCloseNotification =============================================================================== [ERROR] Traceback (most recent call last): Failure: twisted.trial.util.DirtyReactorAggregateError: Reactor was unclean. DelayedCalls: (set twisted.internet.base.DelayedCall.debug = True to debug) <DelayedCall 0x2bf7f4ac [-6.29425048828e-05s] called=0 cancelled=0 LoopingCall<0>(check, *(), **{})()>
twisted.test.test_tcp.HalfCloseTestCase.testWriteCloseNotification