Merge "Support a "System" toggle in CTS-Verifier. When it's enabled:" into android14-tests-dev
diff --git a/tests/tests/car/src/android/car/cts/CarOccupantConnectionManagerTest.java b/tests/tests/car/src/android/car/cts/CarOccupantConnectionManagerTest.java
index ea49be4..2c729b4 100644
--- a/tests/tests/car/src/android/car/cts/CarOccupantConnectionManagerTest.java
+++ b/tests/tests/car/src/android/car/cts/CarOccupantConnectionManagerTest.java
@@ -72,6 +72,7 @@
private static final long WAIT_BEFORE_RESPOND_TO_REQUEST_MS = 2_000;
private static final long CALLBACK_TIMEOUT_MS = WAIT_BEFORE_RESPOND_TO_REQUEST_MS + 2_000;
private static final long EXCHANGE_PAYLOAD_TIMEOUT_MS = 10_000;
+ private static final long POLLING_CHECK_TIMEOUT_MS = 3_000;
private static final Payload PAYLOAD1 = new Payload(HexFormat.of().parseHex("1234"));
private static final Payload PAYLOAD2 = new Payload(HexFormat.of().parseHex("5678"));
@@ -114,19 +115,19 @@
"android.car.occupantconnection.CarOccupantConnectionManager#unregisterReceiver",
"android.car.occupantconnection.AbstractReceiverService#getAllReceiverEndpoints",
"android.car.occupantconnection.AbstractReceiverService#onLocalServiceBind"})
- public void testRegisterAndUnregisterReceiver() {
+ public void testRegisterAndUnregisterReceiver() throws Exception {
mOccupantConnectionManager.registerReceiver(RECEIVER_ID, mExecutor,
(senderZone, payload) -> {
});
TestReceiverService receiverService = bindToLocalReceiverServiceAndWait();
- assertWithMessage("Failed to register the receiver").that(
- receiverService.getAllReceiverEndpoints().contains(RECEIVER_ID)).isTrue();
+ PollingCheck.check("Failed to register the receiver", POLLING_CHECK_TIMEOUT_MS,
+ () -> receiverService.getAllReceiverEndpoints().contains(RECEIVER_ID));
mOccupantConnectionManager.unregisterReceiver(RECEIVER_ID);
- assertWithMessage("Failed to unregister the receiver").that(
- receiverService.getAllReceiverEndpoints().isEmpty()).isTrue();
+ PollingCheck.check("Failed to unregister the receiver", POLLING_CHECK_TIMEOUT_MS,
+ () -> receiverService.getAllReceiverEndpoints().isEmpty());
}
@Test
@@ -388,6 +389,7 @@
@Override
public void onReceiverRegistered(String receiverEndpointId) {
+ Log.v(TAG, "onReceiverRegistered:" + receiverEndpointId);
}
@Override
diff --git a/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeAccuracyTestBase.java b/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeAccuracyTestBase.java
index 5743455..e30f56b 100644
--- a/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeAccuracyTestBase.java
+++ b/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeAccuracyTestBase.java
@@ -979,6 +979,10 @@
return glSurfaceViewThread.getByteBuffer();
}
+ public Object getSyncToken() {
+ return surfaceSyncToken;
+ }
+
/* Does all GL operations. */
private class GLSurfaceViewThread extends Thread
implements SurfaceTexture.OnFrameAvailableListener {
@@ -1219,11 +1223,13 @@
/* Reads the pixels to a ByteBuffer. */
public void saveFrame() {
- byteBufferIsReady = false;
- byteBuffer.clear();
- GLES20.glReadPixels(0, 0, VIEW_WIDTH, VIEW_HEIGHT, GLES20.GL_RGBA,
- GLES20.GL_UNSIGNED_BYTE, byteBuffer);
- byteBufferIsReady = true;
+ synchronized (surfaceSyncToken) {
+ byteBufferIsReady = false;
+ byteBuffer.clear();
+ GLES20.glReadPixels(0, 0, VIEW_WIDTH, VIEW_HEIGHT, GLES20.GL_RGBA,
+ GLES20.GL_UNSIGNED_BYTE, byteBuffer);
+ byteBufferIsReady = true;
+ }
}
public int getTextureId() {
@@ -1517,10 +1523,14 @@
try {
final ByteBuffer byteBuffer = glSurfaceViewFactory.getByteBuffer();
bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
- byteBuffer.rewind();
- bitmap.copyPixelsFromBuffer(byteBuffer);
- bitmapIsReady = true;
- byteBuffer.clear();
+
+ final Object syncToken = glSurfaceViewFactory.getSyncToken();
+ synchronized (syncToken) {
+ byteBuffer.rewind();
+ bitmap.copyPixelsFromBuffer(byteBuffer);
+ bitmapIsReady = true;
+ byteBuffer.clear();
+ }
} catch (NullPointerException exception) {
Log.e(TAG, "glSurfaceViewFactory or byteBuffer may have been released", exception);
bitmap = null;
diff --git a/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeOnlyTest.java b/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeOnlyTest.java
index ac0c24e..1d12018 100644
--- a/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeOnlyTest.java
+++ b/tests/tests/media/decoder/src/android/media/decoder/cts/DecodeOnlyTest.java
@@ -643,6 +643,7 @@
Thread.sleep(500);
videoCodec.flush();
audioCodec.flush();
+ audioTrack.flush();
videoAsyncHandler.clearBufferQueue();
// Frames at 7s of each file are not key frame, and there is non-zero key frame before it