Cover immediate buffer probe failures and document tuning

This commit is contained in:
evgeny committed 2026-10-15 11:11:45 +02:00
1 parent 50bcf5539a
commit 91030de5ea
2 files changed
+47 -10

No files matched your search

@@ -63,7 +63,7 @@ class CallPlaybackBufferTest {
assertEquals("stable-probe", d.tick()?.reason)
}
@Test fun AcceptedHardwareMinimumIsNotProbedForever() {
@Test fun acceptedHardwareMinimumIsNotProbedForever() {
val d = Device(minimum = 1440)
d.run(32_000)
assertEquals(1440, d.frames)
@@ -113,4 +113,28 @@ class CallPlaybackBufferTest {
d.run(32_000)
assertEquals(960, d.frames)
}
@Test fun firstUnderrunImmediatelyAfterShrinkRejectsProbe() {
val d = Device()
d.run(32_000)
assertEquals(960, d.frames)
d.underruns++
assertEquals("underrun", d.tick()?.reason)
assertEquals(1920, d.frames)
}
@Test fun repeatedFailuresBackOffToFiveMinutesButStillAllowRecovery() {
val d = Device()
d.run(32_000)
val delays = listOf(60_000L, 120_000L, 240_000L, 300_000L, 300_000L)
for (delay in delays) {
d.underruns++
assertEquals("underrun", d.tick()?.reason)
assertEquals(1920, d.frames)
d.run(delay + 1_800)
assertEquals(1920, d.frames)
assertEquals("stable-probe", d.tick()?.reason)
assertEquals(960, d.frames)
}
}
}