diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/performance/CompositionPlayerSeekTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/performance/CompositionPlayerSeekTest.java index 955376f234..75eef0ab52 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/performance/CompositionPlayerSeekTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/performance/CompositionPlayerSeekTest.java @@ -22,6 +22,7 @@ import static androidx.media3.transformer.AndroidTestUtil.PNG_ASSET; import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; import static com.google.common.collect.Iterables.getLast; import static com.google.common.truth.Truth.assertThat; +import static java.util.concurrent.TimeUnit.MILLISECONDS; import android.content.Context; import android.view.SurfaceView; @@ -46,6 +47,7 @@ import com.google.common.collect.Iterables; import java.util.ArrayList; import java.util.List; import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicBoolean; import org.junit.After; import org.junit.Before; @@ -480,8 +482,10 @@ public class CompositionPlayerSeekTest { latch = new CountDownLatch(count); } - public void await() throws InterruptedException { - latch.await(); + public void await() throws InterruptedException, TimeoutException { + if (!latch.await(TEST_TIMEOUT_MS, MILLISECONDS)) { + throw new TimeoutException(); + } } public void countDown() { diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java index 1663ac6ce5..35849afa6b 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java @@ -48,6 +48,7 @@ import static androidx.media3.transformer.Transformer.PROGRESS_STATE_UNAVAILABLE import static androidx.media3.transformer.Transformer.PROGRESS_STATE_WAITING_FOR_AVAILABILITY; import static androidx.test.core.app.ApplicationProvider.getApplicationContext; import static com.google.common.truth.Truth.assertThat; +import static java.util.concurrent.TimeUnit.SECONDS; import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; @@ -122,6 +123,9 @@ import org.robolectric.shadows.ShadowMediaCodec; */ @RunWith(AndroidJUnit4.class) public final class MediaItemExportTest { + + private static final long TEST_TIMEOUT_SECONDS = 10; + @Rule public final TemporaryFolder outputDir = new TemporaryFolder(); private final Context context = ApplicationProvider.getApplicationContext(); @@ -1079,7 +1083,9 @@ public final class MediaItemExportTest { countDownLatch.countDown(); } }); - countDownLatch.await(); + if (!countDownLatch.await(TEST_TIMEOUT_SECONDS, SECONDS)) { + throw new TimeoutException(); + } assertThat(exception.get()).isNull(); DumpFileAsserts.assertOutput( @@ -1109,7 +1115,9 @@ public final class MediaItemExportTest { countDownLatch.countDown(); } }); - countDownLatch.await(); + if (!countDownLatch.await(TEST_TIMEOUT_SECONDS, SECONDS)) { + throw new TimeoutException(); + } assertThat(illegalStateException.get()).isNotNull(); } @@ -1422,7 +1430,9 @@ public final class MediaItemExportTest { countDownLatch.countDown(); } }); - countDownLatch.await(); + if (!countDownLatch.await(TEST_TIMEOUT_SECONDS, SECONDS)) { + throw new TimeoutException(); + } assertThat(illegalStateException.get()).isNotNull(); } @@ -1529,7 +1539,9 @@ public final class MediaItemExportTest { countDownLatch.countDown(); } }); - countDownLatch.await(); + if (!countDownLatch.await(TEST_TIMEOUT_SECONDS, SECONDS)) { + throw new TimeoutException(); + } assertThat(illegalStateException.get()).isNotNull(); }