<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17359">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Allow overwriting test's report stdout text from inside test code<br><br>Change-Id: Ie1c0ecf7464209a4241665025fda33ae624fc049<br>---<br>M src/osmo_gsm_tester/report.py<br>M src/osmo_gsm_tester/test.py<br>M suites/4g/iperf3_dl.py<br>M suites/4g/iperf3_ul.py<br>4 files changed, 20 insertions(+), 12 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/59/17359/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo_gsm_tester/report.py b/src/osmo_gsm_tester/report.py</span><br><span>index 8718d0e..5d23c38 100644</span><br><span>--- a/src/osmo_gsm_tester/report.py</span><br><span>+++ b/src/osmo_gsm_tester/report.py</span><br><span>@@ -86,12 +86,7 @@</span><br><span>         error = et.SubElement(testcase, 'error')</span><br><span>         error.text = 'could not run'</span><br><span>     sout = et.SubElement(testcase, 'system-out')</span><br><span style="color: hsl(0, 100%, 40%);">-    log_file = t.log_file_path()</span><br><span style="color: hsl(0, 100%, 40%);">-    if log_file is not None:</span><br><span style="color: hsl(0, 100%, 40%);">-        with open(log_file, 'r') as myfile:</span><br><span style="color: hsl(0, 100%, 40%);">-            sout.text = escape_xml_invalid_characters(myfile.read())</span><br><span style="color: hsl(0, 100%, 40%);">-    else:</span><br><span style="color: hsl(0, 100%, 40%);">-        sout.text = 'test log file not available'</span><br><span style="color: hsl(120, 100%, 40%);">+    sout.text = escape_xml_invalid_characters(t.report_stdout())</span><br><span>     return testcase</span><br><span> </span><br><span> def trial_to_text(trial):</span><br><span>diff --git a/src/osmo_gsm_tester/test.py b/src/osmo_gsm_tester/test.py</span><br><span>index 66e8656..be6e8da 100644</span><br><span>--- a/src/osmo_gsm_tester/test.py</span><br><span>+++ b/src/osmo_gsm_tester/test.py</span><br><span>@@ -43,6 +43,7 @@</span><br><span>         self.fail_type = None</span><br><span>         self.fail_message = None</span><br><span>         self.log_target = None</span><br><span style="color: hsl(120, 100%, 40%);">+        self._report_stdout = None</span><br><span> </span><br><span>     def get_run_dir(self):</span><br><span>         if self._run_dir is None:</span><br><span>@@ -118,9 +119,19 @@</span><br><span>         self.status = Test.SKIP</span><br><span>         self.duration = 0</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    def log_file_path(self):</span><br><span style="color: hsl(0, 100%, 40%);">-        if self.log_target is None:</span><br><span style="color: hsl(0, 100%, 40%);">-            return None</span><br><span style="color: hsl(0, 100%, 40%);">-        return self.log_target.log_file_path()</span><br><span style="color: hsl(120, 100%, 40%);">+    def set_report_stdout(self, text):</span><br><span style="color: hsl(120, 100%, 40%);">+        'Overwrite stdout text stored in report from inside a test'</span><br><span style="color: hsl(120, 100%, 40%);">+        self._report_stdout = text</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    def report_stdout(self):</span><br><span style="color: hsl(120, 100%, 40%);">+        # If test overwrote the text, provide it:</span><br><span style="color: hsl(120, 100%, 40%);">+        if self._report_stdout is not None:</span><br><span style="color: hsl(120, 100%, 40%);">+            return self._report_stdout</span><br><span style="color: hsl(120, 100%, 40%);">+        # Otherwise vy default provide the entire test log:</span><br><span style="color: hsl(120, 100%, 40%);">+        if self.log_target is not None and self.log_target.log_file_path() is not None:</span><br><span style="color: hsl(120, 100%, 40%);">+            with open(self.log_target.log_file_path(), 'r') as myfile:</span><br><span style="color: hsl(120, 100%, 40%);">+                return myfile.read()</span><br><span style="color: hsl(120, 100%, 40%);">+        else:</span><br><span style="color: hsl(120, 100%, 40%);">+            return 'test log file not available'</span><br><span> </span><br><span> # vim: expandtab tabstop=4 shiftwidth=4</span><br><span>diff --git a/suites/4g/iperf3_dl.py b/suites/4g/iperf3_dl.py</span><br><span>index fd77cd3..c98251b 100755</span><br><span>--- a/suites/4g/iperf3_dl.py</span><br><span>+++ b/suites/4g/iperf3_dl.py</span><br><span>@@ -45,4 +45,5 @@</span><br><span> </span><br><span> max_rate = enb.ue_max_rate(downlink=True)</span><br><span> res_str = ue.verify_metric(max_rate * 0.9, operation='avg', metric='dl_brate', criterion='gt')</span><br><span style="color: hsl(0, 100%, 40%);">-print(res_str + '\n')</span><br><span style="color: hsl(120, 100%, 40%);">+print(res_str)</span><br><span style="color: hsl(120, 100%, 40%);">+test.set_report_stdout(res_str)</span><br><span>diff --git a/suites/4g/iperf3_ul.py b/suites/4g/iperf3_ul.py</span><br><span>index 20489b5..fe963a9 100755</span><br><span>--- a/suites/4g/iperf3_ul.py</span><br><span>+++ b/suites/4g/iperf3_ul.py</span><br><span>@@ -45,4 +45,5 @@</span><br><span> </span><br><span> max_rate = enb.ue_max_rate(downlink=False)</span><br><span> res_str = ue.verify_metric(max_rate * 0.9, operation='avg', metric='ul_brate', criterion='gt')</span><br><span style="color: hsl(0, 100%, 40%);">-print(res_str + '\n')</span><br><span style="color: hsl(120, 100%, 40%);">+print(res_str)</span><br><span style="color: hsl(120, 100%, 40%);">+test.set_report_stdout(res_str)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17359">change 17359</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/+/17359"/><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: Ie1c0ecf7464209a4241665025fda33ae624fc049 </div>
<div style="display:none"> Gerrit-Change-Number: 17359 </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-MessageType: newchange </div>