@@ -41,7 +41,9 @@ import org.mockito.kotlin.any
4141import org.mockito.kotlin.eq
4242import org.mockito.kotlin.mock
4343import org.mockito.kotlin.never
44+ import org.mockito.kotlin.spy
4445import org.mockito.kotlin.verify
46+ import org.mockito.kotlin.whenever
4547import org.robolectric.annotation.Config
4648import org.robolectric.shadow.api.Shadow
4749import org.robolectric.shadows.ShadowActivityManager
@@ -101,7 +103,41 @@ class SentryAndroidTest {
101103 if (importance != null ) {
102104 builder.setImportance(importance)
103105 }
104- shadowActivityManager.addApplicationExitInfo(builder.build())
106+ val exitInfo = spy(builder.build()) {
107+ whenever(mock.traceInputStream).thenReturn(
108+ """
109+ "main" prio=5 tid=1 Blocked
110+ | group="main" sCount=1 ucsCount=0 flags=1 obj=0x72a985e0 self=0xb400007cabc57380
111+ | sysTid=28941 nice=-10 cgrp=top-app sched=0/0 handle=0x7deceb74f8
112+ | state=S schedstat=( 324804784 183300334 997 ) utm=23 stm=8 core=3 HZ=100
113+ | stack=0x7ff93a9000-0x7ff93ab000 stackSize=8188KB
114+ | held mutexes=
115+ at io.sentry.samples.android.MainActivity${' $' } 2.run(MainActivity.java:177)
116+ - waiting to lock <0x0d3a2f0a> (a java.lang.Object) held by thread 5
117+ at android.os.Handler.handleCallback(Handler.java:942)
118+ at android.os.Handler.dispatchMessage(Handler.java:99)
119+ at android.os.Looper.loopOnce(Looper.java:201)
120+ at android.os.Looper.loop(Looper.java:288)
121+ at android.app.ActivityThread.main(ActivityThread.java:7872)
122+ at java.lang.reflect.Method.invoke(Native method)
123+ at com.android.internal.os.RuntimeInit${' $' } MethodAndArgsCaller.run(RuntimeInit.java:548)
124+ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
125+
126+ "perfetto_hprof_listener" prio=10 tid=7 Native (still starting up)
127+ | group="" sCount=1 ucsCount=0 flags=1 obj=0x0 self=0xb400007cabc5ab20
128+ | sysTid=28959 nice=-20 cgrp=top-app sched=0/0 handle=0x7b2021bcb0
129+ | state=S schedstat=( 72750 1679167 1 ) utm=0 stm=0 core=3 HZ=100
130+ | stack=0x7b20124000-0x7b20126000 stackSize=991KB
131+ | held mutexes=
132+ native: #00 pc 00000000000a20f4 /apex/com.android.runtime/lib64/bionic/libc.so (read+4) (BuildId: 01331f74b0bb2cb958bdc15282b8ec7b)
133+ native: #01 pc 000000000001d840 /apex/com.android.art/lib64/libperfetto_hprof.so (void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, ArtPlugin_Initialize::${' $' } _34> >(void*)+260) (BuildId: 525cc92a7dc49130157aeb74f6870364)
134+ native: #02 pc 00000000000b63b0 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: 01331f74b0bb2cb958bdc15282b8ec7b)
135+ native: #03 pc 00000000000530b8 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 01331f74b0bb2cb958bdc15282b8ec7b)
136+ (no managed stack frames)
137+ """ .trimIndent().byteInputStream()
138+ )
139+ }
140+ shadowActivityManager.addApplicationExitInfo(exitInfo)
105141 }
106142 }
107143
0 commit comments