summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Dombroski <cdombroski@google.com>2019-07-09 12:53:44 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-07-09 12:53:44 -0700
commit6679aac414df27cc909a0ac7dd4a9d18321220ad (patch)
tree4f97c78d15f5a2767d2f5328d5fdbd6573fc509f
parent175187bafb6538838830a775c77e2249cb7288b1 (diff)
parent4ee20c64f2e4df2639cf6d360d6d628fa77d347c (diff)
downloadplatform_test_suite_harness-android10-dev.tar.gz
platform_test_suite_harness-android10-dev.tar.bz2
platform_test_suite_harness-android10-dev.zip
Merge "Update CrashUtils regex to be reluctant." into pi-devandroid10-dev
am: 4ee20c64f2 Change-Id: I2db24fad614653fa3b6ef6fba546cb7aaa6b6e0b
-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 51e712bc..8e846e09 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
@@ -121,15 +121,16 @@ public class CrashReporter extends BaseTargetPreparer 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 JSONArray();
mLogcatChunk.setLength(0);
- } else if (CrashUtils.sEndofCrashPattern.matcher(line).matches()) {
+ } else if (CrashUtils.sEndofCrashPattern.matcher(line).find()) {
CrashUtils.addAllCrashes(mLogcatChunk.toString(), mCrashes);
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 e058df4c..08375ad3 100644
--- a/common/util/src/com/android/compatibility/common/util/CrashUtils.java
+++ b/common/util/src/com/android/compatibility/common/util/CrashUtils.java
@@ -24,19 +24,19 @@ import org.json.JSONObject;
/** 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+?)\\(.*?\\)");
public static final String SIGNAL = "signal",
NAME = "name",
PID = "pid",
@@ -44,18 +44,18 @@ public class CrashUtils {
FAULT_ADDRESS = "faultaddress";
// 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