Check call audio main ownership and the late Telecom handoff
This commit is contained in:
1 parent
326bfd124e
commit
94b5d44fe7
1 file changed
+19
+19
@@ -205,4 +205,23 @@ class CallAudioLifecycleTest {
|
||||
assertTrue(diagnostic("record stop failed")); assertTrue(diagnostic("track pause failed"))
|
||||
assertEquals(1, stops())
|
||||
}
|
||||
|
||||
@Test fun zeroCallIdCannotAcquireResourcesAndBackgroundStopCannotReleaseThem() {
|
||||
assertThrows(IllegalArgumentException::class.java) { engine.start(0) }
|
||||
assertTrue(NativeLib.callAudioCommands.isEmpty()); assertTrue(diagnostic("zero call id"))
|
||||
start()
|
||||
var failure: Exception? = null
|
||||
Thread { try { engine.stop() } catch (e: Exception) { failure = e } }.apply { start(); join() }
|
||||
assertTrue(failure is IllegalStateException); assertTrue(engine.isActive()); assertEquals(0, stops())
|
||||
assertFalse(AudioRecord.created.single().released); assertTrue(diagnostic("stop outside main"))
|
||||
}
|
||||
|
||||
@Test fun lateTelecomOwnershipPreventsRestoringTheFallbackModeDuringStop() {
|
||||
start()
|
||||
engine.bindTelecom(UtunConnection())
|
||||
manager.mode = AudioManager.MODE_IN_COMMUNICATION
|
||||
engine.stop()
|
||||
assertEquals(AudioManager.MODE_IN_COMMUNICATION, manager.mode)
|
||||
assertEquals(false, field("modeOwned")); assertEquals(1, stops())
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user