summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/Makefile8
-rw-r--r--test/asf/asfframework.py30
-rw-r--r--test/config.py5
3 files changed, 25 insertions, 18 deletions
diff --git a/test/Makefile b/test/Makefile
index cabb3526c8c..77c95a87424 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -255,8 +255,8 @@ ARG17=--extern-apidir=$(EXTERN_APIDIR)
endif
ARG18=
-ifneq ($(findstring $(DECODE_PCAPS),1 y yes),)
-ARG18=--decode-pcaps
+ifneq ($(DECODE_PCAPS),)
+ARG18=--decode-pcaps=$(DECODE_PCAPS)
endif
ifneq ($(findstring $(API_PRELOAD),1 y yes),)
@@ -654,6 +654,10 @@ help:
@echo " random seed used by test framework"
@echo " (default: time.time())"
@echo ""
+ @echo " DECODE_PCAPS=[all|failed|none]"
+ @echo " decode pcap files using tshark - all, only failed or none"
+ @echo " (default: failed)"
+ @echo ""
@echo "Starting VPP in GDB for use with DEBUG=attach:"
@echo ""
@echo " test-start-vpp-in-gdb - start VPP in gdb (release)"
diff --git a/test/asf/asfframework.py b/test/asf/asfframework.py
index 4cd4d94ab7b..0228af82642 100644
--- a/test/asf/asfframework.py
+++ b/test/asf/asfframework.py
@@ -1161,16 +1161,13 @@ class VppTestResult(unittest.TestResult):
self.runner = runner
self.printed = []
- def decodePcapFiles(self, test, when_configured=False):
- if when_configured == False or config.decode_pcaps == True:
- if hasattr(test, "pg_interfaces") and len(test.pg_interfaces) > 0:
- testcase_dir = os.path.dirname(test.pg_interfaces[0].out_path)
- test.pg_interfaces[0].decode_pcap_files(
- testcase_dir, f"suite{test.__class__.__name__}"
- )
- test.pg_interfaces[0].decode_pcap_files(
- testcase_dir, test._testMethodName
- )
+ def decodePcapFiles(self, test):
+ if hasattr(test, "pg_interfaces") and len(test.pg_interfaces) > 0:
+ testcase_dir = os.path.dirname(test.pg_interfaces[0].out_path)
+ test.pg_interfaces[0].decode_pcap_files(
+ testcase_dir, f"suite{test.__class__.__name__}"
+ )
+ test.pg_interfaces[0].decode_pcap_files(testcase_dir, test._testMethodName)
def addSuccess(self, test):
"""
@@ -1180,7 +1177,8 @@ class VppTestResult(unittest.TestResult):
"""
self.log_result("addSuccess", test)
- self.decodePcapFiles(test, when_configured=True)
+ if "all" == config.decode_pcaps:
+ self.decodePcapFiles(test)
unittest.TestResult.addSuccess(self, test)
self.result_string = colorize("OK", GREEN)
self.result_code = TestResultCode.PASS
@@ -1188,7 +1186,8 @@ class VppTestResult(unittest.TestResult):
def addExpectedFailure(self, test, err):
self.log_result("addExpectedFailure", test, err)
- self.decodePcapFiles(test)
+ if "none" != config.decode_pcaps:
+ self.decodePcapFiles(test)
super().addExpectedFailure(test, err)
self.result_string = colorize("FAIL", GREEN)
self.result_code = TestResultCode.EXPECTED_FAIL
@@ -1196,7 +1195,8 @@ class VppTestResult(unittest.TestResult):
def addUnexpectedSuccess(self, test):
self.log_result("addUnexpectedSuccess", test)
- self.decodePcapFiles(test, when_configured=True)
+ if "none" != config.decode_pcaps:
+ self.decodePcapFiles(test)
super().addUnexpectedSuccess(test)
self.result_string = colorize("OK", RED)
self.result_code = TestResultCode.UNEXPECTED_PASS
@@ -1282,7 +1282,9 @@ class VppTestResult(unittest.TestResult):
error_type_str = colorize("ERROR", RED)
else:
raise Exception(f"Unexpected result code {result_code}")
- self.decodePcapFiles(test)
+
+ if "none" != config.decode_pcaps:
+ self.decodePcapFiles(test)
unittest_fn(self, test, err)
if self.current_test_case_info:
diff --git a/test/config.py b/test/config.py
index 32cc4cac5fa..e939f188c6c 100644
--- a/test/config.py
+++ b/test/config.py
@@ -409,10 +409,11 @@ parser.add_argument(
"/var/run/user/${uid}/vpp.",
)
-default_decode_pcaps = False
+default_decode_pcaps = "failed"
parser.add_argument(
"--decode-pcaps",
- action="store_true",
+ action="store",
+ choices=["none", "failed", "all"],
default=default_decode_pcaps,
help=f"if set, decode all pcap files from a test run (default: {default_decode_pcaps})",
)