Skip to content

Commit c33dfb3

Browse files
committed
Added extensive logging for flaky tests, fixed Transport test
1 parent 59ce582 commit c33dfb3

File tree

2 files changed

+44
-2
lines changed

2 files changed

+44
-2
lines changed

krpc/krpc-test/src/commonTest/kotlin/kotlinx/rpc/krpc/test/TransportTest.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,12 +258,18 @@ class TransportTest {
258258

259259
val server = serverOf(transports)
260260

261-
withContext(Dispatchers.Default) { delay(1000) }
261+
repeat(10) {
262+
// give way to requests
263+
yield()
264+
}
262265
val echoServices = server.registerServiceAndReturn<Echo, _> { EchoImpl() }
263266
assertEquals("foo", firstResult.await())
264267
assertEquals(1, echoServices.single().received.value)
265268

266-
withContext(Dispatchers.Default) { delay(1000) }
269+
repeat(10) {
270+
// give way to requests
271+
yield()
272+
}
267273
val secondServices = server.registerServiceAndReturn<Second, _> { SecondServer() }
268274
assertEquals("bar", secondResult.await())
269275
assertEquals(1, secondServices.single().received.value)

krpc/krpc-test/src/commonTest/kotlin/kotlinx/rpc/krpc/test/cancellation/CancellationTest.kt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,25 +127,33 @@ class CancellationTest {
127127
service.cancellationInOutgoingStream(
128128
stream = flow {
129129
emit(42)
130+
println("[testCancellationInClientStream] emit 42")
130131
emit(43)
132+
println("[testCancellationInClientStream] emit 43")
131133
},
132134
cancelled = flow {
133135
emit(1)
136+
println("[testCancellationInClientStream] emit 1")
134137
serverInstance().firstIncomingConsumed.await()
138+
println("[testCancellationInClientStream] firstIncomingConsumed")
135139
throw CancellationException("cancellationInClientStream")
136140
},
137141
)
138142
}
139143

140144
requestJob.join()
145+
println("[testCancellationInClientStream] Request job finished")
141146
serverInstance().consumedAll.await()
147+
println("[testCancellationInClientStream] Server consumed all")
142148

143149
assertFalse(requestJob.isCancelled, "Expected requestJob not to be cancelled")
144150
assertContentEquals(listOf(42, 43), serverInstance().consumedIncomingValues)
145151
}
152+
println("[testCancellationInClientStream] Scope finished")
146153

147154
checkAlive()
148155
stopAllAndJoin()
156+
println("[testCancellationInClientStream] All done")
149157

150158
assertEquals(1, serverInstance().cancellationsCounter.value, "Expected 1 request to be cancelled")
151159
}
@@ -154,19 +162,23 @@ class CancellationTest {
154162
@Test
155163
fun testCancelClient() = runCancellationTest {
156164
val firstRequestJob = launch {
165+
println("[testCancelClient] firstRequestJob started")
157166
service.longRequest()
158167
}
159168

160169
val secondService = client.withService<CancellationService>()
161170

162171
val secondRequestJob = launch {
172+
println("[testCancelClient] secondRequestJob started")
163173
secondService.longRequest()
164174
}
165175

166176
val clientFlowJob = launch {
167177
service.outgoingStream(flow {
168178
emit(0)
179+
println("[testCancelClient] emit 0")
169180
serverInstance().fence.await()
181+
println("[testCancelClient] fence awaited")
170182
emit(1)
171183
})
172184
}
@@ -181,18 +193,27 @@ class CancellationTest {
181193
}
182194
}
183195

196+
println("[testCancelClient] Requests sent")
184197
serverInstance().waitCounter.await(4)
198+
println("[testCancelClient] Requests reached")
185199
client.close()
186200
client.awaitCompletion()
201+
println("[testCancelClient] Client stopped")
187202
server.awaitCompletion()
203+
println("[testCancelClient] Server stopped")
188204
firstRequestJob.join()
205+
println("[testCancelClient] First request finished")
189206
secondRequestJob.join()
207+
println("[testCancelClient] Second request finished")
190208
clientFlowJob.join()
209+
println("[testCancelClient] Client flow finished")
191210

192211
serverInstance().fence.complete(Unit)
193212
serverFlowJob.join()
213+
println("[testCancelClient] Server flow finished")
194214

195215
serverInstance().cancellationsCounter.await(4)
216+
println("[testCancelClient] Server cancellations counted")
196217

197218
assertTrue(firstRequestJob.isCancelled, "Expected firstRequestJob to be cancelled")
198219
assertTrue(secondRequestJob.isCancelled, "Expected secondRequestJob to be cancelled")
@@ -203,26 +224,31 @@ class CancellationTest {
203224

204225
checkAlive(clientAlive = false, serverAlive = false)
205226
stopAllAndJoin()
227+
println("[testCancelClient] All done")
206228

207229
assertEquals(4, serverInstance().cancellationsCounter.value, "Expected 4 requests to be cancelled")
208230
}
209231

210232
@Test
211233
fun testCancelServer() = runCancellationTest {
212234
val firstRequestJob = launch {
235+
println("[testCancelServer] firstRequestJob started")
213236
service.longRequest()
214237
}
215238

216239
val secondService = client.withService<CancellationService>()
217240

218241
val secondRequestJob = launch {
242+
println("[testCancelServer] secondRequestJob started")
219243
secondService.longRequest()
220244
}
221245

222246
val clientFlowJob = launch {
223247
service.outgoingStream(flow {
224248
emit(0)
249+
println("[testCancelServer] emit 0")
225250
serverInstance().fence.await()
251+
println("[testCancelServer] fence awaited")
226252
emit(1)
227253
})
228254
}
@@ -237,18 +263,27 @@ class CancellationTest {
237263
}
238264
}
239265

266+
println("[testCancelServer] Requests sent")
240267
serverInstance().waitCounter.await(4) // wait for requests to reach server
268+
println("[testCancelServer] Requests reached")
241269
server.close()
242270
server.awaitCompletion()
271+
println("[testCancelServer] Server stopped")
243272
client.awaitCompletion()
273+
println("[testCancelServer] Client stopped")
244274
firstRequestJob.join()
275+
println("[testCancelServer] First request finished")
245276
secondRequestJob.join()
277+
println("[testCancelServer] Second request finished")
246278
clientFlowJob.join()
279+
println("[testCancelServer] Client flow finished")
247280

248281
serverInstance().fence.complete(Unit)
249282
serverFlowJob.join()
283+
println("[testCancelServer] Server flow finished")
250284

251285
serverInstance().cancellationsCounter.await(4)
286+
println("[testCancelServer] Server cancellations counted")
252287

253288
assertTrue(firstRequestJob.isCancelled, "Expected firstRequestJob to be cancelled")
254289
assertTrue(secondRequestJob.isCancelled, "Expected secondRequestJob to be cancelled")
@@ -259,6 +294,7 @@ class CancellationTest {
259294

260295
checkAlive(clientAlive = false, serverAlive = false)
261296
stopAllAndJoin()
297+
println("[testCancelServer] All done")
262298

263299
assertEquals(4, serverInstance().cancellationsCounter.value, "Expected 4 requests to be cancelled")
264300
}

0 commit comments

Comments
 (0)