diff --git a/src/osmo_gsm_tester/report.py b/src/osmo_gsm_tester/report.py
index 8718d0e..5d23c38 100644
--- a/src/osmo_gsm_tester/report.py
+++ b/src/osmo_gsm_tester/report.py
@@ -86,12 +86,7 @@
         error = et.SubElement(testcase, 'error')
         error.text = 'could not run'
     sout = et.SubElement(testcase, 'system-out')
-    log_file = t.log_file_path()
-    if log_file is not None:
-        with open(log_file, 'r') as myfile:
-            sout.text = escape_xml_invalid_characters(myfile.read())
-    else:
-        sout.text = 'test log file not available'
+    sout.text = escape_xml_invalid_characters(t.report_stdout())
     return testcase
 
 def trial_to_text(trial):
diff --git a/src/osmo_gsm_tester/test.py b/src/osmo_gsm_tester/test.py
index 66e8656..be6e8da 100644
--- a/src/osmo_gsm_tester/test.py
+++ b/src/osmo_gsm_tester/test.py
@@ -43,6 +43,7 @@
         self.fail_type = None
         self.fail_message = None
         self.log_target = None
+        self._report_stdout = None
 
     def get_run_dir(self):
         if self._run_dir is None:
@@ -118,9 +119,19 @@
         self.status = Test.SKIP
         self.duration = 0
 
-    def log_file_path(self):
-        if self.log_target is None:
-            return None
-        return self.log_target.log_file_path()
+    def set_report_stdout(self, text):
+        'Overwrite stdout text stored in report from inside a test'
+        self._report_stdout = text
+
+    def report_stdout(self):
+        # If test overwrote the text, provide it:
+        if self._report_stdout is not None:
+            return self._report_stdout
+        # Otherwise vy default provide the entire test log:
+        if self.log_target is not None and self.log_target.log_file_path() is not None:
+            with open(self.log_target.log_file_path(), 'r') as myfile:
+                return myfile.read()
+        else:
+            return 'test log file not available'
 
 # vim: expandtab tabstop=4 shiftwidth=4
diff --git a/suites/4g/iperf3_dl.py b/suites/4g/iperf3_dl.py
index fd77cd3..c98251b 100755
--- a/suites/4g/iperf3_dl.py
+++ b/suites/4g/iperf3_dl.py
@@ -45,4 +45,5 @@
 
 max_rate = enb.ue_max_rate(downlink=True)
 res_str = ue.verify_metric(max_rate * 0.9, operation='avg', metric='dl_brate', criterion='gt')
-print(res_str + '\n')
+print(res_str)
+test.set_report_stdout(res_str)
diff --git a/suites/4g/iperf3_ul.py b/suites/4g/iperf3_ul.py
index 20489b5..fe963a9 100755
--- a/suites/4g/iperf3_ul.py
+++ b/suites/4g/iperf3_ul.py
@@ -45,4 +45,5 @@
 
 max_rate = enb.ue_max_rate(downlink=False)
 res_str = ue.verify_metric(max_rate * 0.9, operation='avg', metric='ul_brate', criterion='gt')
-print(res_str + '\n')
+print(res_str)
+test.set_report_stdout(res_str)
