@@ -15,13 +15,13 @@ final class SentryMXCallStackTreeTests: XCTestCase {
1515 let contents = try contentsOfResource ( " MetricKitCallstacks/per-thread " )
1616 let callStackTree = try SentryMXCallStackTree . from ( data: contents)
1717
18- XCTAssertEqual ( false , callStackTree. callStackPerThread)
18+ XCTAssertEqual ( true , callStackTree. callStackPerThread)
1919 XCTAssertEqual ( 2 , callStackTree. callStacks. count)
2020 try assertCallStackTree ( callStackTree)
2121
2222 let debugMeta = callStackTree. toDebugMeta ( )
2323 let image = try XCTUnwrap ( debugMeta. first { $0. debugID == " 9E8D8DE6-EEC1-3199-8720-9ED68EE3F967 " } )
24- XCTAssertEqual ( 414_732 , image. imageAddress)
24+ XCTAssertEqual ( sentry_formatHexAddressUInt64Swift ( 4_312_798_220 - 414_732 ) , image. imageAddress)
2525 }
2626
2727 func testDecodeCallStackTree_NotPerThread( ) throws {
@@ -37,6 +37,18 @@ final class SentryMXCallStackTreeTests: XCTestCase {
3737 XCTAssertEqual ( 2 , secondSamples. count)
3838 }
3939
40+ func testMostCommonStack( ) throws {
41+ let contents = try contentsOfResource ( " MetricKitCallstacks/per-thread-flamegraph " )
42+ let callStackTree = try SentryMXCallStackTree . from ( data: contents)
43+ let threads = callStackTree. sentryMXBacktrace ( inAppLogic: nil , handled: false )
44+ XCTAssertEqual ( 1 , threads. count)
45+ let frames = try XCTUnwrap ( threads [ 0 ] . stacktrace) . frames
46+ XCTAssertEqual ( 3 , frames. count)
47+ XCTAssertEqual ( " 0x0000000000000000 " , frames [ 0 ] . instructionAddress)
48+ XCTAssertEqual ( " 0x0000000000000001 " , frames [ 0 ] . instructionAddress)
49+ XCTAssertEqual ( " 0x0000000000000003 " , frames [ 0 ] . instructionAddress)
50+ }
51+
4052 func testDecodeCallStackTree_UnknownFieldsPayload( ) throws {
4153 let contents = try contentsOfResource ( " MetricKitCallstacks/tree-unknown-fields " )
4254 let callStackTree = try SentryMXCallStackTree . from ( data: contents)
@@ -69,30 +81,6 @@ final class SentryMXCallStackTreeTests: XCTestCase {
6981 XCTAssertEqual ( 1 , mxFrame. toSamples ( ) . count)
7082 XCTAssertEqual ( 1 , mxFrame. toSamples ( ) [ 0 ] . count)
7183 }
72-
73- // let firstFrame = try XCTUnwrap(callStack.callStackRootFrames.first)
74- // XCTAssertEqual(UUID(uuidString: "9E8D8DE6-EEC1-3199-8720-9ED68EE3F967"), firstFrame.binaryUUID)
75- // XCTAssertEqual(414_732, firstFrame.offsetIntoBinaryTextSegment)
76- // XCTAssertEqual(1, firstFrame.sampleCount)
77- // XCTAssertEqual("Sentry", firstFrame.binaryName)
78- // XCTAssertEqual(4_312_798_220, firstFrame.address)
79- // XCTAssertEqual(try XCTUnwrap(subFrameCount.first), firstFrame.subFrames?.count)
80- //
81- // let secondFrame = try XCTUnwrap(try XCTUnwrap(callStack.callStackRootFrames.element(at: 1)))
82- // XCTAssertEqual(UUID(uuidString: "CA12CAFA-91BA-3E1C-BE9C-E34DB96FE7DF"), secondFrame.binaryUUID)
83- // XCTAssertEqual(46_380, secondFrame.offsetIntoBinaryTextSegment)
84- // XCTAssertEqual(1, secondFrame.sampleCount)
85- // XCTAssertEqual("iOS-Swift", secondFrame.binaryName)
86- // XCTAssertEqual(4_310_988_076, secondFrame.address)
87- // XCTAssertEqual(try XCTUnwrap(subFrameCount.element(at: 1)), secondFrame.subFrames?.count)
88- //
89- // let thirdFrame = try XCTUnwrap(try XCTUnwrap(callStack.callStackRootFrames.element(at: 2)))
90- // XCTAssertEqual(UUID(uuidString: "CA12CAFA-91BA-3E1C-BE9C-E34DB96FE7DF"), thirdFrame.binaryUUID)
91- // XCTAssertEqual(46_370, thirdFrame.offsetIntoBinaryTextSegment)
92- // XCTAssertEqual(1, thirdFrame.sampleCount)
93- // XCTAssertEqual("iOS-Swift", thirdFrame.binaryName)
94- // XCTAssertEqual(4_310_988_026, thirdFrame.address)
95- // XCTAssertEqual(try XCTUnwrap(subFrameCount.element(at: 2)), thirdFrame.subFrames?.count ?? 0)
9684 }
9785}
9886
0 commit comments