@@ -6,50 +6,44 @@ import org.junit.Test
66class AnrStackTraceConverterTest {
77 @Test
88 fun testConvertSimpleStackTrace () {
9- // Create a simple stack trace
109 val elements =
1110 arrayOf(
1211 StackTraceElement (" com.example.MyClass" , " method1" , " MyClass.java" , 42 ),
1312 StackTraceElement (" com.example.AnotherClass" , " method2" , " AnotherClass.java" , 100 ),
1413 )
1514
1615 val anrStackTrace = AnrStackTrace (1000 , elements)
17- val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList < AnrStackTrace ?> ()
16+ val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList ()
1817 anrStackTraces.add(anrStackTrace)
1918
20- // Convert to profile
2119 val profile = StackTraceConverter .convert(AnrProfile (anrStackTraces))
2220
23- // Verify profile structure
2421 Assert .assertNotNull(profile)
25- Assert .assertEquals(1 , profile.getSamples().size.toLong())
26- Assert .assertEquals(2 , profile.getFrames().size.toLong())
27- Assert .assertEquals(1 , profile.getStacks().size.toLong())
28-
29- // Verify frames
30- val frame0 = profile.getFrames().get(0 )
31- Assert .assertEquals(" MyClass.java" , frame0.getFilename())
32- Assert .assertEquals(" method1" , frame0.getFunction())
33- Assert .assertEquals(" com.example.MyClass" , frame0.getModule())
34- Assert .assertEquals(42 , frame0.getLineno())
35-
36- val frame1 = profile.getFrames().get(1 )
37- Assert .assertEquals(" AnotherClass.java" , frame1.getFilename())
38- Assert .assertEquals(" method2" , frame1.getFunction())
39- Assert .assertEquals(" com.example.AnotherClass" , frame1.getModule())
40- Assert .assertEquals(100 , frame1.getLineno())
41-
42- // Verify stack
43- val stack = profile.getStacks().get(0 )
44- Assert .assertEquals(2 , stack.size.toLong())
45- Assert .assertEquals(0 , (stack.get(0 ) as Int ).toLong())
46- Assert .assertEquals(1 , (stack.get(1 ) as Int ).toLong())
47-
48- // Verify sample
49- val sample = profile.getSamples().get(0 )
50- Assert .assertEquals(0 , sample.getStackId().toLong())
51- Assert .assertEquals(" 0" , sample.getThreadId())
52- Assert .assertEquals(1.0 , sample.getTimestamp(), 0.001 ) // 1000ms = 1s
22+ Assert .assertEquals(1 , profile.samples.size)
23+ Assert .assertEquals(2 , profile.frames.size)
24+ Assert .assertEquals(1 , profile.stacks.size)
25+
26+ val frame0 = profile.frames[0 ]
27+ Assert .assertEquals(" MyClass.java" , frame0.filename)
28+ Assert .assertEquals(" method1" , frame0.function)
29+ Assert .assertEquals(" com.example.MyClass" , frame0.module)
30+ Assert .assertEquals(42 , frame0.lineno)
31+
32+ val frame1 = profile.frames[1 ]
33+ Assert .assertEquals(" AnotherClass.java" , frame1.filename)
34+ Assert .assertEquals(" method2" , frame1.function)
35+ Assert .assertEquals(" com.example.AnotherClass" , frame1.module)
36+ Assert .assertEquals(100 , frame1.lineno)
37+
38+ val stack = profile.stacks[0 ]
39+ Assert .assertEquals(2 , stack.size)
40+ Assert .assertEquals(0 , (stack[0 ] as Int ))
41+ Assert .assertEquals(1 , (stack[1 ] as Int ))
42+
43+ val sample = profile.samples[0 ]
44+ Assert .assertEquals(0 , sample.stackId)
45+ Assert .assertEquals(" 0" , sample.threadId)
46+ Assert .assertEquals(1.0 , sample.timestamp, 0.001 ) // 1000ms = 1s
5347 }
5448
5549 @Test
@@ -67,27 +61,27 @@ class AnrStackTraceConverterTest {
6761 StackTraceElement (" com.example.ThirdClass" , " method3" , " ThirdClass.java" , 200 ),
6862 )
6963
70- val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList < AnrStackTrace ?> ()
64+ val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList ()
7165 anrStackTraces.add(AnrStackTrace (1000 , elements1))
7266 anrStackTraces.add(AnrStackTrace (2000 , elements2))
7367
7468 // Convert to profile
7569 val profile = StackTraceConverter .convert(AnrProfile (anrStackTraces))
7670
7771 // Should have 3 frames total (dedup removes duplicate)
78- Assert .assertEquals(3 , profile.getFrames() .size.toLong() )
72+ Assert .assertEquals(3 , profile.frames .size)
7973
8074 // First sample uses stack [0, 1]
81- val stack1 = profile.getStacks().get( 0 )
82- Assert .assertEquals(2 , stack1.size.toLong() )
83- Assert .assertEquals(0 , (stack1.get( 0 ) as Int ).toLong( ))
84- Assert .assertEquals(1 , (stack1.get( 1 ) as Int ).toLong( ))
75+ val stack1 = profile.stacks[ 0 ]
76+ Assert .assertEquals(2 , stack1.size)
77+ Assert .assertEquals(0 , (stack1[ 0 ] as Int ))
78+ Assert .assertEquals(1 , (stack1[ 1 ] as Int ))
8579
8680 // Second sample uses stack [0, 2] (frame 0 reused)
87- val stack2 = profile.getStacks().get( 1 )
88- Assert .assertEquals(2 , stack2.size.toLong() )
89- Assert .assertEquals(0 , (stack2.get( 0 ) as Int ).toLong( ))
90- Assert .assertEquals(2 , (stack2.get( 1 ) as Int ).toLong( ))
81+ val stack2 = profile.stacks[ 1 ]
82+ Assert .assertEquals(2 , stack2.size)
83+ Assert .assertEquals(0 , (stack2[ 0 ] as Int ))
84+ Assert .assertEquals(2 , (stack2[ 1 ] as Int ))
9185 }
9286
9387 @Test
@@ -99,111 +93,105 @@ class AnrStackTraceConverterTest {
9993 StackTraceElement (" com.example.AnotherClass" , " method2" , " AnotherClass.java" , 100 ),
10094 )
10195
102- val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList < AnrStackTrace ?> ()
96+ val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList ()
10397 anrStackTraces.add(AnrStackTrace (1000 , elements))
10498 anrStackTraces.add(AnrStackTrace (2000 , elements.clone()))
10599
106- // Convert to profile
107100 val profile = StackTraceConverter .convert(AnrProfile (anrStackTraces))
108101
109102 // Should have 2 frames and 1 stack (dedup stack)
110- Assert .assertEquals(2 , profile.getFrames() .size.toLong() )
111- Assert .assertEquals(1 , profile.getStacks() .size.toLong() )
103+ Assert .assertEquals(2 , profile.frames .size)
104+ Assert .assertEquals(1 , profile.stacks .size)
112105
113106 // Both samples should reference the same stack
114- Assert .assertEquals(0 , profile.getSamples().get( 0 ).getStackId().toLong() )
115- Assert .assertEquals(0 , profile.getSamples().get( 1 ).getStackId().toLong() )
107+ Assert .assertEquals(0 , profile.samples[ 0 ].stackId )
108+ Assert .assertEquals(0 , profile.samples[ 1 ].stackId )
116109 }
117110
118111 @Test
119112 fun testTimestampConversion () {
120113 val elements = arrayOf(StackTraceElement (" com.example.MyClass" , " method1" , " MyClass.java" , 42 ))
121114
122- // Test various timestamps
123115 val timestampsMs = longArrayOf(1000 , 1500 , 5000 )
124- val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList < AnrStackTrace ?> ()
116+ val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList ()
125117
126118 for (ts in timestampsMs) {
127119 anrStackTraces.add(AnrStackTrace (ts, elements))
128120 }
129121
130122 val profile = StackTraceConverter .convert(AnrProfile (anrStackTraces))
131123
132- // Verify timestamps are converted from ms to seconds
133- Assert .assertEquals(1.0 , profile.getSamples().get(0 ).getTimestamp(), 0.001 )
134- Assert .assertEquals(1.5 , profile.getSamples().get(1 ).getTimestamp(), 0.001 )
135- Assert .assertEquals(5.0 , profile.getSamples().get(2 ).getTimestamp(), 0.001 )
124+ Assert .assertEquals(1.0 , profile.samples[0 ].timestamp, 0.001 )
125+ Assert .assertEquals(1.5 , profile.samples[1 ].timestamp, 0.001 )
126+ Assert .assertEquals(5.0 , profile.samples[2 ].timestamp, 0.001 )
136127 }
137128
138129 @Test
139130 fun testNativeMethodHandling () {
140- // Create a native method stack trace
141131 val elements = arrayOf(StackTraceElement (" java.lang.System" , " doSomething" , null , - 2 ))
142132
143- val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList < AnrStackTrace ?> ()
133+ val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList ()
144134 anrStackTraces.add(AnrStackTrace (1000 , elements))
145135
146136 val profile = StackTraceConverter .convert(AnrProfile (anrStackTraces))
147137
148- val frame = profile.getFrames().get( 0 )
138+ val frame = profile.frames[ 0 ]
149139 Assert .assertTrue(frame.isNative()!! )
150140 }
151141
152142 @Test
153143 fun testThreadMetadata () {
154144 val elements = arrayOf(StackTraceElement (" com.example.MyClass" , " method1" , " MyClass.java" , 42 ))
155145
156- val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList < AnrStackTrace ?> ()
146+ val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList ()
157147 anrStackTraces.add(AnrStackTrace (1000 , elements))
158148
159149 val profile = StackTraceConverter .convert(AnrProfile (anrStackTraces))
160150
161- // Verify thread metadata
162- val threadMetadata = profile.getThreadMetadata().get(" 0" )
151+ val threadMetadata = profile.threadMetadata[" 0" ]
163152 Assert .assertNotNull(threadMetadata)
164- Assert .assertEquals(" main" , threadMetadata!! .getName() )
165- Assert .assertEquals(Thread .NORM_PRIORITY .toLong() , threadMetadata.getPriority().toLong() )
153+ Assert .assertEquals(" main" , threadMetadata!! .name )
154+ Assert .assertEquals(Thread .NORM_PRIORITY , threadMetadata.priority )
166155 }
167156
168157 @Test
169158 fun testEmptyStackTraceList () {
170- val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList < AnrStackTrace ?> ()
159+ val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList ()
171160
172161 val profile = StackTraceConverter .convert(AnrProfile (anrStackTraces))
173162
174- // Should return empty profile with thread metadata
175163 Assert .assertNotNull(profile)
176- Assert .assertEquals(0 , profile.getSamples() .size.toLong() )
177- Assert .assertEquals(0 , profile.getFrames() .size.toLong() )
178- Assert .assertEquals(0 , profile.getStacks() .size.toLong() )
179- Assert .assertTrue(profile.getThreadMetadata() .containsKey(" 0" ))
164+ Assert .assertEquals(0 , profile.samples .size)
165+ Assert .assertEquals(0 , profile.frames .size)
166+ Assert .assertEquals(0 , profile.stacks .size)
167+ Assert .assertTrue(profile.threadMetadata .containsKey(" 0" ))
180168 }
181169
182170 @Test
183171 fun testSampleProperties () {
184172 val elements = arrayOf(StackTraceElement (" com.example.MyClass" , " method1" , " MyClass.java" , 42 ))
185173
186- val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList < AnrStackTrace ?> ()
174+ val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList ()
187175 anrStackTraces.add(AnrStackTrace (12345 , elements))
188176
189177 val profile = StackTraceConverter .convert(AnrProfile (anrStackTraces))
190178
191- val sample = profile.getSamples().get( 0 )
192- Assert .assertEquals(" 0" , sample.getThreadId() )
193- Assert .assertEquals(0 , sample.getStackId().toLong() )
194- Assert .assertEquals(12.345 , sample.getTimestamp() , 0.001 )
179+ val sample = profile.samples[ 0 ]
180+ Assert .assertEquals(" 0" , sample.threadId )
181+ Assert .assertEquals(0 , sample.stackId )
182+ Assert .assertEquals(12.345 , sample.timestamp , 0.001 )
195183 }
196184
197185 @Test
198186 fun testInAppFrameFlag () {
199187 val elements = arrayOf(StackTraceElement (" com.example.MyClass" , " method1" , " MyClass.java" , 42 ))
200188
201- val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList < AnrStackTrace ?> ()
189+ val anrStackTraces: MutableList <AnrStackTrace ?> = ArrayList ()
202190 anrStackTraces.add(AnrStackTrace (1000 , elements))
203191
204192 val profile = StackTraceConverter .convert(AnrProfile (anrStackTraces))
205193
206- val frame = profile.getFrames().get( 0 )
207- Assert .assertTrue (frame.isInApp()!! )
194+ val frame = profile.frames[ 0 ]
195+ Assert .assertNull (frame.isInApp())
208196 }
209197}
0 commit comments