Camera: fix long proecessing tests
Make sure application keep consuming images until session is fully
closed.
Bug: 25935353
Change-Id: I41e2c117ff3afc169c0e927a007ff8acf242e47a
diff --git a/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java b/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java
index 1e9fe55..82ef4bc 100644
--- a/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java
@@ -29,6 +29,7 @@
import android.hardware.camera2.CameraDevice;
import android.hardware.camera2.CaptureRequest;
import android.hardware.camera2.CaptureResult;
+import android.hardware.camera2.cts.CameraTestUtils.ImageDropperListener;
import android.hardware.camera2.cts.helpers.StaticMetadata;
import android.hardware.camera2.cts.rs.BitmapUtils;
import android.hardware.camera2.cts.testcases.Camera2AndroidTestCase;
@@ -862,7 +863,15 @@
Thread.sleep(LONG_PROCESS_TIME_MS);
img.close();
}
- // stop capture.
+ // Stop capture.
+ // Drain the reader queue in case the full queue blocks
+ // HAL from delivering new results
+ ImageDropperListener imageDropperListener = new ImageDropperListener();
+ mReader.setOnImageAvailableListener(imageDropperListener, mHandler);
+ Image img = mReader.acquireLatestImage();
+ if (img != null) {
+ img.close();
+ }
stopCapture(/*fast*/false);
} finally {
closeDefaultImageReader();