Skip to content

Commit

Permalink
Add onlyGenerateCoverageForSpecifiedTargets parameter to TestAction
Browse files Browse the repository at this point in the history
  • Loading branch information
kateinoigakukun committed Sep 15, 2019
1 parent 440f10e commit b2fe08c
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
codeCoverageEnabled = "YES"
onlyGenerateCoverageForSpecifiedTargets = "YES"
shouldUseLaunchSchemeArgsEnv = "YES">
<PreActions>
<ExecutionAction
Expand Down
1 change: 1 addition & 0 deletions Sources/xcodeproj/Extensions/AEXML+XcodeFormat.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ let attributesOrder: [String: [String]] = [
"language",
"region",
"codeCoverageEnabled",
"onlyGenerateCoverageForSpecifiedTargets",
"shouldUseLaunchSchemeArgsEnv",
],
"LaunchAction": [
Expand Down
9 changes: 9 additions & 0 deletions Sources/xcodeproj/Scheme/XCScheme+TestAction.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ extension XCScheme {
public var selectedLauncherIdentifier: String
public var shouldUseLaunchSchemeArgsEnv: Bool
public var codeCoverageEnabled: Bool
public var onlyGenerateCoverageForSpecifiedTargets: Bool?
public var enableAddressSanitizer: Bool
public var enableASanStackUseAfterReturn: Bool
public var enableThreadSanitizer: Bool
Expand All @@ -47,6 +48,7 @@ extension XCScheme {
shouldUseLaunchSchemeArgsEnv: Bool = true,
codeCoverageEnabled: Bool = false,
codeCoverageTargets: [BuildableReference] = [],
onlyGenerateCoverageForSpecifiedTargets: Bool? = nil,
enableAddressSanitizer: Bool = false,
enableASanStackUseAfterReturn: Bool = false,
enableThreadSanitizer: Bool = false,
Expand All @@ -67,6 +69,7 @@ extension XCScheme {
self.shouldUseLaunchSchemeArgsEnv = shouldUseLaunchSchemeArgsEnv
self.codeCoverageEnabled = codeCoverageEnabled
self.codeCoverageTargets = codeCoverageTargets
self.onlyGenerateCoverageForSpecifiedTargets = onlyGenerateCoverageForSpecifiedTargets
self.enableAddressSanitizer = enableAddressSanitizer
self.enableASanStackUseAfterReturn = enableASanStackUseAfterReturn
self.enableThreadSanitizer = enableThreadSanitizer
Expand All @@ -88,6 +91,8 @@ extension XCScheme {
selectedLauncherIdentifier = element.attributes["selectedLauncherIdentifier"] ?? XCScheme.defaultLauncher
shouldUseLaunchSchemeArgsEnv = element.attributes["shouldUseLaunchSchemeArgsEnv"].map { $0 == "YES" } ?? true
codeCoverageEnabled = element.attributes["codeCoverageEnabled"] == "YES"
onlyGenerateCoverageForSpecifiedTargets = element.attributes["onlyGenerateCoverageForSpecifiedTargets"]
.map { $0 == "YES" }
enableAddressSanitizer = element.attributes["enableAddressSanitizer"] == "YES"
enableASanStackUseAfterReturn = element.attributes["enableASanStackUseAfterReturn"] == "YES"
enableThreadSanitizer = element.attributes["enableThreadSanitizer"] == "YES"
Expand Down Expand Up @@ -143,6 +148,9 @@ extension XCScheme {
if codeCoverageEnabled {
attributes["codeCoverageEnabled"] = codeCoverageEnabled.xmlString
}
if let onlyGenerateCoverageForSpecifiedTargets = onlyGenerateCoverageForSpecifiedTargets {
attributes["onlyGenerateCoverageForSpecifiedTargets"] = onlyGenerateCoverageForSpecifiedTargets.xmlString
}
if enableAddressSanitizer {
attributes["enableAddressSanitizer"] = enableAddressSanitizer.xmlString
}
Expand Down Expand Up @@ -205,6 +213,7 @@ extension XCScheme {
selectedLauncherIdentifier == rhs.selectedLauncherIdentifier &&
shouldUseLaunchSchemeArgsEnv == rhs.shouldUseLaunchSchemeArgsEnv &&
codeCoverageEnabled == rhs.codeCoverageEnabled &&
onlyGenerateCoverageForSpecifiedTargets == onlyGenerateCoverageForSpecifiedTargets &&
enableAddressSanitizer == rhs.enableAddressSanitizer &&
enableASanStackUseAfterReturn == rhs.enableASanStackUseAfterReturn &&
enableThreadSanitizer == rhs.enableThreadSanitizer &&
Expand Down
4 changes: 3 additions & 1 deletion Tests/xcodeprojTests/Scheme/XCSchemeTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@ final class XCSchemeIntegrationTests: XCTestCase {
XCTAssertEqual(scheme.testAction?.selectedDebuggerIdentifier, "Xcode.DebuggerFoundation.Debugger.LLDB")
XCTAssertEqual(scheme.testAction?.selectedDebuggerIdentifier, "Xcode.DebuggerFoundation.Debugger.LLDB")
XCTAssertEqual(scheme.testAction?.shouldUseLaunchSchemeArgsEnv, true)
XCTAssertEqual(scheme.testAction?.codeCoverageEnabled, false)
XCTAssertEqual(scheme.testAction?.codeCoverageEnabled, true)
XCTAssertEqual(scheme.testAction?.onlyGenerateCoverageForSpecifiedTargets, true)
XCTAssertEqual(scheme.testAction?.testables.first?.skipped, false)
XCTAssertEqual(scheme.testAction?.testables.first?.parallelizable, false)
XCTAssertEqual(scheme.testAction?.testables.first?.randomExecutionOrdering, false)
Expand Down Expand Up @@ -252,6 +253,7 @@ final class XCSchemeIntegrationTests: XCTestCase {
XCTAssertEqual(scheme.testAction?.selectedLauncherIdentifier, "Xcode.DebuggerFoundation.Launcher.LLDB")
XCTAssertTrue(scheme.testAction?.shouldUseLaunchSchemeArgsEnv == true)
XCTAssertTrue(scheme.testAction?.codeCoverageEnabled == false)
XCTAssertEqual(scheme.testAction?.onlyGenerateCoverageForSpecifiedTargets, nil)
XCTAssertNil(scheme.testAction?.macroExpansion)
XCTAssertEqual(scheme.testAction?.enableAddressSanitizer, false)
XCTAssertEqual(scheme.testAction?.enableASanStackUseAfterReturn, false)
Expand Down

0 comments on commit b2fe08c

Please sign in to comment.