From 78fe1afa85cb2fde1d4a090420dfb8552967840c Mon Sep 17 00:00:00 2001 From: christosts Date: Wed, 22 Jan 2020 09:47:22 +0000 Subject: [PATCH] Fix flaky unit tests PiperOrigin-RevId: 290910992 --- .../DedicatedThreadAsyncMediaCodecAdapterTest.java | 5 ++++- .../mediacodec/MultiLockAsyncMediaCodecAdapterTest.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/DedicatedThreadAsyncMediaCodecAdapterTest.java b/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/DedicatedThreadAsyncMediaCodecAdapterTest.java index 01fcdb0711..2ce2e5084a 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/DedicatedThreadAsyncMediaCodecAdapterTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/DedicatedThreadAsyncMediaCodecAdapterTest.java @@ -290,11 +290,14 @@ public class DedicatedThreadAsyncMediaCodecAdapterTest { AtomicInteger onCodecStartCount = new AtomicInteger(0); adapter.setCodecStartRunnable(() -> onCodecStartCount.incrementAndGet()); adapter.start(); + // Grab reference to Looper before shutting down the adapter otherwise handlerThread.getLooper() + // might return null. + Looper looper = handlerThread.getLooper(); adapter.flush(); adapter.shutdown(); // Wait until all tasks have been handled. - Shadows.shadowOf(handlerThread.getLooper()).idle(); + Shadows.shadowOf(looper).idle(); // Only adapter.start() calls onCodecStart. assertThat(onCodecStartCount.get()).isEqualTo(1); } diff --git a/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/MultiLockAsyncMediaCodecAdapterTest.java b/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/MultiLockAsyncMediaCodecAdapterTest.java index bc9baab577..1232d8bf3e 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/MultiLockAsyncMediaCodecAdapterTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/MultiLockAsyncMediaCodecAdapterTest.java @@ -290,10 +290,13 @@ public class MultiLockAsyncMediaCodecAdapterTest { AtomicInteger codecStartCalls = new AtomicInteger(0); adapter.setCodecStartRunnable(() -> codecStartCalls.incrementAndGet()); adapter.start(); + // Grab reference to Looper before shutting down the adapter otherwise handlerThread.getLooper() + // might return null. + Looper looper = handlerThread.getLooper(); adapter.flush(); adapter.shutdown(); - Shadows.shadowOf(handlerThread.getLooper()).idle(); + Shadows.shadowOf(looper).idle(); // Only adapter.start() called codec#start() assertThat(codecStartCalls.get()).isEqualTo(1); }