diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-07-09 19:26:18 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-07-09 19:26:18 +0000 |
commit | a22520f7d9985416ae4e022e7036dc19e2cb3b98 (patch) | |
tree | 2ffb850e24e421deb5591e1ded192e48dadf52fa | |
parent | a5531118bab626ac757d76ee0cbc88507e3a114c (diff) | |
parent | 9645595ac37619d57af11754ec7ab6be7db5ff28 (diff) | |
download | cts-a22520f7d9985416ae4e022e7036dc19e2cb3b98.tar.gz |
Merge "[RESTRICT AUTOMERGE]: Update CrashUtils regex to be reluctant." into oc-dev
-rw-r--r-- | common/host-side/tradefed/src/com/android/compatibility/common/tradefed/targetprep/CrashReporter.java | 7 | ||||
-rw-r--r-- | common/util/src/com/android/compatibility/common/util/CrashUtils.java | 18 |
2 files changed, 13 insertions, 12 deletions
diff --git a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/targetprep/CrashReporter.java b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/targetprep/CrashReporter.java index 42d71e7ff0f..768d07b9bd6 100644 --- a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/targetprep/CrashReporter.java +++ b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/targetprep/CrashReporter.java @@ -125,15 +125,16 @@ public class CrashReporter implements ITargetCleaner { private void processLogLine(String line) { mLogcatChunk.append(line); + mLogcatChunk.append('\n'); Matcher m; - if ((m = CrashUtils.sNewTestPattern.matcher(line)).matches()) { + if ((m = CrashUtils.sNewTestPattern.matcher(line)).find()) { mTestName = m.group(1); mCrashes = new ArrayList<Crash>(); mLogcatChunk.setLength(0); - } else if (CrashUtils.sEndofCrashPattern.matcher(line).matches()) { + } else if (CrashUtils.sEndofCrashPattern.matcher(line).find()) { mCrashes = CrashUtils.getAllCrashes(mLogcatChunk.toString()); mLogcatChunk.setLength(0); - } else if (CrashUtils.sUploadRequestPattern.matcher(line).matches()) { + } else if (CrashUtils.sUploadRequestPattern.matcher(line).find()) { upload(mDevice, mTestName, mCrashes); } } diff --git a/common/util/src/com/android/compatibility/common/util/CrashUtils.java b/common/util/src/com/android/compatibility/common/util/CrashUtils.java index d77b9a0b51a..715e43d266c 100644 --- a/common/util/src/com/android/compatibility/common/util/CrashUtils.java +++ b/common/util/src/com/android/compatibility/common/util/CrashUtils.java @@ -23,33 +23,33 @@ import java.util.List; /** Contains helper functions and shared constants for crash parsing. */ public class CrashUtils { - - public static final long MIN_CRASH_ADDR = 32768; + // used to only detect actual addresses instead of nullptr and other unlikely values + public static final long MIN_CRASH_ADDR = 0x8000; // Matches the end of a crash public static final Pattern sEndofCrashPattern = - Pattern.compile(".*DEBUG\\s+:\\s+backtrace:.*"); + Pattern.compile("DEBUG\\s+?:\\s+?backtrace:"); public static final String DEVICE_PATH = "/data/local/tmp/CrashParserResults/"; public static final String LOCK_FILENAME = "lockFile.loc"; public static final String UPLOAD_REQUEST = "Please upload a result file to stagefright"; public static final Pattern sUploadRequestPattern = - Pattern.compile(".*" + UPLOAD_REQUEST + ".*"); + Pattern.compile(UPLOAD_REQUEST); public static final String NEW_TEST_ALERT = "New test starting with name: "; public static final Pattern sNewTestPattern = - Pattern.compile(".*" + NEW_TEST_ALERT + "(\\w+)\\(.*\\).*"); + Pattern.compile(NEW_TEST_ALERT + "(\\w+?)\\(.*?\\)"); // Matches the smallest blob that has the appropriate header and footer private static final Pattern sCrashBlobPattern = - Pattern.compile("DEBUG\\s+:( [*]{3})+.*?DEBUG\\s+:\\s+backtrace:", Pattern.DOTALL); + Pattern.compile("DEBUG\\s+?:( [*]{3})+?.*?DEBUG\\s+?:\\s+?backtrace:", Pattern.DOTALL); // Matches process id and name line and captures them private static final Pattern sPidtidNamePattern = - Pattern.compile("pid: (\\d+), tid: (\\d+), name: ([^\\s]+\\s+)*>>> (.*) <<<"); + Pattern.compile("pid: (\\d+?), tid: (\\d+?), name: ([^\\s]+?\\s+?)*?>>> (.*?) <<<"); // Matches fault address and signal type line private static final Pattern sFaultLinePattern = Pattern.compile( - "\\w+ \\d+ \\((.*)\\), code -*\\d+ \\(.*\\), fault addr " + "\\w+? \\d+? \\((.*?)\\), code -*?\\d+? \\(.*?\\), fault addr " + "(?:0x(\\p{XDigit}+)|-+)"); // Matches the abort message line if it contains CHECK_ private static Pattern sAbortMessageCheckPattern = - Pattern.compile("(?i)Abort message.*CHECK_.*"); + Pattern.compile("(?i)Abort message.*?CHECK_"); /** * Determines if the given input has a {@link com.android.compatibility.common.util.Crash} that |