Merge changes I79f72bb4,Ic9c10b05 into main am: c0631c8948 am: b2c6bbddca

Original change: https://android-review.googlesource.com/c/platform/tools/asuite/+/3366541

Change-Id: I23910121425025f1b7b47cdcd3ce9a075bccc9fe
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/atest/atest_utils.py b/atest/atest_utils.py
index 2bc306d..d46b2db 100644
--- a/atest/atest_utils.py
+++ b/atest/atest_utils.py
@@ -311,9 +311,8 @@
   is_rolling = True
 
   def reset_output():
-    if not is_rolling:
-      return
-    io_output.write(_BASH_CLEAR_PREVIOUS_LINE_CODE * (len(last_lines) + 2))
+    if is_rolling and last_lines:
+      io_output.write(_BASH_CLEAR_PREVIOUS_LINE_CODE * (len(last_lines) + 2))
 
   def write_output(new_lines: list[str]):
     if not is_rolling:
@@ -327,6 +326,7 @@
     io_output.flush()
 
   original_stdout = sys.stdout
+  original_stderr = sys.stderr
 
   lock = threading.Lock()
 
@@ -351,6 +351,7 @@
       original_stdout.flush()
 
   sys.stdout = SafeStdout()
+  sys.stderr = sys.stdout
 
   for line in iter(io_input.readline, ''):
     if not line:
@@ -376,6 +377,7 @@
     io_output.flush()
 
   sys.stdout = original_stdout
+  sys.stderr = original_stderr
 
   io_input.close()
 
diff --git a/atest/atest_utils_unittest.py b/atest/atest_utils_unittest.py
index 243b6b5..6fae039 100755
--- a/atest/atest_utils_unittest.py
+++ b/atest/atest_utils_unittest.py
@@ -137,6 +137,21 @@
         io_output.getvalue(),
     )
 
+  @mock.patch.object(atest_utils, 'get_terminal_size', return_value=(5, -1))
+  def test_stream_io_output_no_lines_written_no_lines_cleared(self, _):
+    """Test when nothing is written, no lines are cleared."""
+    io_input = StringIO()
+    io_output = StringIO()
+
+    atest_utils.stream_io_output(
+        io_input, max_lines=2, io_output=io_output, is_io_output_atty=True
+    )
+
+    self.assertNotIn(
+        atest_utils._BASH_CLEAR_PREVIOUS_LINE_CODE,
+        io_output.getvalue(),
+    )
+
 
 class ConcatenatePathTest(unittest.TestCase):
   """Class that tests path concatenation."""