-
Notifications
You must be signed in to change notification settings - Fork 5
Closed
Milestone
Description
As a Pillarbox developer, I want to be able to run the project's tests with confidence.
Context
Currently, some tests randomly fail.
TimeoutException
MetricsCollectorTest > playback item transition
MetricsCollectorTest > playback item transition FAILED
java.util.concurrent.TimeoutException
at androidx.media3.test.utils.robolectric.RobolectricUtil.runLooperUntil(RobolectricUtil.java:149)
at androidx.media3.test.utils.robolectric.RobolectricUtil.runMainLooperUntil(RobolectricUtil.java:98)
at androidx.media3.test.utils.robolectric.RobolectricUtil.runMainLooperUntil(RobolectricUtil.java:76)
at androidx.media3.test.utils.robolectric.TestPlayerRunHelper$PlayerRunResult.runUntil(TestPlayerRunHelper.java:306)
at androidx.media3.test.utils.robolectric.TestPlayerRunHelper$PlayerRunResult.untilState(TestPlayerRunHelper.java:121)
at androidx.media3.test.utils.robolectric.TestPlayerRunHelper.runUntilPlaybackState(TestPlayerRunHelper.java:582)
at ch.srgssr.pillarbox.player.analytics.MetricsCollectorTest.playback item transition(MetricsCollectorTest.kt:91)
PlaybackSessionManagerTest > multiple media items
java.util.concurrent.TimeoutException
at androidx.media3.test.utils.robolectric.RobolectricUtil.runLooperUntil(RobolectricUtil.java:149)
at androidx.media3.test.utils.robolectric.RobolectricUtil.runMainLooperUntil(RobolectricUtil.java:98)
at androidx.media3.test.utils.robolectric.RobolectricUtil.runMainLooperUntil(RobolectricUtil.java:76)
at androidx.media3.test.utils.robolectric.TestPlayerRunHelper$PlayerRunResult.runUntil(TestPlayerRunHelper.java:306)
at androidx.media3.test.utils.robolectric.TestPlayerRunHelper$PlayerRunResult.untilState(TestPlayerRunHelper.java:121)
at androidx.media3.test.utils.robolectric.TestPlayerRunHelper.runUntilPlaybackState(TestPlayerRunHelper.java:582)
at ch.srgssr.pillarbox.player.analytics.PlaybackSessionManagerTest.play multiple media items(PlaybackSessionManagerTest.kt:183)
PlaybackSessionManagerTest > play multiple media items, remove upcoming media item
PlaybackSessionManagerTest > play multiple media items, remove upcoming media item FAILED
java.util.concurrent.TimeoutException
at androidx.media3.test.utils.robolectric.RobolectricUtil.runLooperUntil(RobolectricUtil.java:149)
at androidx.media3.test.utils.robolectric.RobolectricUtil.runMainLooperUntil(RobolectricUtil.java:98)
at androidx.media3.test.utils.robolectric.RobolectricUtil.runMainLooperUntil(RobolectricUtil.java:76)
at androidx.media3.test.utils.robolectric.TestPlayerRunHelper$PlayerRunResult.runUntil(TestPlayerRunHelper.java:306)
at androidx.media3.test.utils.robolectric.TestPlayerRunHelper$PlayerRunResult.untilState(TestPlayerRunHelper.java:121)
at androidx.media3.test.utils.robolectric.TestPlayerRunHelper.runUntilPlaybackState(TestPlayerRunHelper.java:582)
at ch.srgssr.pillarbox.player.analytics.PlaybackSessionManagerTest.play multiple media items, remove upcoming media item(PlaybackSessionManagerTest.kt:234)
MockKException
CommandersActTrackerIntegrationTest > check uptime and position updates for not live
CommandersActTrackerIntegrationTest > check uptime and position updates for not live FAILED
io.mockk.MockKException: no answer found for ExoPlayer(#26).getApplicationLooper() among the configured answers: ()
at io.mockk.impl.stub.MockKStub.defaultAnswer(MockKStub.kt:93)
at io.mockk.impl.stub.MockKStub.answer(MockKStub.kt:44)
at io.mockk.impl.recording.states.AnsweringState.call(AnsweringState.kt:16)
at io.mockk.impl.recording.CommonCallRecorder.call(CommonCallRecorder.kt:53)
at io.mockk.impl.stub.MockKStub.handleInvocation(MockKStub.kt:271)
at io.mockk.impl.instantiation.JvmMockFactoryHelper$mockHandler$1.invocation(JvmMockFactoryHelper.kt:25)
at app//io.mockk.proxy.jvm.advice.Interceptor.call(Interceptor.kt:21)
at app//io.mockk.proxy.jvm.advice.BaseAdvice.handle(BaseAdvice.kt:42)
at app//io.mockk.proxy.jvm.advice.jvm.JvmMockKProxyInterceptor.interceptNoSuper(JvmMockKProxyInterceptor.java:44)
at androidx.media3.exoplayer.ExoPlayer$Subclass0.getApplicationLooper(Unknown Source)
at ch.srgssr.pillarbox.player.PillarboxExoPlayerKt.runOnApplicationLooper(PillarboxExoPlayer.kt:436)
at ch.srgssr.pillarbox.core.business.tracker.commandersact.CommandersActStreaming.positionHeartbeat$lambda$1(CommandersActStreaming.kt:50)
at ch.srgssr.pillarbox.player.utils.Heartbeat$start$1.invokeSuspend(Heartbeat.kt:53)
at app//kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:589)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:832)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:720)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:707)
AssertionError
PillarboxMediaMetaDataTrackerTest > chapter transition after seek back
PillarboxMediaMetaDataTrackerTest > chapter transition after seek back FAILED
java.lang.AssertionError: expected:<[Chapter(id=Chapter3, start=2000, end=5000, mediaMetadata=androidx.media3.common.MediaMetadata@743fcd71), null, Chapter(id=Chapter3, start=2000, end=5000, mediaMetadata=androidx.media3.common.MediaMetadata@743fcd71), null, Chapter(id=Chapter4, start=10000, end=15000, mediaMetadata=androidx.media3.common.MediaMetadata@743fcd71), null]> but was:<[Chapter(id=Chapter3, start=2000, end=5000, mediaMetadata=androidx.media3.common.MediaMetadata@743fcd71), null, Chapter(id=Chapter3, start=2000, end=5000, mediaMetadata=androidx.media3.common.MediaMetadata@743fcd71), Chapter(id=Chapter4, start=10000, end=15000, mediaMetadata=androidx.media3.common.MediaMetadata@743fcd71), null]>
at org.junit.Assert.fail(Assert.java:89)
at org.junit.Assert.failNotEquals(Assert.java:835)
at org.junit.Assert.assertEquals(Assert.java:120)
at kotlin.test.junit.JUnitAsserter.assertEquals(JUnitSupport.kt:32)
at kotlin.test.AssertionsKt__AssertionsKt.assertEquals(Assertions.kt:63)
at kotlin.test.AssertionsKt.assertEquals(Unknown Source)
at kotlin.test.AssertionsKt__AssertionsKt.assertEquals$default(Assertions.kt:62)
at kotlin.test.AssertionsKt.assertEquals$default(Unknown Source)
at ch.srgssr.pillarbox.player.tracker.PillarboxMediaMetaDataTrackerTest.chapter transition after seek back(PillarboxMediaMetaDataTrackerTest.kt:96)
Acceptance criteria
- Pillarbox tests run reliably.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
✅ Done