From 06e95ad2fbbd835939617ddb44b9176e498ac0ea Mon Sep 17 00:00:00 2001 From: samrobinson Date: Tue, 11 Jun 2024 06:10:31 -0700 Subject: [PATCH] Reduce flakiness of getProgress tests around percentage values. There is no requirement for the first progress value to be 0, if progress is made instantly. PiperOrigin-RevId: 642245457 --- .../transformer/MediaItemExportTest.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) 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 a58d083279..80dcb98ed8 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java @@ -1379,8 +1379,8 @@ public final class MediaItemExportTest { progressStatesAndValues = runTransformerForProgressStateAndValueUpdates(transformer); ImmutableList progressValues = progressStatesAndValues.second; - assertThat(progressValues).isNotEmpty(); - assertThat(progressValues.get(0)).isEqualTo(0); + assertThat(progressValues.size()).isAtLeast(2); + assertThat(progressValues.get(0)).isAtLeast(0); assertThat(progressValues).isInStrictOrder(); assertThat(Iterables.getLast(progressValues)).isAtMost(100); } @@ -1444,8 +1444,8 @@ public final class MediaItemExportTest { progressStatesAndValues = runTransformerForProgressStateAndValueUpdates(transformer); ImmutableList progressValues = progressStatesAndValues.second; - assertThat(progressValues).isNotEmpty(); - assertThat(progressValues.get(0)).isEqualTo(0); + assertThat(progressValues.size()).isAtLeast(2); + assertThat(progressValues.get(0)).isAtLeast(0); assertThat(progressValues).isInStrictOrder(); assertThat(Iterables.getLast(progressValues)).isAtMost(100); } @@ -1665,6 +1665,16 @@ public final class MediaItemExportTest { } }); + // Do once more when transformer has finished running. + @Transformer.ProgressState int progressState = transformer.getProgress(progressHolder); + if (progressStates.isEmpty() || progressState != progressStates.getLast()) { + progressStates.add(progressState); + } + if (progressState == PROGRESS_STATE_AVAILABLE + && (progressValues.isEmpty() || progressHolder.progress != progressValues.getLast())) { + progressValues.add(progressHolder.progress); + } + return new Pair<>(ImmutableList.copyOf(progressStates), ImmutableList.copyOf(progressValues)); }