From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2BDE842B2A; Wed, 17 May 2023 11:33:41 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 278204114A; Wed, 17 May 2023 11:33:41 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 863C24067B for ; Wed, 17 May 2023 11:33:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684316019; x=1715852019; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=e3BEYl2nMoUjF91jIxmmIRdqKety8QtQixw+8UItGd0=; b=ChIDKLbYtcncPMUaLsJzErQofHU3wBmQKmZNvwS1B68u0vtOKvxfou5S lTQgvQRbV3UQpxYRQ4okSKR3T871q1H3wAzo/d3h2S4VxiWUBlrlfWdkp Bduy1w7R2TpNs9kKr/YYnp7ft6cp+FZULpVLP+9zLGnpwOd0Tf/Sq7c2N AMdQwHoRYgLlSBAmYpmUSKJBb/EuHSNVFo1RrI7jlh5O766MilD9FLTsf 2yTFmRPbluNyrH7irr/AR/jnarEVQdbacjJUxscFbMHAE9U16qihzAI83 QiKvQTQpC+HqxuCNVh74VYGjWkb1Yr/FHr1Qu6kfcmvZY5+U+Nz+b0Zzj A==; X-IronPort-AV: E=McAfee;i="6600,9927,10712"; a="354881536" X-IronPort-AV: E=Sophos;i="5.99,281,1677571200"; d="scan'208";a="354881536" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 May 2023 02:33:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10712"; a="701684672" X-IronPort-AV: E=Sophos;i="5.99,281,1677571200"; d="scan'208";a="701684672" Received: from unknown (HELO localhost.localdomain) ([10.239.252.196]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 May 2023 02:33:37 -0700 From: Yu Jiang To: lijuan.tu@intel.com, dts@dpdk.org Cc: Yu Jiang Subject: [dts][PATCH V1] tests/meson_tests: split test_args in conf/meson_tests.cfg and add -a param and save meson test log Date: Wed, 17 May 2023 17:33:33 +0800 Message-Id: <20230517093333.1964305-1-yux.jiang@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org 1, add "-a" param to avoid conflict when running in container. 2, save detailed /root/dpdk/<>/meson-logs/testlog.txt to dts/output. Signed-off-by: Yu Jiang --- conf/meson_tests.cfg | 3 +- tests/TestSuite_meson_tests.py | 50 ++++++++++++++++++++++++++-------- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/conf/meson_tests.cfg b/conf/meson_tests.cfg index 5fefed5a..d6cb8359 100644 --- a/conf/meson_tests.cfg +++ b/conf/meson_tests.cfg @@ -38,4 +38,5 @@ driver-tests = "" debug-tests = "" extra-tests = "" perf-tests = "" -param = "-t 24 --test-args '-c 0xff' --num-processes 20 " +test_args = "-c 0xff" +other_param = "-t 24 --num-processes 20 " diff --git a/tests/TestSuite_meson_tests.py b/tests/TestSuite_meson_tests.py index a0bba9b0..efeddb22 100644 --- a/tests/TestSuite_meson_tests.py +++ b/tests/TestSuite_meson_tests.py @@ -28,6 +28,7 @@ class TestMesonTests(TestCase): # -t 2 self.ratio = 6 self.dut_pathlog = "fast-test.log" + self.testlog = "" self.execute_wait_time = self.ratio * self.timeout * 10 # skip scope self.SKIP_SCOPE = "" @@ -35,6 +36,10 @@ class TestMesonTests(TestCase): self.base_output = os.path.join( os.path.dirname(os.path.dirname(os.path.realpath(__file__))), "output" ) + self.dutPorts = self.dut.get_ports() + self.dutPorts_PCI = [] + for port in self.dutPorts: + self.dutPorts_PCI.append(self.dut.get_port_pci(self.dutPorts[port])) def set_up(self): """ @@ -99,17 +104,28 @@ class TestMesonTests(TestCase): self.verify(False, f"Test failed. {sub_fail}{sub_timeout}") def meson_param(self, case_name): + # add -a param when running in container + test_args = self.get_suite_cfg().get("test_args", "") + if self.dutPorts_PCI: + for pci in self.dutPorts_PCI: + test_args += " -a " + pci return ( self.get_suite_cfg().get(case_name, "") + " " - + self.get_suite_cfg().get("param", "") + + self.get_suite_cfg().get("other_param", "") + + " --test-args '{}'".format(test_args) ) - def copy_file_from_dut(self): + def copy_file_from_dut(self, case_name): if os.path.exists(os.path.join(self.base_output, self.dut_pathlog)): os.remove(os.path.join(self.base_output, self.dut_pathlog)) src_pathlog = f"/tmp/{self.dut_pathlog}" self.dut.session.copy_file_from(src_pathlog, self.base_output) + if self.testlog: + tester_pathlog = ( + self.base_output + "/" + "{}_mesontest.log".format(case_name) + ) + self.dut.session.copy_file_from(self.testlog, tester_pathlog) def insmod_kni(self): out = self.dut.send_expect("lsmod | grep rte_kni", "# ") @@ -142,8 +158,10 @@ class TestMesonTests(TestCase): # config test case list in conf/meson_tests.cfg cmds = f"meson test -C {self.target} --suite DPDK:fast-tests {param} |tee /tmp/{self.dut_pathlog}" out = self.dut.send_expect(cmds, "# ", self.execute_wait_time) - self.logger.info(out) - self.copy_file_from_dut() + # Full log written to /root/dpdk/<>/meson-logs/testlog.txt + self.testlog = re.search(r"Full log written to (\S+)", out).groups()[0] + self.logger.info(self.testlog) + self.copy_file_from_dut("fast-tests") self.check_meson_test_result() def test_driver(self): @@ -153,8 +171,10 @@ class TestMesonTests(TestCase): self.delete_exists_files() cmds = f"meson test -C {self.target} --suite DPDK:driver-tests {param} |tee /tmp/{self.dut_pathlog}" out = self.dut.send_expect(cmds, "# ", self.execute_wait_time) - self.logger.info(out) - self.copy_file_from_dut() + # Full log written to /root/dpdk/<>/meson-logs/testlog.txt + self.testlog = re.search(r"Full log written to (\S+)", out).groups()[0] + self.logger.info(self.testlog) + self.copy_file_from_dut("driver-tests") self.check_meson_test_result() def test_debug(self): @@ -164,8 +184,10 @@ class TestMesonTests(TestCase): self.delete_exists_files() cmds = f"meson test -C {self.target} --suite DPDK:debug-tests {param} |tee /tmp/{self.dut_pathlog}" out = self.dut.send_expect(cmds, "# ", self.execute_wait_time) - self.logger.info(out) - self.copy_file_from_dut() + # Full log written to /root/dpdk/<>/meson-logs/testlog.txt + self.testlog = re.search(r"Full log written to (\S+)", out).groups()[0] + self.logger.info(self.testlog) + self.copy_file_from_dut("debug-tests") self.check_meson_test_result() def test_extra(self): @@ -175,8 +197,10 @@ class TestMesonTests(TestCase): self.delete_exists_files() cmds = f"meson test -C {self.target} --suite DPDK:extra-tests {param} |tee /tmp/{self.dut_pathlog}" out = self.dut.send_expect(cmds, "# ", self.execute_wait_time) - self.logger.info(out) - self.copy_file_from_dut() + # Full log written to /root/dpdk/<>/meson-logs/testlog.txt + self.testlog = re.search(r"Full log written to (\S+)", out).groups()[0] + self.logger.info(self.testlog) + self.copy_file_from_dut("extra-tests") self.check_meson_test_result() self.logger.warning( "Extra-tests are know issues which are recorded in DPDK commit and meson.build (detail see test plan)" @@ -190,8 +214,10 @@ class TestMesonTests(TestCase): self.delete_exists_files() cmds = f"meson test -C {self.target} --suite DPDK:perf-tests {param} |tee /tmp/{self.dut_pathlog}" out = self.dut.send_expect(cmds, "# ", self.execute_wait_time) - self.logger.info(out) - self.copy_file_from_dut() + # Full log written to /root/dpdk/<>/meson-logs/testlog.txt + self.testlog = re.search(r"Full log written to (\S+)", out).groups()[0] + self.logger.info(self.testlog) + self.copy_file_from_dut("perf-tests") self.check_meson_test_result() def tear_down(self): -- 2.25.1