@@ -279,12 +279,57 @@ class FatalIssueReporterProcessorTest {
279
279
assertThat(report.errors(0 )).isNotNull
280
280
report.errors(0 )?.let { error ->
281
281
assertThat(error.name).isEqualTo(expectedMessage)
282
- val frame = error.stackTrace(0 )
283
- assertThat(frame).isNotNull
284
- assertThat(frame!! .sourceFile!! .line).isEqualTo(106 )
285
- assertThat(frame.sourceFile!! .path).isEqualTo(" FatalIssueGenerator.kt" )
286
- assertThat(frame.symbolName).isEqualTo(" startProcessing" )
287
- assertThat(frame.className).isEqualTo(" io.bitdrift.capture.FatalIssueGenerator" )
282
+ val firstFrame = error.stackTrace(0 )
283
+ assertThat(firstFrame).isNotNull
284
+ firstFrame?.let { frame ->
285
+ assertThat(frame.sourceFile!! .line).isEqualTo(106 )
286
+ assertThat(frame.sourceFile!! .path).isEqualTo(" FatalIssueGenerator.kt" )
287
+ assertThat(frame.symbolName).isEqualTo(" startProcessing" )
288
+ assertThat(frame.className).isEqualTo(" io.bitdrift.capture.FatalIssueGenerator" )
289
+ }
290
+
291
+ val secondFrame = error.stackTrace(1 )
292
+ assertThat(secondFrame).isNotNull
293
+ secondFrame?.let { frame ->
294
+ assertThat(frame.sourceFile!! .line).isEqualTo(35 )
295
+ assertThat(frame.sourceFile!! .path).isEqualTo(" FatalIssueGenerator.kt" )
296
+ assertThat(frame.symbolName).isEqualTo(" forceDeadlockAnr\$ " )
297
+ assertThat(frame.className).isEqualTo(" io.bitdrift.capture.FatalIssueGenerator" )
298
+ }
299
+
300
+ val unavailableFrame = error.stackTrace(2 )
301
+ assertThat(unavailableFrame).isNotNull
302
+ unavailableFrame?.let { frame ->
303
+ assertThat(frame.sourceFile!! .line).isEqualTo(0 )
304
+ assertThat(frame.sourceFile!! .path).isEqualTo(" unavailable" )
305
+ assertThat(frame.symbolName).isNull()
306
+ assertThat(frame.className).isEqualTo(" io.bitdrift.capture.FatalIssueGenerator" )
307
+ }
308
+
309
+ val noMethodNoSourceFrame = error.stackTrace(3 )
310
+ assertThat(noMethodNoSourceFrame).isNotNull
311
+ noMethodNoSourceFrame?.let { frame ->
312
+ assertThat(frame.sourceFile).isNull()
313
+ assertThat(frame.symbolName).isNull()
314
+ assertThat(frame.className).isEqualTo(" io.bitdrift.capture.FatalIssueGenerator" )
315
+ }
316
+
317
+ val unsourcedFrame = error.stackTrace(4 )
318
+ assertThat(unsourcedFrame).isNotNull
319
+ unsourcedFrame?.let { frame ->
320
+ assertThat(frame.sourceFile).isNull()
321
+ assertThat(frame.symbolName).isEqualTo(" callOnMainThread" )
322
+ assertThat(frame.className).isEqualTo(" io.bitdrift.capture.FatalIssueGenerator" )
323
+ }
324
+
325
+ val nativeFrame = error.stackTrace(12 )
326
+ assertThat(nativeFrame).isNotNull
327
+ nativeFrame?.let { frame ->
328
+ assertThat(frame.sourceFile!! .line).isEqualTo(0 )
329
+ assertThat(frame.sourceFile!! .path).isEqualTo(" Native method" )
330
+ assertThat(frame.symbolName).isEqualTo(" invoke" )
331
+ assertThat(frame.className).isEqualTo(" java.lang.reflect.Method" )
332
+ }
288
333
}
289
334
}
290
335
0 commit comments