/* * Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ package kotlinx.coroutines.reactive import kotlinx.coroutines.* import org.junit.Test import kotlin.test.* class PublisherMultiTest : TestBase() { @Test fun testConcurrentStress() = runBlocking { val n = 10_000 * stressTestMultiplier val observable = publish { // concurrent emitters (many coroutines) val jobs = List(n) { // launch launch { send(it) } } jobs.forEach { it.join() } } val resultSet = mutableSetOf() observable.collect { assertTrue(resultSet.add(it)) } assertEquals(n, resultSet.size) } }