From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 8F7E47D5B for ; Thu, 27 Jul 2017 03:30:19 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Jul 2017 18:30:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,417,1496127600"; d="scan'208";a="1155822557" Received: from dpdk-test38.sh.intel.com ([10.67.111.97]) by orsmga001.jf.intel.com with ESMTP; 26 Jul 2017 18:30:16 -0700 From: Marvin Liu To: dts@dpdk.org Cc: Marvin Liu Date: Wed, 26 Jul 2017 21:28:09 -0400 Message-Id: <1501118889-49021-1-git-send-email-yong.liu@intel.com> X-Mailer: git-send-email 1.9.3 Subject: [dts] [PATCH] framework: fix multiple output instances after rerun X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Jul 2017 01:30:20 -0000 The logger instance will be only create once. When rerun suite, log instance will be copied. Signed-off-by: Marvin Liu diff --git a/framework/dts.py b/framework/dts.py index 26042cf..f7ab795 100644 --- a/framework/dts.py +++ b/framework/dts.py @@ -385,6 +385,7 @@ def dts_run_suite(duts, tester, test_suites, target): for test_classname, test_class in get_subclasses(suite_module, TestCase): suite_obj = test_class(duts, tester, target, suite_name) + suite_obj.init_log() suite_obj.set_requested_cases(requested_tests) suite_obj.set_check_inst(check=check_case_inst, support=support_case_inst) result.nic = suite_obj.nic diff --git a/framework/logger.py b/framework/logger.py index 4543ce1..1018674 100644 --- a/framework/logger.py +++ b/framework/logger.py @@ -220,9 +220,9 @@ class DTSLOG(BaseLoggerAdapter): # add default log file fh = logging.FileHandler(self.log_path + "/" + self.dts_log) ch = ColorHandler() - self.__log_hander(fh, ch) + self.__log_handler(fh, ch) - def __log_hander(self, fh, ch): + def __log_handler(self, fh, ch): """ Config stream handler and file handler. """ @@ -302,7 +302,7 @@ class DTSLOG(BaseLoggerAdapter): log_file = self.log_path + '/' + self.dts_log fh = logging.FileHandler(log_file) ch = ColorHandler() - self.__log_hander(fh, ch) + self.__log_handler(fh, ch) def set_salt(crb, start_flag): if LOG_NAME_SEP in crb: @@ -345,7 +345,12 @@ class DTSLOG(BaseLoggerAdapter): log_file = self.log_path + '/' + suitename + '.log' fh = logging.FileHandler(log_file) ch = ColorHandler() - self.__log_hander(fh, ch) + + # exit first + self.logger_exit() + + # then add handler + self.__log_handler(fh, ch) if crb == 'dut': self.info_lvl = logging.SUITE_DUT_CMD diff --git a/framework/test_case.py b/framework/test_case.py index fec17a5..8cddfde 100644 --- a/framework/test_case.py +++ b/framework/test_case.py @@ -56,10 +56,6 @@ class TestCase(object): self.tester = tester self.target = target - # get log handler - class_name = self.__class__.__name__ - self.logger = getLogger(class_name) - self.logger.config_suite(class_name) # local variable self._requested_tests = None self.drivername = load_global_setting(HOST_DRIVER_SETTING) @@ -122,6 +118,12 @@ class TestCase(object): # create rst format report for this suite self._rst_obj = RstReport('rst_report', target, self.nic, self.suite_name, self._enable_perf) + def init_log(self): + # get log handler + class_name = self.__class__.__name__ + self.logger = getLogger(class_name) + self.logger.config_suite(class_name) + def _check_and_reconnect(self, crb=None): try: result = crb.session.check_available() @@ -336,7 +338,7 @@ class TestCase(object): if load_global_setting(FUNC_SETTING) == 'yes': for case_obj in self._get_functional_cases(): for i in range(self.tester.re_run_time + 1): - ret = self.execute_test_case(case_obj): + ret = self.execute_test_case(case_obj) if ret is False: for dutobj in self.duts: -- 1.9.3