tests: Use errno value rather than a specific int
[vpp.git] / test / config.py
index 578cc40..32cc4ca 100644 (file)
@@ -2,11 +2,12 @@ import argparse
 import os
 import psutil
 import time
+from vpp_qemu_utils import can_create_namespaces
 
 
 def positive_int_or_default(default):
     def positive_integer(v):
-        if v is None or v == "":
+        if v is None or v == "" or int(v) == default:
             return default
         if int(v) <= 0:
             raise ValueError("value must be positive")
@@ -17,7 +18,7 @@ def positive_int_or_default(default):
 
 def positive_float_or_default(default):
     def positive_float(v):
-        if v is None or v == "":
+        if v is None or v == "" or float(v) == default:
             return default
         if float(v) <= 0:
             raise ValueError("value must be positive")
@@ -191,10 +192,16 @@ parser.add_argument(
 )
 
 parser.add_argument("--extended", action="store_true", help="run extended tests")
+parser.add_argument(
+    "--skip-netns-tests",
+    action="store_true",
+    help="skip tests involving netns operations",
+)
 
 parser.add_argument(
     "--sanity", action="store_true", help="perform sanity vpp run before running tests"
 )
+parser.add_argument("--api-preload", action="store_true", help="preload API files")
 
 parser.add_argument(
     "--force-foreground",
@@ -380,6 +387,15 @@ parser.add_argument(
     help="Runs tests against a running VPP.",
 )
 
+parser.add_argument(
+    "--excluded-plugin",
+    dest="excluded_plugins",
+    required=False,
+    action="append",
+    default=[],
+    help="Exclude the tests that indicate they require this plugin(s)",
+)
+
 parser.add_argument(
     "-d",
     "--socket-dir",
@@ -393,6 +409,14 @@ parser.add_argument(
     "/var/run/user/${uid}/vpp.",
 )
 
+default_decode_pcaps = False
+parser.add_argument(
+    "--decode-pcaps",
+    action="store_true",
+    default=default_decode_pcaps,
+    help=f"if set, decode all pcap files from a test run (default: {default_decode_pcaps})",
+)
+
 config = parser.parse_args()
 
 ws = config.vpp_ws_dir
@@ -444,6 +468,10 @@ elif config.max_vpp_cpus > 0:
 else:
     max_vpp_cpus = num_cpus
 
+if not config.skip_netns_tests:
+    if not can_create_namespaces():
+        config.skip_netns_tests = True
+
 if __name__ == "__main__":
     print("Provided arguments:")
     for i in config.__dict__: