[RESTRICT AUTOMERGE]: Add checkMinAddress flags to StagefrightTest
Bug: 140110914
Test: none
Change-Id: I7f42f0ccd7766567b5e9250859fbacec058ce13c
diff --git a/tests/tests/security/src/android/security/cts/StagefrightTest.java b/tests/tests/security/src/android/security/cts/StagefrightTest.java
index d76b97c..24c059b 100644
--- a/tests/tests/security/src/android/security/cts/StagefrightTest.java
+++ b/tests/tests/security/src/android/security/cts/StagefrightTest.java
@@ -435,27 +435,36 @@
}
private void doStagefrightTest(final int rid) throws Exception {
- doStagefrightTestMediaPlayer(rid);
- doStagefrightTestMediaCodec(rid);
- doStagefrightTestMediaMetadataRetriever(rid);
+ doStagefrightTest(rid, true); // check addresss by default
+ }
+
+ private void doStagefrightTest(final int rid, boolean checkMinCrashAddress) throws Exception {
+ doStagefrightTestMediaPlayer(rid, checkMinCrashAddress);
+ doStagefrightTestMediaCodec(rid, checkMinCrashAddress);
+ doStagefrightTestMediaMetadataRetriever(rid, checkMinCrashAddress);
Context context = getInstrumentation().getContext();
Resources resources = context.getResources();
CtsTestServer server = new CtsTestServer(context);
String rname = resources.getResourceEntryName(rid);
String url = server.getAssetUrl("raw/" + rname);
- doStagefrightTestMediaPlayer(url);
- doStagefrightTestMediaCodec(url);
- doStagefrightTestMediaMetadataRetriever(url);
+ doStagefrightTestMediaPlayer(url, checkMinCrashAddress);
+ doStagefrightTestMediaCodec(url, checkMinCrashAddress);
+ doStagefrightTestMediaMetadataRetriever(url, checkMinCrashAddress);
server.shutdown();
}
private void doStagefrightTest(final int rid, int timeout) throws Exception {
+ doStagefrightTest(rid, true, timeout); // check crash address by default
+ }
+
+ private void doStagefrightTest(
+ final int rid, boolean checkMinCrashAddress, int timeout) throws Exception {
runWithTimeout(new Runnable() {
@Override
public void run() {
try {
- doStagefrightTest(rid);
+ doStagefrightTest(rid, checkMinCrashAddress);
} catch (Exception e) {
fail(e.toString());
}
@@ -464,6 +473,11 @@
}
private void doStagefrightTestANR(final int rid) throws Exception {
+ doStagefrightTestANR(rid, true); // check crash address by default
+ }
+
+ private void doStagefrightTestANR(
+ final int rid, boolean checkMinCrashAddress) throws Exception {
doStagefrightTestMediaPlayerANR(rid, null);
}
@@ -518,6 +532,8 @@
MediaPlayer.OnPreparedListener,
MediaPlayer.OnCompletionListener {
+ boolean checkMinAddress = true;
+
private final Pattern[] validProcessPatterns = {
Pattern.compile("adsprpcd"),
Pattern.compile("android\\.hardware\\.cas@\\d+?\\.\\d+?-service"),
@@ -537,6 +553,13 @@
Pattern.compile("vendor.*"),
};
+ MediaPlayerCrashListener() {
+ }
+
+ MediaPlayerCrashListener(boolean checkMinAddress) {
+ this.checkMinAddress = checkMinAddress;
+ }
+
@Override
public boolean onError(MediaPlayer mp, int newWhat, int extra) {
Log.i(TAG, "error: " + newWhat + "/" + extra);
@@ -582,7 +605,8 @@
if (crashes == null) {
Log.e(TAG, "Crash results not found for test " + getName());
return what;
- } else if (CrashUtils.securityCrashDetected(crashes, true, validProcessPatterns)) {
+ } else if (CrashUtils.securityCrashDetected(
+ crashes, checkMinAddress, validProcessPatterns)) {
return what;
} else {
Log.i(TAG, "Crash ignored due to no security crash found for test " +
@@ -630,11 +654,21 @@
}
private void doStagefrightTestMediaPlayer(final int rid) throws Exception {
- doStagefrightTestMediaPlayer(rid, null);
+ doStagefrightTestMediaPlayer(rid, true); // check crash address by default
+ }
+
+ private void doStagefrightTestMediaPlayer(
+ final int rid, boolean checkMinCrashAddress) throws Exception {
+ doStagefrightTestMediaPlayer(rid, null, checkMinCrashAddress);
}
private void doStagefrightTestMediaPlayer(final String url) throws Exception {
- doStagefrightTestMediaPlayer(-1, url);
+ doStagefrightTestMediaPlayer(url, true); // check crash address by default
+ }
+
+ private void doStagefrightTestMediaPlayer(
+ final String url, boolean checkMinCrashAddress) throws Exception {
+ doStagefrightTestMediaPlayer(-1, url, checkMinCrashAddress);
}
private void closeQuietly(AutoCloseable closeable) {
@@ -649,12 +683,17 @@
}
private void doStagefrightTestMediaPlayer(final int rid, final String uri) throws Exception {
+ doStagefrightTestMediaPlayer(rid, uri, true); // check crash address by default
+ }
+
+ private void doStagefrightTestMediaPlayer(final int rid, final String uri,
+ boolean checkMinCrashAddress) throws Exception {
String name = uri != null ? uri :
getInstrumentation().getContext().getResources().getResourceEntryName(rid);
Log.i(TAG, "start mediaplayer test for: " + name);
- final MediaPlayerCrashListener mpcl = new MediaPlayerCrashListener();
+ final MediaPlayerCrashListener mpcl = new MediaPlayerCrashListener(checkMinCrashAddress);
LooperThread t = new LooperThread(new Runnable() {
@Override
@@ -699,16 +738,31 @@
}
private void doStagefrightTestMediaCodec(final int rid) throws Exception {
- doStagefrightTestMediaCodec(rid, null);
+ doStagefrightTestMediaCodec(rid, true); // check crash address by default
+ }
+
+ private void doStagefrightTestMediaCodec(
+ final int rid, boolean checkMinCrashAddress) throws Exception {
+ doStagefrightTestMediaCodec(rid, null, checkMinCrashAddress);
}
private void doStagefrightTestMediaCodec(final String url) throws Exception {
- doStagefrightTestMediaCodec(-1, url);
+ doStagefrightTestMediaCodec(url, true); // check crash address by default
+ }
+
+ private void doStagefrightTestMediaCodec(
+ final String url, boolean checkMinCrashAddress) throws Exception {
+ doStagefrightTestMediaCodec(-1, url, checkMinCrashAddress);
}
private void doStagefrightTestMediaCodec(final int rid, final String url) throws Exception {
+ doStagefrightTestMediaCodec(rid, url, true); // check crash address by default
+ }
- final MediaPlayerCrashListener mpcl = new MediaPlayerCrashListener();
+ private void doStagefrightTestMediaCodec(
+ final int rid, final String url, boolean checkMinCrashAddress) throws Exception {
+
+ final MediaPlayerCrashListener mpcl = new MediaPlayerCrashListener(checkMinCrashAddress);
LooperThread thr = new LooperThread(new Runnable() {
@Override
@@ -864,17 +918,31 @@
}
private void doStagefrightTestMediaMetadataRetriever(final int rid) throws Exception {
- doStagefrightTestMediaMetadataRetriever(rid, null);
+ doStagefrightTestMediaMetadataRetriever(rid, true); // check crash address by default
+ }
+ private void doStagefrightTestMediaMetadataRetriever(
+ final int rid, boolean checkMinCrashAddress) throws Exception {
+ doStagefrightTestMediaMetadataRetriever(rid, null, checkMinCrashAddress);
}
private void doStagefrightTestMediaMetadataRetriever(final String url) throws Exception {
- doStagefrightTestMediaMetadataRetriever(-1, url);
+ doStagefrightTestMediaMetadataRetriever(url, true); // check crash address by default
+ }
+
+ private void doStagefrightTestMediaMetadataRetriever(
+ final String url, boolean checkMinCrashAddress) throws Exception {
+ doStagefrightTestMediaMetadataRetriever(-1, url, checkMinCrashAddress);
}
private void doStagefrightTestMediaMetadataRetriever(
final int rid, final String url) throws Exception {
+ doStagefrightTestMediaMetadataRetriever(rid, url, true); // check crash address by default
+ }
- final MediaPlayerCrashListener mpcl = new MediaPlayerCrashListener();
+ private void doStagefrightTestMediaMetadataRetriever(
+ final int rid, final String url, boolean checkMinCrashAddress) throws Exception {
+
+ final MediaPlayerCrashListener mpcl = new MediaPlayerCrashListener(checkMinCrashAddress);
LooperThread thr = new LooperThread(new Runnable() {
@Override
@@ -1032,9 +1100,16 @@
}, 5000);
}
- private void doStagefrightTestRawBlob(int rid, String mime, int initWidth, int initHeight) throws Exception {
+ private void doStagefrightTestRawBlob(
+ int rid, String mime, int initWidth, int initHeight) throws Exception {
+ // check crash address by default
+ doStagefrightTestRawBlob(rid, mime, initWidth, initHeight, true);
+ }
- final MediaPlayerCrashListener mpcl = new MediaPlayerCrashListener();
+ private void doStagefrightTestRawBlob(int rid, String mime, int initWidth, int initHeight,
+ boolean checkMinCrashAddress) throws Exception {
+
+ final MediaPlayerCrashListener mpcl = new MediaPlayerCrashListener(checkMinCrashAddress);
final Context context = getInstrumentation().getContext();
final Resources resources = context.getResources();