From 722ca3e6f7a8f8ba333a009f2d4dbee2bcaa4b38 Mon Sep 17 00:00:00 2001 From: evgeny Date: Wed, 28 Oct 2026 15:24:40 +0100 Subject: [PATCH] Drain radio callbacks before terminating the host executor --- .../src/test/kotlin/com/utun/chat/data/RadioPttLifecycleTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/chatgui-android/router-tests/src/test/kotlin/com/utun/chat/data/RadioPttLifecycleTest.kt b/tools/chatgui-android/router-tests/src/test/kotlin/com/utun/chat/data/RadioPttLifecycleTest.kt index 6be34de7..e4dff028 100644 --- a/tools/chatgui-android/router-tests/src/test/kotlin/com/utun/chat/data/RadioPttLifecycleTest.kt +++ b/tools/chatgui-android/router-tests/src/test/kotlin/com/utun/chat/data/RadioPttLifecycleTest.kt @@ -39,11 +39,11 @@ class RadioPttLifecycleTest { @After fun release() { Handler.rejectDelayed = false; context.permissionGranted = true engine.stop().get(5, TimeUnit.SECONDS) + main.advanceBy(10_000); drain() // Доставить прежние ACK-timeout callbacks до завершения их io-владельца. io.shutdown(); assertTrue(io.awaitTermination(5, TimeUnit.SECONDS)) val barrier = Executors.newSingleThreadExecutor() try { barrier.submit { MediaAudioController.awaitIdle() }.get(5, TimeUnit.SECONDS) } finally { barrier.shutdownNow() } - main.advanceBy(10_000) assertTrue(context.receivers.isEmpty()) assertTrue(AudioTrack.created.all { it.released }) assertTrue(AndroidMicrophoneCapture.opened.all { it.closed })