From d65c072d45457a558b43dfa1c13afef489abcdb3 Mon Sep 17 00:00:00 2001 From: Bogdan Belogurov Date: Wed, 29 Jun 2022 23:27:30 +0300 Subject: [PATCH 1/3] Add disablePerformanceAntipatternChecker to LaunchAction --- Sources/XcodeProj/Scheme/XCScheme+LaunchAction.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Sources/XcodeProj/Scheme/XCScheme+LaunchAction.swift b/Sources/XcodeProj/Scheme/XCScheme+LaunchAction.swift index 28f794df5..10e2ca44a 100644 --- a/Sources/XcodeProj/Scheme/XCScheme+LaunchAction.swift +++ b/Sources/XcodeProj/Scheme/XCScheme+LaunchAction.swift @@ -57,6 +57,7 @@ extension XCScheme { public var enableUBSanitizer: Bool public var stopOnEveryUBSanitizerIssue: Bool public var disableMainThreadChecker: Bool + public var disablePerformanceAntipatternChecker: Bool public var stopOnEveryMainThreadCheckerIssue: Bool public var additionalOptions: [AdditionalOption] public var commandlineArguments: CommandLineArguments? @@ -96,6 +97,7 @@ extension XCScheme { enableUBSanitizer: Bool = false, stopOnEveryUBSanitizerIssue: Bool = false, disableMainThreadChecker: Bool = false, + disablePerformanceAntipatternChecker: Bool = false, stopOnEveryMainThreadCheckerIssue: Bool = false, additionalOptions: [AdditionalOption] = [], commandlineArguments: CommandLineArguments? = nil, @@ -129,6 +131,7 @@ extension XCScheme { self.enableUBSanitizer = enableUBSanitizer self.stopOnEveryUBSanitizerIssue = stopOnEveryUBSanitizerIssue self.disableMainThreadChecker = disableMainThreadChecker + self.disablePerformanceAntipatternChecker = disablePerformanceAntipatternChecker self.stopOnEveryMainThreadCheckerIssue = stopOnEveryMainThreadCheckerIssue self.additionalOptions = additionalOptions self.commandlineArguments = commandlineArguments @@ -191,6 +194,7 @@ extension XCScheme { enableUBSanitizer = element.attributes["enableUBSanitizer"] == "YES" stopOnEveryUBSanitizerIssue = element.attributes["stopOnEveryUBSanitizerIssue"] == "YES" disableMainThreadChecker = element.attributes["disableMainThreadChecker"] == "YES" + disablePerformanceAntipatternChecker = element.attributes["disablePerformanceAntipatternChecker"] == "YES" stopOnEveryMainThreadCheckerIssue = element.attributes["stopOnEveryMainThreadCheckerIssue"] == "YES" additionalOptions = try element["AdditionalOptions"]["AdditionalOption"] @@ -267,6 +271,9 @@ extension XCScheme { if disableMainThreadChecker { attributes["disableMainThreadChecker"] = disableMainThreadChecker.xmlString } + if disablePerformanceAntipatternChecker { + attributes["disablePerformanceAntipatternChecker"] = disablePerformanceAntipatternChecker.xmlString + } if stopOnEveryMainThreadCheckerIssue { attributes["stopOnEveryMainThreadCheckerIssue"] = stopOnEveryMainThreadCheckerIssue.xmlString } @@ -365,6 +372,7 @@ extension XCScheme { enableUBSanitizer == rhs.enableUBSanitizer && stopOnEveryUBSanitizerIssue == rhs.stopOnEveryUBSanitizerIssue && disableMainThreadChecker == rhs.disableMainThreadChecker && + disablePerformanceAntipatternChecker == rhs.disablePerformanceAntipatternChecker && stopOnEveryMainThreadCheckerIssue == rhs.stopOnEveryMainThreadCheckerIssue && additionalOptions == rhs.additionalOptions && commandlineArguments == rhs.commandlineArguments && From 362b3faa7b6c0dc527735d8bbfb72675e1ef24d7 Mon Sep 17 00:00:00 2001 From: Bogdan Belogurov Date: Wed, 29 Jun 2022 23:33:14 +0300 Subject: [PATCH 2/3] Cover with tests disablePerformanceAntipatternChecker action --- Tests/XcodeProjTests/Scheme/XCSchemeTests.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Tests/XcodeProjTests/Scheme/XCSchemeTests.swift b/Tests/XcodeProjTests/Scheme/XCSchemeTests.swift index 98fcc5190..f3eb64681 100644 --- a/Tests/XcodeProjTests/Scheme/XCSchemeTests.swift +++ b/Tests/XcodeProjTests/Scheme/XCSchemeTests.swift @@ -460,6 +460,7 @@ final class XCSchemeIntegrationTests: XCTestCase { XCTAssertEqual(scheme.launchAction?.enableUBSanitizer, false) XCTAssertEqual(scheme.launchAction?.stopOnEveryUBSanitizerIssue, false) XCTAssertEqual(scheme.launchAction?.disableMainThreadChecker, false) + XCTAssertEqual(scheme.launchAction?.disablePerformanceAntipatternChecker, false) XCTAssertEqual(scheme.launchAction?.stopOnEveryMainThreadCheckerIssue, false) XCTAssertEqual(scheme.launchAction?.additionalOptions.isEmpty, true) @@ -544,6 +545,7 @@ final class XCSchemeIntegrationTests: XCTestCase { XCTAssertEqual(scheme.launchAction?.enableUBSanitizer, false) XCTAssertEqual(scheme.launchAction?.stopOnEveryUBSanitizerIssue, false) XCTAssertEqual(scheme.launchAction?.disableMainThreadChecker, false) + XCTAssertEqual(scheme.launchAction?.disablePerformanceAntipatternChecker, false) XCTAssertEqual(scheme.launchAction?.stopOnEveryMainThreadCheckerIssue, false) XCTAssertEqual(scheme.launchAction?.additionalOptions.isEmpty, true) XCTAssertNil(scheme.launchAction?.storeKitConfigurationFileReference) @@ -636,6 +638,7 @@ final class XCSchemeIntegrationTests: XCTestCase { XCTAssertEqual(scheme.launchAction?.enableUBSanitizer, false) XCTAssertEqual(scheme.launchAction?.stopOnEveryUBSanitizerIssue, false) XCTAssertEqual(scheme.launchAction?.disableMainThreadChecker, false) + XCTAssertEqual(scheme.launchAction?.disablePerformanceAntipatternChecker, false) XCTAssertEqual(scheme.launchAction?.stopOnEveryMainThreadCheckerIssue, false) XCTAssertEqual(scheme.launchAction?.additionalOptions.isEmpty, true) XCTAssertNil(scheme.launchAction?.storeKitConfigurationFileReference) From 42f3367912464ea6785dcfe1c57f45de5494077f Mon Sep 17 00:00:00 2001 From: Bogdan Belogurov Date: Wed, 29 Jun 2022 23:34:35 +0300 Subject: [PATCH 3/3] Update CHANGELOG.md - Add entry about adding `disablePerformanceAntipatternChecker` action --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3ec3b4b1..22d25cbae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Next +### Added + +- Added `disablePerformanceAntipatternChecker` to `XCScheme` [#693](https://github.com/tuist/XcodeProj/pull/603) by [@Bogdan-Belogurov](https://github.com/Bogdan-Belogurov) + ## 8.7.1 ### Changed