Skip to content

Commit

Permalink
Merge 9a26034 into bc27163
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinrenskers authored Dec 12, 2022
2 parents bc27163 + 9a26034 commit 712818b
Show file tree
Hide file tree
Showing 6 changed files with 6 additions and 41 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ This version adds a dependency on Swift.
- SentrySDK.close calls flush, which is a blocking call (#2453)
- Bump minimum Xcode version to 13 (#2483)
- Rename `SentryOptions.enableOutOfMemoryTracking` to `SentryOptions.enableWatchdogTerminationsTracking` (#2499)
- Remove the automatic `viewAppearing` span for UIViewController APM (#2511)

## 8.0.0-beta.4

Expand Down
2 changes: 1 addition & 1 deletion Samples/iOS-Swift/iOS-Swift/Tools/UIAssert.swift
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class UIAssert {
return
}

let steps = stepsToCheck ?? ["loadView", "viewDidLoad", "viewWillAppear", "viewDidAppear", "viewAppearing"]
let steps = stepsToCheck ?? ["loadView", "viewDidLoad", "viewWillAppear", "viewDidAppear"]
var missing = [String]()

steps.forEach { spanDescription in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ class TraceTestViewController: UIViewController {
dataTask.resume()
spanObserver = createTransactionObserver(forCallback: assertTransaction)
appendLifeCycleStep("viewWillAppear")
appendLifeCycleStep("viewAppearing")
}

override func viewDidAppear(_ animated: Bool) {
Expand Down
18 changes: 0 additions & 18 deletions Sources/Sentry/SentryUIViewControllerPerformanceTracker.m
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,6 @@ - (void)viewControllerViewWillAppear:(UIViewController *)controller
nameSource:kSentryTransactionNameSourceComponent
operation:SentrySpanOperationUILoad
inBlock:callbackToOrigin];

SentrySpanId *viewAppearingId =
[self.tracker startSpanWithName:@"viewAppearing"
nameSource:kSentryTransactionNameSourceComponent
operation:SentrySpanOperationUILoad];

objc_setAssociatedObject(controller,
&SENTRY_UI_PERFORMANCE_TRACKER_VIEWAPPEARING_SPAN_ID, viewAppearingId,
OBJC_ASSOCIATION_RETAIN_NONATOMIC);
};

[self.tracker activateSpan:spanId duringBlock:duringBlock];
Expand Down Expand Up @@ -189,15 +180,6 @@ - (void)finishTransaction:(UIViewController *)controller
}

void (^duringBlock)(void) = ^{
SentrySpanId *viewAppearingId = objc_getAssociatedObject(
controller, &SENTRY_UI_PERFORMANCE_TRACKER_VIEWAPPEARING_SPAN_ID);
if (viewAppearingId != nil) {
[self.tracker finishSpan:viewAppearingId withStatus:status];
objc_setAssociatedObject(controller,
&SENTRY_UI_PERFORMANCE_TRACKER_VIEWAPPEARING_SPAN_ID, nil,
OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

[self.tracker measureSpanWithDescription:lifecycleMethod
nameSource:kSentryTransactionNameSourceComponent
operation:SentrySpanOperationUILoad
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,6 @@ static NSString *const SENTRY_UI_PERFORMANCE_TRACKER_SPAN_ID
static NSString *const SENTRY_UI_PERFORMANCE_TRACKER_LAYOUTSUBVIEW_SPAN_ID
= @"SENTRY_UI_PERFORMANCE_TRACKER_LAYOUTSUBVIEW_SPAN_ID";

static NSString *const SENTRY_UI_PERFORMANCE_TRACKER_VIEWAPPEARING_SPAN_ID
= @"SENTRY_UI_PERFORMANCE_TRACKER_VIEWAPPEARING_SPAN_ID";

static NSString *const SENTRY_UI_PERFORMANCE_TRACKER_SPANS_IN_EXECUTION_SET
= @"SENTRY_UI_PERFORMANCE_TRACKER_SPANS_IN_EXECUTION_SET";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ class SentryUIViewControllerPerformanceTrackerTests: XCTestCase {
let viewWillLoad = "viewWillLoad"
let viewDidLoad = "viewDidLoad"
let viewWillAppear = "viewWillAppear"
let viewAppearing = "viewAppearing"
let viewDidAppear = "viewDidAppear"
let viewWillDisappear = "viewWillDisappear"
let viewWillLayoutSubviews = "viewWillLayoutSubviews"
Expand Down Expand Up @@ -168,15 +167,9 @@ class SentryUIViewControllerPerformanceTrackerTests: XCTestCase {
}
XCTAssertFalse(tracer.isFinished)

let viewAppearingSpan = (Dynamic(transactionSpan).children as [Span]?)!.last!
XCTAssertEqual(viewAppearingSpan.parentSpanId, tracer.spanId)
XCTAssertEqual(viewAppearingSpan.spanDescription, self.viewAppearing)

lifecycleEndingMethod(sut, viewController, tracker, callbackExpectation, tracer)

XCTAssertEqual(finishStatus.rawValue, viewAppearingSpan.status.rawValue)

XCTAssertEqual(Dynamic(transactionSpan).children.asArray!.count, 8)
XCTAssertEqual(Dynamic(transactionSpan).children.asArray!.count, 7)
XCTAssertTrue(tracer.isFinished)
XCTAssertEqual(finishStatus.rawValue, tracer.status.rawValue)

Expand Down Expand Up @@ -237,7 +230,6 @@ class SentryUIViewControllerPerformanceTrackerTests: XCTestCase {
}
try assertSpanDuration(span: lastSpan, expectedDuration: 1)

let viewAppearingSpan = try XCTUnwrap((Dynamic(transactionSpan).children as [Span]?)?.last)
advanceTime(bySeconds: 4)

sut.viewControllerViewDidAppear(viewController) {
Expand All @@ -246,8 +238,6 @@ class SentryUIViewControllerPerformanceTrackerTests: XCTestCase {
callbackExpectation.fulfill()
}
try assertSpanDuration(span: lastSpan, expectedDuration: 5)
try assertSpanDuration(span: viewAppearingSpan, expectedDuration: 4)

try assertSpanDuration(span: transactionSpan, expectedDuration: 22)

wait(for: [callbackExpectation], timeout: 0)
Expand Down Expand Up @@ -292,16 +282,13 @@ class SentryUIViewControllerPerformanceTrackerTests: XCTestCase {
}
try assertSpanDuration(span: lastSpan, expectedDuration: 1)

let viewAppearingSpan = try XCTUnwrap((Dynamic(transactionSpan).children as [Span]?)?.last)
advanceTime(bySeconds: 4)

sut.viewControllerViewDidAppear(viewController) {
lastSpan = self.getStack(tracker).last
self.advanceTime(bySeconds: 5)
}
try assertSpanDuration(span: lastSpan, expectedDuration: 5)
try assertSpanDuration(span: viewAppearingSpan, expectedDuration: 4)

try assertSpanDuration(span: transactionSpan, expectedDuration: 21)

assertTrackerIsEmpty(tracker)
Expand Down Expand Up @@ -339,7 +326,7 @@ class SentryUIViewControllerPerformanceTrackerTests: XCTestCase {
XCTAssertTrue(unwrappedTransactionSpan.isFinished)

let children = try XCTUnwrap(Dynamic(unwrappedTransactionSpan).children.asArray)
XCTAssertEqual(children.count, 5)
XCTAssertEqual(children.count, 4)

assertTrackerIsEmpty(tracker)
}
Expand Down Expand Up @@ -376,7 +363,6 @@ class SentryUIViewControllerPerformanceTrackerTests: XCTestCase {
func testSpanAssociatedConstants() {
XCTAssertEqual(SENTRY_UI_PERFORMANCE_TRACKER_SPAN_ID, "SENTRY_UI_PERFORMANCE_TRACKER_SPAN_ID")
XCTAssertEqual(SENTRY_UI_PERFORMANCE_TRACKER_LAYOUTSUBVIEW_SPAN_ID, "SENTRY_UI_PERFORMANCE_TRACKER_LAYOUTSUBVIEW_SPAN_ID")
XCTAssertEqual(SENTRY_UI_PERFORMANCE_TRACKER_VIEWAPPEARING_SPAN_ID, "SENTRY_UI_PERFORMANCE_TRACKER_VIEWAPPEARING_SPAN_ID")
}

func testOverloadCall() throws {
Expand Down Expand Up @@ -515,13 +501,13 @@ class SentryUIViewControllerPerformanceTrackerTests: XCTestCase {
}

firstSpanChildren = Dynamic(firstTransaction).children as [Span]?
XCTAssertEqual(firstSpanChildren?.count, 7)
XCTAssertEqual(firstSpanChildren?.count, 6)

sut.viewControllerViewDidAppear(secondController) {
}

secondSpanChildren = Dynamic(secondTransaction).children as [Span]?
XCTAssertEqual(secondSpanChildren?.count, 7)
XCTAssertEqual(secondSpanChildren?.count, 6)
}

private func assertSpanDuration(span: Span?, expectedDuration: TimeInterval) throws {
Expand Down

0 comments on commit 712818b

Please sign in to comment.