Deflake MediaSessionServiceTest.addSessions_removedWhenReleased
While investigating a different test failure on a pending change I noticed that sometimes the "testAddSessions_removedWhenClose" session was being released before it could be fully connected - and this results in a failure like: ``` expected not to contain: androidx.media3.session.MediaSession@50a9ef1 but was : [androidx.media3.session.MediaSession@50a9ef1, androidx.media3.session.MediaSession@3a6bac] at androidx.media3.session.MediaSessionServiceTest.addSessions_removedWhenReleased(MediaSessionServiceTest.java:376) ``` It also shows up in the logs like: ``` MediaController future failed (so we couldn't release it) ... Caused by: java.lang.SecurityException: Session rejected the connection request. ``` Adding some debug logging revealed that the `session.release` call posted to the test thread was happening before the call to `MediaSessionStub.connect` on the main thread (this is triggered deep in prod media3 session logic). PiperOrigin-RevId: 563431265
This commit is contained in:
parent
b958f451a7
commit
06f5324665
@ -367,6 +367,8 @@ public class MediaSessionServiceTest {
|
|||||||
MediaSessionService service = TestServiceRegistry.getInstance().getServiceInstance();
|
MediaSessionService service = TestServiceRegistry.getInstance().getServiceInstance();
|
||||||
MediaSession session = createMediaSession("testAddSessions_removedWhenReleased");
|
MediaSession session = createMediaSession("testAddSessions_removedWhenReleased");
|
||||||
service.addSession(session);
|
service.addSession(session);
|
||||||
|
// Wait until connection of session is propagated.
|
||||||
|
MainLooperTestRule.runOnMainSync(() -> {});
|
||||||
List<MediaSession> sessions = service.getSessions();
|
List<MediaSession> sessions = service.getSessions();
|
||||||
assertThat(sessions.contains(session)).isTrue();
|
assertThat(sessions.contains(session)).isTrue();
|
||||||
assertThat(sessions.size()).isEqualTo(2);
|
assertThat(sessions.size()).isEqualTo(2);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user