Fix logging into multiple files 37/15837/2
authorjuraj.linkes <juraj.linkes@pantheon.tech>
Fri, 9 Nov 2018 10:58:54 +0000 (11:58 +0100)
committerFlorin Coras <florin.coras@gmail.com>
Fri, 9 Nov 2018 23:33:59 +0000 (23:33 +0000)
When running tests in one process, only one logger was used and each
testcase added its own file handler, which resulted in logs appearing in
multiple files. Fix this by restoring the creation of new loggers
for each testcase and only reuse the stream handler from parent process.

Change-Id: I5b8471e041dc769128fddb433d33812bfcb5ecf6
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
test/framework.py
test/log.py
test/run_tests.py

index 27fcdb5..3201e63 100644 (file)
@@ -25,7 +25,7 @@ from vpp_lo_interface import VppLoInterface
 from vpp_papi_provider import VppPapiProvider
 from vpp_papi.vpp_stats import VPPStats
 from log import RED, GREEN, YELLOW, double_line_delim, single_line_delim, \
-    getLogger, colorize
+    get_logger, colorize
 from vpp_object import VppObjectRegistry
 from util import ppp, is_core_present
 from scapy.layers.inet import IPerror, TCPerror, UDPerror, ICMPerror
@@ -369,10 +369,9 @@ class VppTestCase(unittest.TestCase):
         gc.collect()  # run garbage collection first
         random.seed()
         cls.print_header(cls)
-        if not hasattr(cls, 'logger'):
-            cls.logger = getLogger(cls.__name__)
-        else:
-            cls.logger.name = cls.__name__
+        cls.logger = get_logger(cls.__name__)
+        if hasattr(cls, 'parallel_handler'):
+            cls.logger.addHandler(cls.parallel_handler)
         cls.tempdir = tempfile.mkdtemp(
             prefix='vpp-unittest-%s-' % cls.__name__)
         cls.stats_sock = "%s/stats.sock" % cls.tempdir
index 9720cbc..de127fe 100644 (file)
@@ -50,7 +50,7 @@ scapy_logger = logging.getLogger("scapy.runtime")
 scapy_logger.setLevel(logging.ERROR)
 
 
-def getLogger(name):
+def get_logger(name):
     logger = logging.getLogger(name)
     logger.setLevel(logging.DEBUG)
     return logger
index c42c6a8..b2de2e7 100644 (file)
@@ -120,7 +120,7 @@ def test_runner_wrapper(suite, keep_alive_pipe, stdouterr_queue,
                         finished_pipe, result_pipe, logger):
     sys.stdout = stdouterr_queue
     sys.stderr = stdouterr_queue
-    VppTestCase.logger = logger
+    VppTestCase.parallel_handler = logger.handlers[0]
     result = VppTestRunner(keep_alive_pipe=keep_alive_pipe,
                            descriptions=descriptions,
                            verbosity=verbose,