iperf3: Refactor iperf3cli popen arg list generation
Change-Id: I10ab737e1317a52b6ccbd0de2470a9cf0c90c934
diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py
index 13fd455..d79ff98 100644
--- a/src/osmo_gsm_tester/obj/iperf3.py
+++ b/src/osmo_gsm_tester/obj/iperf3.py
@@ -246,14 +246,24 @@
self.log_copied = False
self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name()))
self.log_file = self.run_dir.new_file(IPerf3Client.LOGFILE)
+
+ popen_args = ('iperf3', '-c', self.server.addr(),
+ '-p', str(self.server.port()), '-J',
+ '-t', str(time_sec))
+ if dir == IPerf3Client.DIR_DL:
+ popen_args += ('-R',)
+ elif dir == IPerf3Client.DIR_BI:
+ popen_args += ('--bidir',)
+ if proto == IPerf3Client.PROTO_UDP:
+ popen_args += ('-u', '-b', str(bitrate))
if self.runs_locally():
- proc = self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate)
+ proc = self.prepare_test_proc_locally(netns, popen_args)
else:
- proc = self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate)
+ proc = self.prepare_test_proc_remotely(netns, popen_args)
proc.set_default_wait_timeout(time_sec + 30) # leave 30 extra sec for remote run, ctrl conn establishment, etc.
return proc
- def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp, bitrate):
+ def prepare_test_proc_remotely(self, netns, popen_args):
self.rem_host = remote.RemoteHost(self.run_dir, self._run_node.ssh_user(), self._run_node.ssh_addr())
remote_prefix_dir = util.Dir(IPerf3Client.REMOTE_DIR)
@@ -262,17 +272,8 @@
self.rem_host.recreate_remote_dir(remote_run_dir)
- popen_args = ('iperf3', '-c', self.server.addr(),
- '-p', str(self.server.port()), '-J',
- '-t', str(time_sec))
if self.logfile_supported:
popen_args += ('--logfile', self.remote_log_file,)
- if dir == IPerf3Client.DIR_DL:
- popen_args += ('-R',)
- elif dir == IPerf3Client.DIR_BI:
- popen_args += ('--bidir',)
- if use_udp:
- popen_args += ('-u', '-b', str(bitrate))
if netns:
self.process = self.rem_host.RemoteNetNSProcess(self.name(), netns, popen_args, env={})
@@ -280,21 +281,12 @@
self.process = self.rem_host.RemoteProcess(self.name(), popen_args, env={})
return self.process
- def prepare_test_proc_locally(self, dir, netns, time_sec, use_udp):
+ def prepare_test_proc_locally(self, netns, popen_args):
pcap_recorder.PcapRecorder(self.testenv, self.run_dir.new_dir('pcap'), None,
'host %s and port not 22' % self.server.addr(), netns)
- popen_args = ('iperf3', '-c', self.server.addr(),
- '-p', str(self.server.port()), '-J',
- '-t', str(time_sec))
if self.logfile_supported:
popen_args += ('--logfile', os.path.abspath(self.log_file),)
- if dir == IPerf3Client.DIR_DL:
- popen_args += ('-R',)
- elif dir == IPerf3Client.DIR_BI:
- popen_args += ('--bidir',)
- if use_udp:
- popen_args += ('-u', '-b', '0')
if netns:
self.process = process.NetNSProcess(self.name(), self.run_dir, netns, popen_args, env={})