Fix StagefrightTests
Update the process names to regex so that they match hidl processes.
Bug: 113170203
Test: run stagefright against an expected failure
Change-Id: Icf03f341f55f97a43db5e8dcdf3da75c24e041ef
Merged-In: Icf03f341f55f97a43db5e8dcdf3da75c24e041ef
diff --git a/tests/tests/security/Android.mk b/tests/tests/security/Android.mk
index f4ae8a7..3d4498d 100644
--- a/tests/tests/security/Android.mk
+++ b/tests/tests/security/Android.mk
@@ -27,6 +27,7 @@
ctstestserver \
ctstestrunner-axt \
compatibility-device-util-axt \
+ compatibility-common-util-devicesidelib \
guava \
platform-test-annotations
diff --git a/tests/tests/security/src/android/security/cts/StagefrightTest.java b/tests/tests/security/src/android/security/cts/StagefrightTest.java
index 4096363..163cd10 100644
--- a/tests/tests/security/src/android/security/cts/StagefrightTest.java
+++ b/tests/tests/security/src/android/security/cts/StagefrightTest.java
@@ -68,6 +68,7 @@
import java.util.HashMap;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;
+import java.util.regex.Pattern;
import org.json.JSONArray;
import org.json.JSONException;
@@ -1185,8 +1186,23 @@
MediaPlayer.OnPreparedListener,
MediaPlayer.OnCompletionListener {
- private final String[] validProcessNames = {
- "mediaserver", "mediadrmserver", "media.extractor", "media.codec", "media.metrics"
+ private final Pattern[] validProcessPatterns = {
+ Pattern.compile("adsprpcd"),
+ Pattern.compile("android\\.hardware\\.cas@\\d+?\\.\\d+?-service"),
+ Pattern.compile("android\\.hardware\\.drm@\\d+?\\.\\d+?-service"),
+ Pattern.compile("android\\.hardware\\.drm@\\d+?\\.\\d+?-service\\.clearkey"),
+ Pattern.compile("android\\.hardware\\.drm@\\d+?\\.\\d+?-service\\.widevine"),
+ Pattern.compile("android\\.process\\.media"),
+ Pattern.compile("mediadrmserver"),
+ Pattern.compile("media\\.extractor"),
+ Pattern.compile("media\\.metrics"),
+ Pattern.compile("mediaserver"),
+ Pattern.compile("media\\.codec"),
+ Pattern.compile("media\\.swcodec"),
+ Pattern.compile("\\[?sdcard\\]?"), // name:/system/bin/sdcard, user:media_rw
+ // Match any vendor processes.
+ // It should only catch crashes that happen during the test.
+ Pattern.compile("vendor.*"),
};
@Override
@@ -1234,7 +1250,7 @@
if (crashes == null) {
Log.e(TAG, "Crash results not found for test " + getName());
return what;
- } else if (CrashUtils.detectCrash(validProcessNames, true, crashes)) {
+ } else if (CrashUtils.securityCrashDetected(crashes, true, validProcessPatterns)) {
return what;
} else {
Log.i(TAG, "Crash ignored due to no security crash found for test " +