Merge "Fix possible infinite loop in test code" into mnc-dev
This commit is contained in:
@@ -7,7 +7,7 @@ LOCAL_CERTIFICATE := platform
|
|||||||
|
|
||||||
LOCAL_SRC_FILES := $(call all-java-files-under, src)
|
LOCAL_SRC_FILES := $(call all-java-files-under, src)
|
||||||
|
|
||||||
LOCAL_JAVA_LIBRARIES := com.android.mediadrm.signer
|
LOCAL_JAVA_LIBRARIES := com.android.mediadrm.signer org.apache.http.legacy
|
||||||
|
|
||||||
LOCAL_PACKAGE_NAME := CastSignAPITest
|
LOCAL_PACKAGE_NAME := CastSignAPITest
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import android.widget.TextView;
|
|||||||
import android.media.MediaDrm.CryptoSession;
|
import android.media.MediaDrm.CryptoSession;
|
||||||
import android.media.MediaDrmException;
|
import android.media.MediaDrmException;
|
||||||
import android.media.NotProvisionedException;
|
import android.media.NotProvisionedException;
|
||||||
|
import android.media.ResourceBusyException;
|
||||||
import android.media.MediaCrypto;
|
import android.media.MediaCrypto;
|
||||||
import android.media.MediaCodec;
|
import android.media.MediaCodec;
|
||||||
import android.media.MediaCryptoException;
|
import android.media.MediaCryptoException;
|
||||||
@@ -109,21 +110,34 @@ public class CastSignAPITest extends Activity {
|
|||||||
|
|
||||||
private byte[] openSession(MediaDrm drm) {
|
private byte[] openSession(MediaDrm drm) {
|
||||||
byte[] sessionId = null;
|
byte[] sessionId = null;
|
||||||
boolean retryOpen;
|
int retryCount = 3;
|
||||||
do {
|
while (--retryCount > 0) {
|
||||||
try {
|
try {
|
||||||
retryOpen = false;
|
|
||||||
sessionId = drm.openSession();
|
sessionId = drm.openSession();
|
||||||
|
break;
|
||||||
} catch (NotProvisionedException e) {
|
} catch (NotProvisionedException e) {
|
||||||
Log.i(TAG, "Missing certificate, provisioning");
|
Log.i(TAG, "Missing certificate, provisioning");
|
||||||
ProvisionRequester provisionRequester = new ProvisionRequester();
|
ProvisionRequester provisionRequester = new ProvisionRequester();
|
||||||
provisionRequester.doTransact(drm);
|
provisionRequester.doTransact(drm);
|
||||||
retryOpen = true;
|
} catch (ResourceBusyException e) {
|
||||||
|
Log.w(TAG, "Resource busy in openSession, retrying...");
|
||||||
|
sleep(1000);
|
||||||
}
|
}
|
||||||
} while (retryOpen);
|
}
|
||||||
|
if (retryCount == 0) {
|
||||||
|
Log.e(TAG, "Failed to provision device");
|
||||||
|
mTestFailed = true;
|
||||||
|
}
|
||||||
return sessionId;
|
return sessionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sleep(int msec) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(msec);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void testCastSign() {
|
private void testCastSign() {
|
||||||
final byte[] kMessage = hex2ba("ee07514066c23c770a665719abf051e0" +
|
final byte[] kMessage = hex2ba("ee07514066c23c770a665719abf051e0" +
|
||||||
"f75a399578305eb2547ca67ecd2356ca" +
|
"f75a399578305eb2547ca67ecd2356ca" +
|
||||||
|
|||||||
@@ -244,22 +244,25 @@ public class MediaDrmAPITest extends Activity {
|
|||||||
|
|
||||||
private byte[] openSession(MediaDrm drm) {
|
private byte[] openSession(MediaDrm drm) {
|
||||||
byte[] sessionId = null;
|
byte[] sessionId = null;
|
||||||
boolean retryOpen;
|
int retryCount = 3;
|
||||||
do {
|
while (--retryCount > 0) {
|
||||||
try {
|
try {
|
||||||
retryOpen = false;
|
|
||||||
sessionId = drm.openSession();
|
sessionId = drm.openSession();
|
||||||
|
break;
|
||||||
} catch (NotProvisionedException e) {
|
} catch (NotProvisionedException e) {
|
||||||
Log.i(TAG, "Missing certificate, provisioning");
|
Log.i(TAG, "Missing certificate, provisioning");
|
||||||
ProvisionRequester provisionRequester = new ProvisionRequester();
|
ProvisionRequester provisionRequester = new ProvisionRequester();
|
||||||
provisionRequester.doTransact(drm);
|
provisionRequester.doTransact(drm);
|
||||||
retryOpen = true;
|
|
||||||
} catch (ResourceBusyException e) {
|
} catch (ResourceBusyException e) {
|
||||||
Log.w(TAG, "Resource busy in openSession, retrying...");
|
Log.w(TAG, "Resource busy in openSession, retrying...");
|
||||||
retryOpen = true;
|
|
||||||
sleep(1000);
|
sleep(1000);
|
||||||
}
|
}
|
||||||
} while (retryOpen);
|
}
|
||||||
|
|
||||||
|
if (retryCount == 0) {
|
||||||
|
Log.e(TAG, "Failed to provision device");
|
||||||
|
mTestFailed = true;
|
||||||
|
}
|
||||||
return sessionId;
|
return sessionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user