<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18792">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">iperf3: Fix iperf3cli.launch_sync() when configured to run more than 300 sec<br><br>process object always used timeout=300 while runnig wth launch_sync().<br>Let's allow replacing that value beforehand so that iperf3 can<br>pre-configure the process object and caller doesn't need to care about<br>calculating expected time.<br><br>Change-Id: I7f6c5078f648013515919aa35ebcdb3ef157b5e4<br>---<br>M src/osmo_gsm_tester/core/process.py<br>M src/osmo_gsm_tester/obj/iperf3.py<br>2 files changed, 14 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py</span><br><span>index 8954674..1823a20 100644</span><br><span>--- a/src/osmo_gsm_tester/core/process.py</span><br><span>+++ b/src/osmo_gsm_tester/core/process.py</span><br><span>@@ -125,11 +125,14 @@</span><br><span> </span><br><span> class Process(log.Origin):</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    DEFAULT_WAIT_TIMEOUT = 300 # seconds</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>     def __init__(self, name, run_dir, popen_args, **popen_kwargs):</span><br><span>         super().__init__(log.C_RUN, name)</span><br><span>         self.process_obj = None</span><br><span>         self.result = None</span><br><span>         self.killed = None</span><br><span style="color: hsl(120, 100%, 40%);">+        self.default_wait_timeout = Process.DEFAULT_WAIT_TIMEOUT</span><br><span>         self.name_str = name</span><br><span>         self.run_dir = run_dir</span><br><span>         self.popen_args = popen_args</span><br><span>@@ -143,6 +146,10 @@</span><br><span>         env[key] = value</span><br><span>         self.popen_kwargs['env'] = env</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    def set_default_wait_timeout(self, timeout):</span><br><span style="color: hsl(120, 100%, 40%);">+        assert timeout</span><br><span style="color: hsl(120, 100%, 40%);">+        self.default_wait_timeout = timeout</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>     def make_output_log(self, name):</span><br><span>         '''</span><br><span>         create a non-existing log output file in run_dir to pipe stdout and</span><br><span>@@ -346,7 +353,9 @@</span><br><span>             self.poll()</span><br><span>         return self.result is not None</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    def wait(self, timeout=300):</span><br><span style="color: hsl(120, 100%, 40%);">+    def wait(self, timeout=None):</span><br><span style="color: hsl(120, 100%, 40%);">+        if timeout is None:</span><br><span style="color: hsl(120, 100%, 40%);">+            timeout = self.default_wait_timeout</span><br><span>         MainLoop.wait(self.terminated, timeout=timeout)</span><br><span> </span><br><span>     def stdin_write(self, cmd):</span><br><span>diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py</span><br><span>index 70fceff..ee62159 100644</span><br><span>--- a/src/osmo_gsm_tester/obj/iperf3.py</span><br><span>+++ b/src/osmo_gsm_tester/obj/iperf3.py</span><br><span>@@ -247,9 +247,11 @@</span><br><span>         self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name()))</span><br><span>         self.log_file = self.run_dir.new_file(IPerf3Client.LOGFILE)</span><br><span>         if self.runs_locally():</span><br><span style="color: hsl(0, 100%, 40%);">-            return self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate)</span><br><span style="color: hsl(120, 100%, 40%);">+            proc = self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate)</span><br><span>         else:</span><br><span style="color: hsl(0, 100%, 40%);">-            return self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate)</span><br><span style="color: hsl(120, 100%, 40%);">+            proc = self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate)</span><br><span style="color: hsl(120, 100%, 40%);">+        proc.set_default_wait_timeout(time_sec + 10) # leave 10 extra sec for remote run, ctrl conn establishment, etc.</span><br><span style="color: hsl(120, 100%, 40%);">+        return proc</span><br><span> </span><br><span>     def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp, bitrate):</span><br><span>         self.rem_host = remote.RemoteHost(self.run_dir, self._run_node.ssh_user(), self._run_node.ssh_addr())</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18792">change 18792</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18792"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-tester </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I7f6c5078f648013515919aa35ebcdb3ef157b5e4 </div>
<div style="display:none"> Gerrit-Change-Number: 18792 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>