diff options
author | Naveen Joy <najoy@cisco.com> | 2023-02-02 13:56:59 -0800 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2023-02-10 02:14:44 +0000 |
commit | 25b6e44424e3945eb37226d214baf38735730121 (patch) | |
tree | 08035aed62d62ddf179ee72ef4359a7a8f47e4f3 | |
parent | ffa3f60290499bdacc37a97c49f2e794b5e1f18c (diff) |
tests: use iperf3 for running interface tests on the host
Type: improvement
Change-Id: I7123591932d51ce0c5b372893454945bbd3913b2
Signed-off-by: Naveen Joy <najoy@cisco.com>
-rw-r--r-- | test/vpp_iperf.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/test/vpp_iperf.py b/test/vpp_iperf.py index 42b5ea8a523..8fe0d749a4b 100644 --- a/test/vpp_iperf.py +++ b/test/vpp_iperf.py @@ -36,7 +36,7 @@ class VppIperf: self.server_args = "" self.logger = logger # Set the iperf executable - self.iperf = os.path.join(os.getenv("TEST_DATA_DIR") or "/", "usr/bin/iperf") + self.iperf = self.get_iperf() def ensure_init(self): if self.server_ns and self.client_ns and self.server_ip: @@ -46,6 +46,24 @@ class VppIperf: "Error: Cannot Start." "iPerf object has not been initialized" ) + def get_iperf(self): + """Return the iperf executable for running tests. + + Look for the iperf executable in the following order + 1. ${TEST_DATA_DIR}/usr/bin/iperf # running tests inside the VM + 2. /usr/bin/iperf3 # running tests on the host + """ + vm_test_dir = os.getenv("TEST_DATA_DIR", "/tmp/vpp-vm-tests") + if os.path.isdir(vm_test_dir): + iperf = os.path.join(vm_test_dir, "/usr/bin/iperf") + else: + iperf = "/usr/bin/iperf3" + if os.path.exists(iperf): + return iperf + else: + self.logger.error(f"Could not find an iperf executable for running tests") + sys.exit(1) + def start_iperf_server(self): args = [ "ip", @@ -58,6 +76,7 @@ class VppIperf: ] args.extend(self.server_args.split()) args = " ".join(args) + self.logger.debug(f"Starting iperf server: {args}") try: return subprocess.run( args, |