[tor-commits] [stem/master] Asserting ownership over the integ tests

atagar at torproject.org atagar at torproject.org
Fri May 17 16:14:39 UTC 2013


commit 29086a71cd508614d247f70888df884028d51185
Author: Jeremy <saturn5971 at gmail.com>
Date:   Thu May 16 23:23:35 2013 -0400

    Asserting ownership over the integ tests
    
    Ticket #8634. Integ tests now assert ownership over the tor process, but avoid
    accidentally terminating tor mid-test.
---
 run_tests.py                     |    7 ++++---
 test/integ/control/controller.py |    4 ++++
 test/runner.py                   |    2 +-
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/run_tests.py b/run_tests.py
index 1e76738..b59b405 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -185,9 +185,10 @@ def main():
 
         println("Running tests...\n", STATUS)
 
-        for test_class in test.util.get_integ_tests(args.test_prefix):
-          run_result = _run_test(test_class, output_filters, logging_buffer)
-          skipped_tests += len(getattr(run_result, 'skipped', []))
+        with integ_runner.get_tor_controller(True):  # Controller to own our main tor process
+          for test_class in test.util.get_integ_tests(args.test_prefix):
+              run_result = _run_test(test_class, output_filters, logging_buffer)
+              skipped_tests += len(getattr(run_result, 'skipped', []))
 
         # We should have joined on all threads. If not then that indicates a
         # leak that could both likely be a bug and disrupt further targets.
diff --git a/test/integ/control/controller.py b/test/integ/control/controller.py
index 2f4c413..50c0cc7 100644
--- a/test/integ/control/controller.py
+++ b/test/integ/control/controller.py
@@ -102,6 +102,8 @@ class TestController(unittest.TestCase):
       self.assertEqual(State.RESET, state_type)
       self.assertTrue(state_timestamp > before and state_timestamp < after)
 
+      controller.reset_conf("__OwningControllerProcess")
+
   def test_event_handling(self):
     """
     Add a couple listeners for various events and make sure that they receive
@@ -559,6 +561,7 @@ class TestController(unittest.TestCase):
       finally:
         # reload original valid config
         controller.load_conf(oldconf)
+        controller.reset_conf("__OwningControllerProcess")
 
   def test_saveconf(self):
     if test.runner.require_control(self):
@@ -580,6 +583,7 @@ class TestController(unittest.TestCase):
       finally:
         controller.load_conf(oldconf)
         controller.save_conf()
+        controller.reset_conf("__OwningControllerProcess")
 
   def test_get_socks_ports(self):
     """
diff --git a/test/runner.py b/test/runner.py
index 3614816..e2d6def 100644
--- a/test/runner.py
+++ b/test/runner.py
@@ -710,7 +710,7 @@ class Runner(object):
       print_init_line = lambda line: println("  %s" % line, SUBSTATUS)
 
       torrc_dst = os.path.join(self._test_dir, "torrc")
-      self._tor_process = stem.process.launch_tor(tor_cmd, None, torrc_dst, complete_percent, print_init_line)
+      self._tor_process = stem.process.launch_tor(tor_cmd, None, torrc_dst, complete_percent, print_init_line, take_ownership = True)
 
       runtime = time.time() - start_time
       println("  done (%i seconds)\n" % runtime, STATUS)



More information about the tor-commits mailing list