Wait for Android core readiness before applying settings
This commit is contained in:
1 parent
8e0090b54b
commit
11b3ceaa9b
3 files changed
+31
-62
No files matched your search
@@ -32,7 +32,7 @@ class CoreStartupTest {
|
||||
|
||||
@After fun release() { startup.stop(); scope.cancel() }
|
||||
|
||||
private fun start() = startup.start(config) { submitted.add(it); accepted }
|
||||
private fun start() = startup.start({ config.await() }) { submitted.add(it); accepted }
|
||||
private fun waiter() = scope.async(start = CoroutineStart.UNDISPATCHED) { startup.awaitReady(); readyCalls }
|
||||
|
||||
@Test fun acceptedNativeStartDoesNotReleaseSettingsBeforeReady() = runBlocking {
|
||||
@@ -129,7 +129,7 @@ class CoreStartupTest {
|
||||
|
||||
@Test fun missingNativeReadySignalFailsWithBoundedTimeout() = runBlocking {
|
||||
val timed = coordinator(timeout = 20)
|
||||
timed.start(CompletableDeferred("config")) { true }
|
||||
timed.start({ "config" }) { true }
|
||||
val error = withTimeout(2_000) { runCatching { timed.awaitReady() }.exceptionOrNull() }
|
||||
assertTrue(error is IllegalStateException)
|
||||
assertTrue(error!!.message!!.contains("readiness timeout"))
|
||||
@@ -137,18 +137,10 @@ class CoreStartupTest {
|
||||
assertEquals(1, failures)
|
||||
}
|
||||
|
||||
@Test fun nativeStopBeforeReadyFailsInitialStartup() = runBlocking {
|
||||
start(); config.complete("config")
|
||||
startup.coreStopped()
|
||||
assertTrue(runCatching { startup.awaitReady() }.exceptionOrNull() is IllegalStateException)
|
||||
assertEquals(1, failures)
|
||||
}
|
||||
|
||||
@Test fun readyServiceContinuesResynchronizingLaterCoreInstances() = runBlocking {
|
||||
nativeReady = true
|
||||
start(); config.complete("config")
|
||||
startup.awaitReady()
|
||||
startup.coreStopped()
|
||||
startup.coreStarted()
|
||||
assertEquals(2, readyCalls)
|
||||
assertEquals(0, failures)
|
||||
@@ -189,7 +181,7 @@ class CoreStartupTest {
|
||||
}
|
||||
|
||||
@Test fun synchronousReadySignalDuringNativeSubmissionIsRetained() = runBlocking {
|
||||
startup.start(config) {
|
||||
startup.start({ config.await() }) {
|
||||
nativeReady = true
|
||||
startup.coreStarted()
|
||||
true
|
||||
|
||||
Reference in new issue
Block a user