[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [ooni-probe/master] Port TCP Connect test
commit de6751c9761f0590ff114f5a44b0cc5a6a4ea092
Author: Arturo Filastò <art@xxxxxxxxx>
Date: Sat Nov 10 20:21:05 2012 +0100
Port TCP Connect test
---
nettests/core/tcpconnect.py | 46 +++++++++++++++++++++++++
to-be-ported/old-api/tcpconnect.py | 65 ------------------------------------
2 files changed, 46 insertions(+), 65 deletions(-)
diff --git a/nettests/core/tcpconnect.py b/nettests/core/tcpconnect.py
new file mode 100644
index 0000000..4d1e0fc
--- /dev/null
+++ b/nettests/core/tcpconnect.py
@@ -0,0 +1,46 @@
+# -*- encoding: utf-8 -*-
+from twisted.internet.protocol import Factory, Protocol
+from twisted.internet.endpoints import TCP4ClientEndpoint
+
+from twisted.internet.error import ConnectionRefusedError
+from twisted.internet.error import TCPTimedOutError
+
+from ooni import nettest
+from ooni.utils import log
+
+class TCPFactory(Factory):
+ def buildProtocol(self, addr):
+ return Protocol()
+
+class TCPConnectTest(nettest.NetTestCase):
+ name = "TCP Connect"
+ author = "Arturo Filastò"
+ version = "0.1"
+
+ inputFile = ['file', 'f', None,
+ 'File containing the IP:PORT combinations to be tested, one per line']
+
+ def test_connect(self):
+ """
+ This test performs a TCP connection to the remote host on the specified port.
+ the report will contains the string 'success' if the test has
+ succeeded, or the reason for the failure if it has failed.
+ """
+ host, port = self.input.split(":")
+ def connectionSuccess(protocol):
+ protocol.transport.loseConnection()
+ log.debug("Got a connection to %s" % self.input)
+ self.report["connection"] = 'success'
+
+ def connectionFailed(failure):
+ failure.trap(ConnectionRefusedError, TCPTimedOutError)
+ log.debug("Unable to connect to %s" % self.input)
+ self.report["connection"] = str(failure.value)
+
+ from twisted.internet import reactor
+ point = TCP4ClientEndpoint(reactor, host, int(port))
+ d = point.connect(TCPFactory())
+ d.addCallback(connectionSuccess)
+ d.addErrback(connectionFailed)
+ return d
+
diff --git a/to-be-ported/old-api/tcpconnect.py b/to-be-ported/old-api/tcpconnect.py
deleted file mode 100644
index 7758a9e..0000000
--- a/to-be-ported/old-api/tcpconnect.py
+++ /dev/null
@@ -1,65 +0,0 @@
-"""
-This is a self genrated test created by scaffolding.py.
-you will need to fill it up with all your necessities.
-Safe hacking :).
-"""
-from zope.interface import implements
-from twisted.python import usage
-from twisted.plugin import IPlugin
-from twisted.internet.protocol import Factory, Protocol
-from twisted.internet.endpoints import TCP4ClientEndpoint
-
-from ooni.plugoo.interface import ITest
-from ooni.plugoo.tests import OONITest
-from ooni.plugoo.assets import Asset
-from ooni.utils import log
-
-class tcpconnectArgs(usage.Options):
- optParameters = [['asset', 'a', None, 'File containing IP:PORT combinations, one per line.'],
- ['resume', 'r', 0, 'Resume at this index']]
-
-class tcpconnectTest(OONITest):
- implements(IPlugin, ITest)
-
- shortName = "tcpconnect"
- description = "tcpconnect"
- requirements = None
- options = tcpconnectArgs
- blocking = False
-
- def experiment(self, args):
- try:
- host, port = args['asset'].split(':')
- except:
- raise Exception("Error in parsing asset. Wrong format?")
- class DummyFactory(Factory):
- def buildProtocol(self, addr):
- return Protocol()
-
- def gotProtocol(p):
- p.transport.loseConnection()
- log.msg("Got a connection!")
- log.msg(str(p))
- return {'result': True, 'target': [host, port]}
-
- def gotError(err):
- log.msg("Had error :(")
- log.msg(err)
- return {'result': False, 'target': [host, port]}
-
- # What you return here gets handed as input to control
- point = TCP4ClientEndpoint(self.reactor, host, int(port))
- d = point.connect(DummyFactory())
- d.addCallback(gotProtocol)
- d.addErrback(gotError)
- return d
-
- def load_assets(self):
- if self.local_options:
- return {'asset': Asset(self.local_options['asset'])}
- else:
- return {}
-
-# We need to instantiate it otherwise getPlugins does not detect it
-# XXX Find a way to load plugins without instantiating them.
-#tcpconnect = tcpconnectTest(None, None, None)
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits