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")
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")
)
filter_help_string = """\
-expression consists of 3 string selectors separated by '.' separators:
+expression consists of one or more filters separated by commas (',')
+filter consists of 3 string selectors separated by dots ('.')
<file>.<class>.<function>
test_add_bfd from test_bfd.py/BFDAPITestCase
4. '.*.test_add_bfd' selects all test functions named test_add_bfd
from all files/classes
+5. 'bfd,ip4,..test_icmp_error' selects all test functions in test_bfd.py,
+ test_ip4.py and all test functions named 'test_icmp_error' in all files
"""
parser.add_argument(
"--filter", action="store", metavar="FILTER_EXPRESSION", help=filter_help_string
)
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",
help="directory containing external plugins",
)
+parser.add_argument(
+ "--extern-apidir",
+ action="append",
+ type=directory,
+ default=[],
+ help="directory to look for API JSON files",
+)
+
parser.add_argument(
"--coredump-size",
action="store",
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",
"/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
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__: