Run test run: Filter interleaved log lines.

Different threads can print to stderr, causing interleaved output.

Test: art/test.py -b -r --host
Change-Id: Iad9b96409e7c283569866bae67235d69f9a33ad3
diff --git a/test/default_run.py b/test/default_run.py
index e6c9f51..b6d2451 100755
--- a/test/default_run.py
+++ b/test/default_run.py
@@ -1385,14 +1385,17 @@
             env,
             expected_exit_code=args.expected_exit_code)
 
+        # Remove unwanted log messages from stderr before diffing with the expected output.
+        # NB: The unwanted log line can be interleaved in the middle of wanted stderr printf.
+        #     In particular, unhandled exception is printed using several unterminated printfs.
         ALL_LOG_TAGS = ["V", "D", "I", "W", "E", "F", "S"]
         skip_tag_set = "|".join(ALL_LOG_TAGS[:ALL_LOG_TAGS.index(args.diff_min_log_tag.upper())])
-        skip_reg_exp = f'^[[:alnum:]]+ ({skip_tag_set}) #-# #:#:# '.replace('#', '[0-9]+')
-        run(fr"sed -i -E '/{skip_reg_exp}/d' '{args.stderr_file}'")
+        skip_reg_exp = fr'[[:alnum:]]+ ({skip_tag_set}) #-# #:#:# [^\n]*\n'.replace('#', '[0-9]+')
+        run(fr"sed -i -z -E 's/{skip_reg_exp}//g' '{args.stderr_file}'")
         if not HAVE_IMAGE:
           message = "(Unable to open file|Could not create image space)"
           run(fr"sed -i -E '/^dalvikvm(|32|64) E .* {message}/d' '{args.stderr_file}'")
-        if "D" in skip_tag_set:
+        if ANDROID_LOG_TAGS != "*:i" and "D" in skip_tag_set:
           run(fr"sed -i -E '/^(Time zone|I18n) APEX ICU file found/d' '{args.stderr_file}'")
       else:
         # With a thread dump that uses gdb if a timeout.