summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-07-09 19:26:18 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-07-09 19:26:18 +0000
commita22520f7d9985416ae4e022e7036dc19e2cb3b98 (patch)
tree2ffb850e24e421deb5591e1ded192e48dadf52fa
parenta5531118bab626ac757d76ee0cbc88507e3a114c (diff)
parent9645595ac37619d57af11754ec7ab6be7db5ff28 (diff)
downloadcts-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.java7
-rw-r--r--common/util/src/com/android/compatibility/common/util/CrashUtils.java18
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