Index: twisted/internet/test/test_tcp.py
===================================================================
--- twisted/internet/test/test_tcp.py	(revision 33676)
+++ twisted/internet/test/test_tcp.py	(working copy)
@@ -22,7 +22,7 @@
 from twisted.internet.error import ConnectionDone, ConnectionAborted
 from twisted.internet.interfaces import (
     ILoggingContext, IResolverSimple, IConnector, IReactorFDSet,
-    ITLSTransport)
+    ITLSTransport, IReactorTCP)
 from twisted.internet.address import IPv4Address, IPv6Address
 from twisted.internet.defer import (
     Deferred, DeferredList, succeed, fail, maybeDeferred, gatherResults)
@@ -416,6 +416,8 @@
     """
     Builder defining tests relating to L{IReactorTCP.connectTCP}.
     """
+    requiredInterfaces = (IReactorTCP,)
+
     def serverEndpoint(self, reactor):
         """
         Create a L{TCP4ServerEndpoint} listening on localhost on a
@@ -740,6 +742,8 @@
     """
     Tests for L{IReactorTCP.listenTCP}
     """
+    requiredInterfaces = (IReactorTCP,)
+
     def getListeningPort(self, reactor, factory):
         """
         Get a TCP port from a reactor.
@@ -1064,6 +1068,8 @@
     """
     Builder defining tests relating to L{twisted.internet.tcp.Connection}.
     """
+    requiredInterfaces = (IReactorTCP,)
+
     def test_stopStartReading(self):
         """
         This test verifies transport socket read state after multiple
@@ -1213,6 +1219,8 @@
     @ivar server: the listening server factory to be used in tests.
     @type server: L{MyServerFactory}
     """
+    requiredInterfaces = (IReactorTCP,)
+
     def setUp(self):
         server = MyServerFactory()
         server.protocolConnectionMade = Deferred()
@@ -2038,6 +2046,8 @@
     TCP-specific L{AbortConnectionMixin} tests.
     """
 
+    requiredInterfaces = (IReactorTCP,)
+
     def listen(self, reactor, server):
         """
         Listen with the given protocol factory.
Index: twisted/internet/test/test_threads.py
===================================================================
--- twisted/internet/test/test_threads.py	(revision 33676)
+++ twisted/internet/test/test_threads.py	(working copy)
@@ -13,12 +13,15 @@
 from twisted.python.threadable import isInIOThread
 from twisted.internet.test.reactormixins import ReactorBuilder
 from twisted.python.threadpool import ThreadPool
+from twisted.internet.interfaces import IReactorThreads
 
 
 class ThreadTestsBuilder(ReactorBuilder):
     """
     Builder for defining tests relating to L{IReactorThreads}.
     """
+    requiredInterfaces = (IReactorThreads,)
+
     def test_getThreadPool(self):
         """
         C{reactor.getThreadPool()} returns an instance of L{ThreadPool} which
Index: twisted/internet/test/test_time.py
===================================================================
--- twisted/internet/test/test_time.py	(revision 33676)
+++ twisted/internet/test/test_time.py	(working copy)
@@ -9,12 +9,15 @@
 
 from twisted.python.runtime import platform
 from twisted.internet.test.reactormixins import ReactorBuilder
+from twisted.internet.interfaces import IReactorTime
 
 
 class TimeTestsBuilder(ReactorBuilder):
     """
     Builder for defining tests relating to L{IReactorTime}.
     """
+    requiredInterfaces = (IReactorTime,)
+
     def test_delayedCallStopsReactor(self):
         """
         The reactor can be stopped by a delayed call.
@@ -30,6 +33,8 @@
     Builder for defining tests relating to L{IReactorTime} for reactors based
     off glib.
     """
+    requiredInterfaces = (IReactorTime,)
+
     if platform.isWindows():
         _reactors = ["twisted.internet.gtk2reactor.PortableGtkReactor"]
     else:
Index: twisted/internet/test/test_udp.py
===================================================================
--- twisted/internet/test/test_udp.py	(revision 33676)
+++ twisted/internet/test/test_udp.py	(working copy)
@@ -16,7 +16,8 @@
 from twisted.python.log import ILogContext, err
 from twisted.internet.test.reactormixins import ReactorBuilder
 from twisted.internet.defer import Deferred, maybeDeferred
-from twisted.internet.interfaces import ILoggingContext, IListeningPort
+from twisted.internet.interfaces import (
+    ILoggingContext, IListeningPort, IReactorUDP)
 from twisted.internet.address import IPv4Address
 from twisted.internet.protocol import DatagramProtocol
 
@@ -133,6 +134,8 @@
     """
     Builder defining tests relating to L{IReactorUDP.listenUDP}.
     """
+    requiredInterfaces = (IReactorUDP,)
+
     def test_interface(self):
         """
         L{IReactorUDP.listenUDP} returns an object providing L{IListeningPort}.
Index: twisted/internet/test/test_unix.py
===================================================================
--- twisted/internet/test/test_unix.py	(revision 33676)
+++ twisted/internet/test/test_unix.py	(working copy)
@@ -63,6 +63,8 @@
     """
     Builder defining tests relating to L{IReactorUNIX}.
     """
+    requiredInterfaces = (interfaces.IReactorUNIX,)
+
     def serverEndpoint(self, reactor):
         """
         Construct a UNIX server endpoint.
@@ -132,6 +134,8 @@
     """
     Builder defining tests relating to L{IReactorUNIXDatagram}.
     """
+    requiredInterfaces = (interfaces.IReactorUNIXDatagram,)
+
     # There's no corresponding test_connectMode because the mode parameter to
     # connectUNIXDatagram has been completely ignored since that API was first
     # introduced.
@@ -164,7 +168,7 @@
     """
     Tests for L{IReactorUNIX.listenUnix}
     """
-    requiredInterfaces = [interfaces.IReactorUNIX]
+    requiredInterfaces = (interfaces.IReactorUNIX,)
 
     def getListeningPort(self, reactor, factory):
         """
