Skip to content

Commit ecaf088

Browse files
committed
fix tests (except for FlatMapLatest and TransformLatest - Dmitry will change them in #4493) + reformat
1 parent 5f10d0b commit ecaf088

File tree

8 files changed

+230
-57
lines changed

8 files changed

+230
-57
lines changed

kotlinx-coroutines-core/common/test/channels/ProduceTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package kotlinx.coroutines.channels
22

3-
import kotlinx.coroutines.testing.*
43
import kotlinx.coroutines.*
54
import kotlinx.coroutines.flow.*
5+
import kotlinx.coroutines.testing.*
66
import kotlin.coroutines.*
77
import kotlin.test.*
88

@@ -75,7 +75,7 @@ class ProduceTest : TestBase() {
7575
try {
7676
c.receive()
7777
expectUnreached()
78-
} catch (e: TestCancellationException) {
78+
} catch (_: TestCancellationException) {
7979
expect(5)
8080
}
8181
yield() // to produce
@@ -196,7 +196,7 @@ class ProduceTest : TestBase() {
196196
assertFailsWith<IllegalStateException> { (channel as ProducerScope<*>).awaitClose() }
197197
callbackFlow<Unit> {
198198
expect(1)
199-
launch {
199+
launch(start = CoroutineStart.UNDISPATCHED) {
200200
expect(2)
201201
assertFailsWith<IllegalStateException> {
202202
awaitClose { expectUnreached() }
@@ -286,7 +286,7 @@ class ProduceTest : TestBase() {
286286
produced.cancel()
287287
try {
288288
source.receive()
289-
} catch (e: CancellationException) {
289+
} catch (_: CancellationException) {
290290
finish(4)
291291
}
292292
}

kotlinx-coroutines-core/common/test/flow/channels/ChannelFlowTest.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package kotlinx.coroutines.flow
22

3-
import kotlinx.coroutines.testing.*
43
import kotlinx.coroutines.*
54
import kotlinx.coroutines.channels.*
5+
import kotlinx.coroutines.testing.*
66
import kotlin.test.*
77

88
class ChannelFlowTest : TestBase() {
@@ -20,10 +20,9 @@ class ChannelFlowTest : TestBase() {
2020
fun testBuffer() = runTest {
2121
val flow = channelFlow {
2222
assertTrue(trySend(1).isSuccess)
23-
assertTrue(trySend(2).isSuccess)
24-
assertFalse(trySend(3).isSuccess)
23+
assertFalse(trySend(2).isSuccess)
2524
}.buffer(1)
26-
assertEquals(listOf(1, 2), flow.toList())
25+
assertEquals(listOf(1), flow.toList())
2726
}
2827

2928
@Test
@@ -34,7 +33,7 @@ class ChannelFlowTest : TestBase() {
3433
assertTrue(trySend(3).isSuccess)
3534
assertTrue(trySend(4).isSuccess)
3635
}.buffer(Channel.CONFLATED)
37-
assertEquals(listOf(1, 4), flow.toList()) // two elements in the middle got conflated
36+
assertEquals(listOf(4), flow.toList())
3837
}
3938

4039
@Test
@@ -164,14 +163,13 @@ class ChannelFlowTest : TestBase() {
164163
val flow = channelFlow {
165164
// ~ callback-based API, no children
166165
outerScope.launch(Job()) {
167-
expect(2)
168166
send(1)
169167
expectUnreached()
170168
}
171169
expect(1)
172170
}
173171
assertEquals(emptyList(), flow.toList())
174-
finish(3)
172+
finish(2)
175173
}
176174

177175
@Test
@@ -207,6 +205,7 @@ class ChannelFlowTest : TestBase() {
207205

208206
@Test
209207
fun testDoesntDispatchUnnecessarilyWhenCollected() = runTest {
208+
// Test that `.collectLatest` consistently subscribes to the flow when invoked on the same dispatcher as upstream.
210209
expect(1)
211210
val myFlow = flow<Int> {
212211
expect(3)

kotlinx-coroutines-core/common/test/flow/channels/FlowCallbackTest.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
package kotlinx.coroutines.flow
44

5-
import kotlinx.coroutines.testing.*
65
import kotlinx.coroutines.*
76
import kotlinx.coroutines.channels.*
7+
import kotlinx.coroutines.testing.*
88
import kotlin.test.*
99

1010
class FlowCallbackTest : TestBase() {
@@ -14,24 +14,25 @@ class FlowCallbackTest : TestBase() {
1414
val flow = callbackFlow {
1515
// ~ callback-based API
1616
outerScope.launch(Job()) {
17-
expect(2)
1817
try {
18+
expect(4)
1919
send(1)
2020
expectUnreached()
2121
} catch (e: IllegalStateException) {
22-
expect(3)
22+
expect(5)
2323
assertTrue(e.message!!.contains("awaitClose"))
2424
}
25+
finish(6)
2526
}
2627
expect(1)
2728
}
2829
try {
2930
flow.collect()
3031
} catch (e: IllegalStateException) {
31-
expect(4)
32+
expect(2)
3233
assertTrue(e.message!!.contains("awaitClose"))
3334
}
34-
finish(5)
35+
expect(3)
3536
}
3637

3738
@Test

kotlinx-coroutines-core/common/test/flow/operators/BufferConflationTest.kt

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
package kotlinx.coroutines.flow
22

3-
import kotlinx.coroutines.testing.*
4-
import kotlinx.coroutines.*
53
import kotlinx.coroutines.channels.*
4+
import kotlinx.coroutines.testing.*
65
import kotlin.test.*
76

87
/**
98
* A _behavioral_ test for conflation options that can be configured by the [buffer] operator to test that it is
109
* implemented properly and that adjacent [buffer] calls are fused properly.
11-
*/
10+
*/
1211
class BufferConflationTest : TestBase() {
1312
private val n = 100 // number of elements to emit for test
1413

@@ -20,8 +19,8 @@ class BufferConflationTest : TestBase() {
2019
expect(1)
2120
// emit all and conflate, then collect first & last
2221
val expectedList = when (onBufferOverflow) {
23-
BufferOverflow.DROP_OLDEST -> listOf(0) + (n - capacity until n).toList() // first item & capacity last ones
24-
BufferOverflow.DROP_LATEST -> (0..capacity).toList() // first & capacity following ones
22+
BufferOverflow.DROP_OLDEST -> (n - capacity until n).toList() // first item & capacity last ones
23+
BufferOverflow.DROP_LATEST -> (0 until capacity).toList() // first & capacity following ones
2524
else -> error("cannot happen")
2625
}
2726
flow {
@@ -38,6 +37,26 @@ class BufferConflationTest : TestBase() {
3837
finish(n + 2 + expectedList.size)
3938
}
4039

40+
@Test
41+
fun testConflateExplicit() = runTest {
42+
val n = 3
43+
expect(1)
44+
flow {
45+
expect(2)
46+
emit(0)
47+
expect(3)
48+
emit(1)
49+
expect(4)
50+
emit(2)
51+
}
52+
.conflate()
53+
.collect { value ->
54+
assertEquals(2, value)
55+
expect(n + 2)
56+
}
57+
finish(n + 2 + 1)
58+
}
59+
4160
@Test
4261
fun testConflate() =
4362
checkConflate(1) {
@@ -138,6 +157,6 @@ class BufferConflationTest : TestBase() {
138157
fun testBuffer3DropOldestOverrideBuffer8DropLatest() =
139158
checkConflate(3, BufferOverflow.DROP_OLDEST) {
140159
buffer(8, onBufferOverflow = BufferOverflow.DROP_LATEST)
141-
.buffer(3, BufferOverflow.DROP_OLDEST)
160+
.buffer(3, BufferOverflow.DROP_OLDEST)
142161
}
143162
}

0 commit comments

Comments
 (0)