package kotlinx.coroutines import kotlinx.coroutines.testing.* import kotlin.test.* class LimitedParallelismSharedTest : TestBase() { @Test fun testLimitedDefault() = runTest { // Test that evaluates the very basic completion of tasks in limited dispatcher // for all supported platforms. // For more specific and concurrent tests, see 'concurrent' package. val view = Dispatchers.Default.limitedParallelism(1) val view2 = Dispatchers.Default.limitedParallelism(1) val j1 = launch(view) { while (true) { yield() } } val j2 = launch(view2) { j1.cancel() } joinAll(j1, j2) } @Test fun testParallelismSpec() { assertFailsWith { Dispatchers.Default.limitedParallelism(0) } assertFailsWith { Dispatchers.Default.limitedParallelism(-1) } assertFailsWith { Dispatchers.Default.limitedParallelism(Int.MIN_VALUE) } Dispatchers.Default.limitedParallelism(Int.MAX_VALUE) } }