treat output as "left-over" only after terminatin process; limit number of lines
authorChristian Herdtweck <christian.herdtweck@intra2net.com>
Wed, 21 Jan 2015 12:52:36 +0000 (13:52 +0100)
committerChristian Herdtweck <christian.herdtweck@intra2net.com>
Wed, 21 Jan 2015 12:52:36 +0000 (13:52 +0100)
test/long_term_test.py

index 817e7bd..b3b0119 100755 (executable)
@@ -638,14 +638,17 @@ def cleanup(log, pinger, tester, line_iter):
     else:
         log.info("Cleaning up")
 
-        for line in line_iter:
-            log.info('left-over output: {0}'.format(line))
-
         try:
             log.info('telling pinger to terminate')
             pinger.terminate()
 
-            #return_code = pinger.wait(3)  may block!
+            for line_idx, line in enumerate(line_iter):
+                log.info('left-over output: {0}'.format(line))
+                if line_idx > 100:
+                    log.warning('ignore further left-over output')
+                    break
+
+            #return_code = pinger.wait(3)  can block!
             outs, errs = pinger.communicate(timeout=3)
             for line in outs.splitlines():
                 log.info('left-over output: {0}'.format(line))
@@ -661,8 +664,11 @@ def cleanup(log, pinger, tester, line_iter):
             log.exception('trouble terminating pinger', exc_info=sys.exc_info())
 
         if return_code is None:
-            for line in line_iter:
+            for line_idx, line in enumerate(line_iter):
                 log.info('left-over output: {0}'.format(line))
+                if line_idx > 100:
+                    log.warning('ignore further left-over output')
+                    break
 
             # kill it
             try: