[tor-commits] [ooni-probe/master] Update nettests/third_party/netalyzr.py to properly run and not hang
ioerror at torproject.org
ioerror at torproject.org
Wed Dec 5 19:25:36 UTC 2012
commit 1aa7c70e7cea0d7912aa01d39e52282bc643ebff
Author: Jacob Appelbaum <jacob at appelbaum.net>
Date: Thu Dec 6 01:54:06 2012 +0630
Update nettests/third_party/netalyzr.py to properly run and not hang
nettests/third_party/netalyzr.py now runs properly though the status
output is incorrectly shown to be 100% at all times.
---
nettests/third_party/netalyzr.py | 19 +++++++++++++++----
1 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/nettests/third_party/netalyzr.py b/nettests/third_party/netalyzr.py
index 6ce5a9f..01c57f8 100644
--- a/nettests/third_party/netalyzr.py
+++ b/nettests/third_party/netalyzr.py
@@ -10,6 +10,7 @@ from ooni import nettest
from ooni.utils import log
import time
import os
+from twisted.internet import reactor, threads, defer
class NetalyzrWrapperTest(nettest.NetTestCase):
name = "NetalyzrWrapper"
@@ -30,6 +31,19 @@ class NetalyzrWrapperTest(nettest.NetTestCase):
self.output_file.strip()
self.run_me = program + " 2>&1 >> " + self.output_file
+ def blocking_call(self):
+ try:
+ result = threads.blockingCallFromThread(reactor, os.system(self.run_me))
+ except:
+ print "Please check " + self.output_file + "for Netalyzr output"
+ finally:
+ reactor.callFromThread(reactor.stop)
+ self.clean_up()
+
+ def clean_up(self):
+ self.report['netalyzr_report'] = self.output_file
+ log.debug("finished running NetalzrWrapper")
+
def test_run_netalyzr(self):
"""
This test simply wraps netalyzr and runs it from command line
@@ -41,7 +55,4 @@ class NetalyzrWrapperTest(nettest.NetTestCase):
# (currently there is no progress because the stdout of os.system is
# trapped by twisted) and to include the link to the netalyzr report
# directly in the OONI report, perhaps even downloading it.
- os.system(self.run_me)
- self.report['netalyzr_report'] = self.output_file
- log.debug("finished running NetalzrWrapper")
-
+ reactor.callInThread(self.blocking_call)
More information about the tor-commits
mailing list