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();