[tor-commits] [tor/master] test_rebind: wait for tor to timeout, even if it is logging a lot

nickm at torproject.org nickm at torproject.org
Wed Dec 19 20:36:15 UTC 2018


commit 315c21d2e200fc45e4886fb7ab32e01a3a8354e9
Author: Nick Mathewson <nickm at torproject.org>
Date:   Mon Dec 17 09:53:17 2018 -0500

    test_rebind: wait for tor to timeout, even if it is logging a lot
    
    Fixes bug 28883; bugfix on 0.3.5.4-alpha.
---
 changes/ticket28883     | 4 ++++
 src/test/test_rebind.py | 6 ++----
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/changes/ticket28883 b/changes/ticket28883
new file mode 100644
index 000000000..1d8b6cb41
--- /dev/null
+++ b/changes/ticket28883
@@ -0,0 +1,4 @@
+  o Minor bugfixes (testing):
+    - Make sure that test_rebind.py actually obeys its timeout, even
+      when it receives a large number of log messages. Fixes bug 28883;
+      bugfix on 0.3.5.4-alpha.
diff --git a/src/test/test_rebind.py b/src/test/test_rebind.py
index 2215b4225..92a346775 100644
--- a/src/test/test_rebind.py
+++ b/src/test/test_rebind.py
@@ -11,7 +11,6 @@ import time
 
 LOG_TIMEOUT = 60.0
 LOG_WAIT = 0.1
-LOG_CHECK_LIMIT = LOG_TIMEOUT / LOG_WAIT
 
 def fail(msg):
     logging.error('FAIL')
@@ -25,8 +24,8 @@ def try_connecting_to_socksport():
     socks_socket.close()
 
 def wait_for_log(s):
-    log_checked = 0
-    while log_checked < LOG_CHECK_LIMIT:
+    cutoff = time.time() + LOG_TIMEOUT
+    while time.time() < cutoff:
         l = tor_process.stdout.readline()
         l = l.decode('utf8')
         if s in l:
@@ -37,7 +36,6 @@ def wait_for_log(s):
         # avoid busy-waiting
         if len(s) == 0:
             time.sleep(LOG_WAIT)
-        log_checked += 1
     fail('Could not find "{}" in logs after {} seconds'.format(s, LOG_TIMEOUT))
 
 def pick_random_port():





More information about the tor-commits mailing list