diff options
author | Presubmit Automerger Backend <android-build-presubmit-automerger-backend@system.gserviceaccount.com> | 2022-08-31 23:19:59 +0000 |
---|---|---|
committer | Presubmit Automerger Backend <android-build-presubmit-automerger-backend@system.gserviceaccount.com> | 2022-08-31 23:19:59 +0000 |
commit | c79364a1a3cf217e74ab28d55a0f37fa9a297da5 (patch) | |
tree | 9c1cc8a7f8a02b8c69a54785d0835fda7768ac37 | |
parent | 755fed4406b9a3acbbd6d1cea9df2aebd4ad4cdb (diff) | |
parent | 7242fbaa6e66273a3d59dd42b08fa13a0e8cb0c3 (diff) | |
download | platform_testing-c79364a1a3cf217e74ab28d55a0f37fa9a297da5.tar.gz |
[automerge] TombstoneUtils clean up warnings 2p: 7242fbaa6e
Original change: https://googleplex-android-review.googlesource.com/c/platform/platform_testing/+/19788132
Bug: 230008801
Change-Id: I4916ab64d5882e46d0f95c7cd94c83f607738fad
5 files changed, 60 insertions, 54 deletions
diff --git a/libraries/sts-common-util/host-side/Android.bp b/libraries/sts-common-util/host-side/Android.bp index 2744cdd44..e89fde3c9 100644 --- a/libraries/sts-common-util/host-side/Android.bp +++ b/libraries/sts-common-util/host-side/Android.bp @@ -20,14 +20,15 @@ java_library_host { name: "sts-host-util", defaults: ["cts_error_prone_rules"], - srcs: ["src/**/*.java"], - + srcs: [ + "src/**/*.java", + ], static_libs: [ "sts-common-util-lib", - "xz-java", + "sts-libtombstone_proto-java", "truth-prebuilt", + "xz-java", ], - libs: [ "compatibility-host-util", "compatibility-tradefed", @@ -35,3 +36,19 @@ java_library_host { "tradefed", ], } + +java_library_host { + name: "sts-libtombstone_proto-java", + visibility: [ + "//platform_testing/libraries/sts-common-util/host-side", + ], + srcs: [ + ":libtombstone_proto-src", + ], + proto: { + type: "lite", + }, + static_libs: [ + "libprotobuf-java-lite", + ], +} diff --git a/libraries/sts-common-util/host-side/src/com/android/sts/common/util/TombstoneParser.java b/libraries/sts-common-util/host-side/src/com/android/sts/common/util/TombstoneParser.java index 479569254..a5cffc549 100644 --- a/libraries/sts-common-util/host-side/src/com/android/sts/common/util/TombstoneParser.java +++ b/libraries/sts-common-util/host-side/src/com/android/sts/common/util/TombstoneParser.java @@ -45,7 +45,6 @@ public class TombstoneParser { Pattern.compile("failed to find entry for main thread in tombstone"); private static final Pattern THREAD_SEPARATOR_PATTERN = Pattern.compile("--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---"); - private static final Pattern OPEN_FILES_PATTERN = Pattern.compile("open files:"); // " fd %d: %s (%s)" private static final Pattern OPEN_FILE_ROW_PATTERN = Pattern.compile( @@ -66,10 +65,6 @@ public class TombstoneParser { private static final Pattern ABORT_PATTERN = Pattern.compile( "^Abort message: '(?<message>.*)'$", Pattern.MULTILINE | Pattern.DOTALL); - private static final Pattern MULTIPLE_CAUSES_PATTERN = - Pattern.compile( - "Note: multiple potential causes for this crash were detected, listing them in" - + " decreasing order of likelihood."); private static final Pattern DEALLOC_PATTERN = Pattern.compile("deallocated by thread (?<tid>\\d+):"); private static final Pattern ALLOC_PATTERN = @@ -106,10 +101,6 @@ public class TombstoneParser { "pid: (?<pid>\\d+), tid: (?<tid>\\d+), name: (?<threadname>.+?) >>>" + " (?<processname>.+?) <<<"); private static final Pattern THREAD_HEADER_2_PATTERN = Pattern.compile("uid: (?<uid>\\d+)"); - // TODO: finish description - // private static final Pattern TAGGED_ADDR_CTRL_PATTERN = Pattern.compile("tagged_addr_ctrl: - // (?<taggedaddrctrl>\\p{XDigit}{16})(?:\\((mask 0x(?<mtemask>\\p{XDigit}{4}))?(?:, )?, unknown - // 0x(?<unknownvalue>)\\p{XDigit}{8,16}\\))?"); private static final Pattern TAGGED_ADDR_CTRL_PATTERN = Pattern.compile( "tagged_addr_ctrl: (?<taggedaddrctrl>\\p{XDigit}{16})(?<description>.+)?"); @@ -154,8 +145,10 @@ public class TombstoneParser { private static final Pattern CURRENT_BACKTRACE_BLOB_PATTERN = Pattern.compile( String.format( - "^backtrace:\n(?:%s\n)*(?:%s\n)*", - BACKTRACE_NOTE_PATTERN.pattern(), BACKTRACE_PATTERN.pattern()), + "^%s\n(?:%s\n)*(?:%s\n)*", + BACKTRACE_HEADER_PATTERN.pattern(), + BACKTRACE_NOTE_PATTERN.pattern(), + BACKTRACE_PATTERN.pattern()), Pattern.MULTILINE); private static final Pattern ALLOC_BACKTRACE_BLOB_PATTERN = Pattern.compile( @@ -173,8 +166,6 @@ public class TombstoneParser { public static final List<Tombstone> parseLogcat(String logcat) { String[] potentialTombstones = splitPattern(TOMBSTONE_HEADER_PATTERN).split(logcat); - String filename = "/tmp/tombstone-" + System.currentTimeMillis(); - List<Tombstone> tombstones = new ArrayList<>(); for (String potentialTombstone : potentialTombstones) { Tombstone.Builder tombstoneBuilder = Tombstone.newBuilder(); diff --git a/libraries/sts-common-util/host-side/src/com/android/sts/common/util/TombstoneUtils.java b/libraries/sts-common-util/host-side/src/com/android/sts/common/util/TombstoneUtils.java index 0932a826e..4864b95c5 100644 --- a/libraries/sts-common-util/host-side/src/com/android/sts/common/util/TombstoneUtils.java +++ b/libraries/sts-common-util/host-side/src/com/android/sts/common/util/TombstoneUtils.java @@ -43,21 +43,25 @@ public class TombstoneUtils { assertThat(securityCrashes).isEqualTo(List.of()); } + /** + * @param tombstones a list of tombstones to check + * @param config crash detection configuration object + * @return a list of tombstones that are security-related + */ public static List<Tombstone> getSecurityCrashes(List<Tombstone> tombstones, Config config) { return tombstones.stream() - .filter(tombstone -> filterSecurityCrash(tombstone, config)) + .filter(tombstone -> isSecurityCrash(tombstone, config)) .collect(Collectors.toList()); } /** - * Determines which given inputs have a {@link com.android.compatibility.common.util.Crash} that - * should fail an sts test + * Determines if a tombstone is likely to be security-related against the given configuration. * - * @param crashes list of crashes to check + * @param tombstone the tombstone to check * @param config crash detection configuration object - * @return the list of crashes serious enough to fail an sts test + * @return if the tombstone is security-related */ - public static boolean filterSecurityCrash(Tombstone tombstone, Config config) { + public static boolean isSecurityCrash(Tombstone tombstone, Config config) { // match process patterns Optional<String> processFilename = getProcessFilename(tombstone); @@ -74,8 +78,8 @@ public class TombstoneUtils { // // HWASAN abort message example: // ==13248==ERROR: HWAddressSanitizer: tag-mismatch on address 0x004d84460302... - String abortMessage = tombstone.getAbortMessage(); - if (abortMessage != null && abortMessage.contains("AddressSanitizer")) { + String abortMessage = tombstone.getAbortMessage(); // empty proto field returns "" + if (abortMessage.contains("AddressSanitizer")) { return true; } } @@ -367,15 +371,13 @@ public class TombstoneUtils { public boolean match(BacktraceFrame frame) { if (frame == null) return false; - String filename = frame.getFileName(); - String method = frame.getFunctionName(); + String filename = frame.getFileName(); // empty proto field returns "" + String method = frame.getFunctionName(); // empty proto field returns "" boolean filenameMatches = - (filenamePattern == null - || (filename != null && filenamePattern.matcher(filename).find())); + filenamePattern == null || filenamePattern.matcher(filename).find(); boolean methodMatches = - (methodPattern == null - || (method != null && methodPattern.matcher(method).find())); + methodPattern == null || methodPattern.matcher(method).find(); return filenameMatches && methodMatches; } } diff --git a/libraries/sts-common-util/host-side/tests/src/com/android/sts/common/util/TombstoneUtilsTest.java b/libraries/sts-common-util/host-side/tests/src/com/android/sts/common/util/TombstoneUtilsTest.java index 31f81220d..3a75b3c53 100644 --- a/libraries/sts-common-util/host-side/tests/src/com/android/sts/common/util/TombstoneUtilsTest.java +++ b/libraries/sts-common-util/host-side/tests/src/com/android/sts/common/util/TombstoneUtilsTest.java @@ -32,6 +32,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.regex.Pattern; @@ -40,6 +41,7 @@ import java.util.regex.Pattern; public class TombstoneUtilsTest { private static List<Tombstone> sTombstones; + private static final List<Tombstone> EMPTY_TOMBSTONE_LIST = Collections.emptyList(); @BeforeClass public static void setUp() throws IOException { @@ -104,7 +106,7 @@ public class TombstoneUtilsTest { .setProcessPatterns( Pattern.compile("synthetic_process_0"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); } @Test @@ -141,7 +143,7 @@ public class TombstoneUtilsTest { .setProcessPatterns( Pattern.compile("synthetic_process_1"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); } @Test @@ -164,7 +166,7 @@ public class TombstoneUtilsTest { Pattern.compile("synthetic_process_0"), Pattern.compile("generic"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); } @Test @@ -184,7 +186,7 @@ public class TombstoneUtilsTest { Pattern.compile( "com\\.android\\.bluetooth"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); } @Test @@ -209,7 +211,7 @@ public class TombstoneUtilsTest { Pattern.compile( "com\\.android\\.bluetooth"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); TombstoneUtils.assertNoSecurityCrashes( crashes, @@ -248,7 +250,7 @@ public class TombstoneUtilsTest { Pattern.compile( "com\\.android\\.bluetooth"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); } @Test @@ -300,7 +302,7 @@ public class TombstoneUtilsTest { new BacktraceFilterPattern( "libaudioutils", null))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); assertThat( TombstoneUtils.getSecurityCrashes( @@ -314,7 +316,7 @@ public class TombstoneUtilsTest { new BacktraceFilterPattern( "libaudioflinger\\.so", null))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); TombstoneUtils.assertNoSecurityCrashes( sTombstones, @@ -351,7 +353,7 @@ public class TombstoneUtilsTest { new BacktraceFilterPattern( "libstagefright", null))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); } @Test @@ -367,7 +369,7 @@ public class TombstoneUtilsTest { new BacktraceFilterPattern( null, "memcpy_to_float"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); assertThat( TombstoneUtils.getSecurityCrashes( sTombstones, @@ -380,7 +382,7 @@ public class TombstoneUtilsTest { new BacktraceFilterPattern( null, "memcpy_[^_]+_float"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); TombstoneUtils.assertNoSecurityCrashes( sTombstones, @@ -416,7 +418,7 @@ public class TombstoneUtilsTest { .setBacktraceExcludes( new BacktraceFilterPattern(null, "strlen"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); } @Test @@ -431,7 +433,7 @@ public class TombstoneUtilsTest { .setBacktraceIncludes( new BacktraceFilterPattern(null, null))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); assertThat( TombstoneUtils.getSecurityCrashes( sTombstones, @@ -443,7 +445,7 @@ public class TombstoneUtilsTest { new BacktraceFilterPattern( "libaudioutils", "memcpy"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); TombstoneUtils.assertNoSecurityCrashes( sTombstones, new TombstoneUtils.Config() @@ -462,7 +464,7 @@ public class TombstoneUtilsTest { .setProcessPatterns( Pattern.compile("com.redacted.mte-fail"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); } @Test @@ -474,6 +476,6 @@ public class TombstoneUtilsTest { .setProcessPatterns( Pattern.compile("/data/data/avrc_poc"))) .size()) - .isNotEqualTo(List.of()); + .isNotEqualTo(EMPTY_TOMBSTONE_LIST); } } diff --git a/libraries/sts-common-util/util/Android.bp b/libraries/sts-common-util/util/Android.bp index f4d627471..090143eb6 100644 --- a/libraries/sts-common-util/util/Android.bp +++ b/libraries/sts-common-util/util/Android.bp @@ -26,9 +26,9 @@ java_library_static { sdk_version: "current", srcs: ["src/**/*.java"], static_libs: [ + "compatibility-common-util-devicesidelib", "junit", "platform-test-annotations", - "compatibility-common-util-devicesidelib", ], } @@ -41,18 +41,12 @@ java_library { host_supported: true, srcs: [ "src/**/*.java", - ":libtombstone_proto-src", ], - proto: { - type: "lite", - }, static_libs: [ "compatibility-common-util-lib", - "libprotobuf-java-lite", ], libs: [ "junit", - "json-prebuilt", "platform-test-annotations", ], } |