X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_iperf.py;h=8fe0d749a4b8418b043a3cd1c9d52390396dc041;hb=refs%2Fchanges%2F62%2F38162%2F6;hp=42b5ea8a5231c1f4a872c75eb2a0e5d66f55636d;hpb=e416893a597959509c7f667c140c271c0bb78c14;p=vpp.git 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,