@@ -187,7 +187,7 @@ public struct SwiftTestTool: SwiftCommand {
187
187
} else if !self . options. shouldRunInParallel {
188
188
let toolchain = try swiftTool. getTargetToolchain ( )
189
189
let testProducts = try buildTestsIfNeeded ( swiftTool: swiftTool)
190
- let buildParameters = try swiftTool. buildParametersForTest ( options: self . options)
190
+ let buildParameters = try swiftTool. buildParametersForTest ( options: self . options, sharedOptions : self . sharedOptions )
191
191
192
192
// Clean out the code coverage directory that may contain stale
193
193
// profraw files from a previous run of the code coverage tool.
@@ -216,6 +216,7 @@ public struct SwiftTestTool: SwiftCommand {
216
216
in: testProducts,
217
217
swiftTool: swiftTool,
218
218
enableCodeCoverage: options. enableCodeCoverage,
219
+ shouldSkipBuilding: sharedOptions. shouldSkipBuilding,
219
220
sanitizers: globalOptions. build. sanitizers
220
221
)
221
222
let tests = try testSuites
@@ -267,12 +268,13 @@ public struct SwiftTestTool: SwiftCommand {
267
268
in: testProducts,
268
269
swiftTool: swiftTool,
269
270
enableCodeCoverage: options. enableCodeCoverage,
271
+ shouldSkipBuilding: sharedOptions. shouldSkipBuilding,
270
272
sanitizers: globalOptions. build. sanitizers
271
273
)
272
274
let tests = try testSuites
273
275
. filteredTests ( specifier: options. testCaseSpecifier)
274
276
. skippedTests ( specifier: options. skippedTests ( fileSystem: swiftTool. fileSystem) )
275
- let buildParameters = try swiftTool. buildParametersForTest ( options: self . options)
277
+ let buildParameters = try swiftTool. buildParametersForTest ( options: self . options, sharedOptions : self . sharedOptions )
276
278
277
279
// If there were no matches, emit a warning and exit.
278
280
if tests. isEmpty {
@@ -338,7 +340,7 @@ public struct SwiftTestTool: SwiftCommand {
338
340
// Merge all the profraw files to produce a single profdata file.
339
341
try mergeCodeCovRawDataFiles ( swiftTool: swiftTool)
340
342
341
- let buildParameters = try swiftTool. buildParametersForTest ( options: self . options)
343
+ let buildParameters = try swiftTool. buildParametersForTest ( options: self . options, sharedOptions : self . sharedOptions )
342
344
for product in testProducts {
343
345
// Export the codecov data as JSON.
344
346
let jsonPath = buildParameters. codeCovAsJSONPath ( packageName: rootManifest. displayName)
@@ -352,7 +354,7 @@ public struct SwiftTestTool: SwiftCommand {
352
354
let llvmProf = try swiftTool. getTargetToolchain ( ) . getLLVMProf ( )
353
355
354
356
// Get the profraw files.
355
- let buildParameters = try swiftTool. buildParametersForTest ( options: self . options)
357
+ let buildParameters = try swiftTool. buildParametersForTest ( options: self . options, sharedOptions : self . sharedOptions )
356
358
let codeCovFiles = try swiftTool. fileSystem. getDirectoryContents ( buildParameters. codeCovPath)
357
359
358
360
// Construct arguments for invoking the llvm-prof tool.
@@ -372,7 +374,7 @@ public struct SwiftTestTool: SwiftCommand {
372
374
private func exportCodeCovAsJSON( to path: AbsolutePath , testBinary: AbsolutePath , swiftTool: SwiftTool ) throws {
373
375
// Export using the llvm-cov tool.
374
376
let llvmCov = try swiftTool. getTargetToolchain ( ) . getLLVMCov ( )
375
- let buildParameters = try swiftTool. buildParametersForTest ( options: self . options)
377
+ let buildParameters = try swiftTool. buildParametersForTest ( options: self . options, sharedOptions : self . sharedOptions )
376
378
let args = [
377
379
llvmCov. pathString,
378
380
" export " ,
@@ -392,13 +394,11 @@ public struct SwiftTestTool: SwiftCommand {
392
394
///
393
395
/// - Returns: The paths to the build test products.
394
396
private func buildTestsIfNeeded( swiftTool: SwiftTool ) throws -> [ BuiltTestProduct ] {
395
- let buildParameters = try swiftTool. buildParametersForTest ( options: self . options)
397
+ let buildParameters = try swiftTool. buildParametersForTest ( options: self . options, sharedOptions : self . sharedOptions )
396
398
let buildSystem = try swiftTool. createBuildSystem ( customBuildParameters: buildParameters)
397
399
398
- if !self . sharedOptions. shouldSkipBuilding {
399
- let subset = self . sharedOptions. testProduct. map ( BuildSubset . product) ?? . allIncludingTests
400
- try buildSystem. build ( subset: subset)
401
- }
400
+ let subset = self . sharedOptions. testProduct. map ( BuildSubset . product) ?? . allIncludingTests
401
+ try buildSystem. build ( subset: subset)
402
402
403
403
// Find the test product.
404
404
let testProducts = buildSystem. builtTestProducts
@@ -498,6 +498,7 @@ extension SwiftTestTool {
498
498
in: testProducts,
499
499
swiftTool: swiftTool,
500
500
enableCodeCoverage: false ,
501
+ shouldSkipBuilding: sharedOptions. shouldSkipBuilding,
501
502
sanitizers: globalOptions. build. sanitizers
502
503
)
503
504
@@ -508,13 +509,11 @@ extension SwiftTestTool {
508
509
}
509
510
510
511
private func buildTestsIfNeeded( swiftTool: SwiftTool ) throws -> [ BuiltTestProduct ] {
511
- let buildParameters = try swiftTool. buildParametersForTest ( enableCodeCoverage: false )
512
+ let buildParameters = try swiftTool. buildParametersForTest ( enableCodeCoverage: false , shouldSkipBuilding : sharedOptions . shouldSkipBuilding )
512
513
let buildSystem = try swiftTool. createBuildSystem ( customBuildParameters: buildParameters)
513
514
514
- if !self . sharedOptions. shouldSkipBuilding {
515
- let subset = self . sharedOptions. testProduct. map ( BuildSubset . product) ?? . allIncludingTests
516
- try buildSystem. build ( subset: subset)
517
- }
515
+ let subset = self . sharedOptions. testProduct. map ( BuildSubset . product) ?? . allIncludingTests
516
+ try buildSystem. build ( subset: subset)
518
517
519
518
// Find the test product.
520
519
let testProducts = buildSystem. builtTestProducts
@@ -1041,10 +1040,11 @@ final class XUnitGenerator {
1041
1040
}
1042
1041
1043
1042
extension SwiftTool {
1044
- func buildParametersForTest( options: TestToolOptions ) throws -> BuildParameters {
1043
+ func buildParametersForTest( options: TestToolOptions , sharedOptions : SharedOptions ) throws -> BuildParameters {
1045
1044
try self . buildParametersForTest (
1046
1045
enableCodeCoverage: options. enableCodeCoverage,
1047
- enableTestability: options. enableTestableImports
1046
+ enableTestability: options. enableTestableImports,
1047
+ shouldSkipBuilding: sharedOptions. shouldSkipBuilding
1048
1048
)
1049
1049
}
1050
1050
}
0 commit comments