diff options
| author | Christopher Dombroski <cdombroski@google.com> | 2019-07-09 12:53:44 -0700 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2019-07-09 12:53:44 -0700 |
| commit | 6679aac414df27cc909a0ac7dd4a9d18321220ad (patch) | |
| tree | 4f97c78d15f5a2767d2f5328d5fdbd6573fc509f | |
| parent | 175187bafb6538838830a775c77e2249cb7288b1 (diff) | |
| parent | 4ee20c64f2e4df2639cf6d360d6d628fa77d347c (diff) | |
| download | platform_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.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 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 |
