@@ -18,7 +18,7 @@ import SWBTestSupport
18
18
import Foundation
19
19
20
20
@Suite fileprivate struct DependencyScopingTests : CoreBasedTests {
21
- @Test ( . requireSDKs( . macOS ) )
21
+ @Test ( . requireSDKs( . host ) )
22
22
func buildRequestScopeBasics( ) async throws {
23
23
let core = try await getCore ( )
24
24
@@ -77,8 +77,8 @@ import Foundation
77
77
78
78
// Configure the targets and create a BuildRequest.
79
79
let buildParameters = BuildParameters ( configuration: " Debug " )
80
- let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T1 " ) ! )
81
- let t2 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T2 " ) ! )
80
+ let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T1 " ) ) )
81
+ let t2 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T2 " ) ) )
82
82
do {
83
83
let buildRequest = BuildRequest ( parameters: buildParameters, buildTargets: [ t1] , dependencyScope: . buildRequest, continueBuildingAfterErrors: true , useParallelTargets: false , useImplicitDependencies: true , useDryRun: false )
84
84
let buildRequestContext = BuildRequestContext ( workspaceContext: workspaceContext)
@@ -100,7 +100,78 @@ import Foundation
100
100
}
101
101
}
102
102
103
- @Test ( . requireSDKs( . macOS) )
103
+ @Test ( . requireSDKs( . host) )
104
+ func skipBuildSetting( ) async throws {
105
+ let core = try await getCore ( )
106
+
107
+ let workspace = try TestWorkspace (
108
+ " Workspace " ,
109
+ projects: [
110
+ TestProject (
111
+ " P1 " ,
112
+ groupTree: TestGroup (
113
+ " G1 " ,
114
+ children: [
115
+ TestFile ( " S1.c " ) ,
116
+ ]
117
+ ) ,
118
+ buildConfigurations: [
119
+ TestBuildConfiguration ( " Debug " , buildSettings: [ : ] ) ,
120
+ ] ,
121
+ targets: [
122
+ TestStandardTarget (
123
+ " T1 " ,
124
+ type: . framework,
125
+ buildConfigurations: [
126
+ TestBuildConfiguration ( " Debug " , buildSettings: [ " PRODUCT_NAME " : " $(TARGET_NAME) " , " __SKIP_BUILD " : " YES " ] ) ,
127
+ ] ,
128
+ buildPhases: [
129
+ TestSourcesBuildPhase ( [ " S1.c " ] )
130
+ ] ,
131
+ dependencies: [ " T2 " ]
132
+ ) ,
133
+ TestStandardTarget (
134
+ " T2 " ,
135
+ type: . framework,
136
+ buildConfigurations: [
137
+ TestBuildConfiguration ( " Debug " , buildSettings: [ " PRODUCT_NAME " : " $(TARGET_NAME) " ] ) ,
138
+ ] ,
139
+ buildPhases: [
140
+ TestSourcesBuildPhase ( [ " S1.c " ] )
141
+ ] ,
142
+ dependencies: [ " T3 " ]
143
+ ) ,
144
+ TestStandardTarget (
145
+ " T3 " ,
146
+ type: . framework,
147
+ buildConfigurations: [
148
+ TestBuildConfiguration ( " Debug " , buildSettings: [ " PRODUCT_NAME " : " $(TARGET_NAME) " ] ) ,
149
+ ] ,
150
+ buildPhases: [
151
+ TestSourcesBuildPhase ( [ " S1.c " ] )
152
+ ]
153
+ )
154
+ ]
155
+ ) ,
156
+ ]
157
+ ) . load ( core)
158
+ let workspaceContext = WorkspaceContext ( core: core, workspace: workspace, processExecutionCache: . sharedForTesting)
159
+
160
+ // Configure the targets and create a BuildRequest.
161
+ let buildParameters = BuildParameters ( configuration: " Debug " )
162
+ let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require( workspace. target ( named: " T1 " ) ) )
163
+ let t2 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require( workspace. target ( named: " T2 " ) ) )
164
+ do {
165
+ let buildRequest = BuildRequest ( parameters: buildParameters, buildTargets: [ t1] , dependencyScope: . workspace, continueBuildingAfterErrors: true , useParallelTargets: false , useImplicitDependencies: true , useDryRun: false )
166
+ let buildRequestContext = BuildRequestContext ( workspaceContext: workspaceContext)
167
+ let delegate = EmptyTargetDependencyResolverDelegate ( workspace: workspaceContext. workspace)
168
+ let buildGraph = await TargetGraphFactory ( workspaceContext: workspaceContext, buildRequest: buildRequest, buildRequestContext: buildRequestContext, delegate: delegate) . graph ( type: . dependency)
169
+ #expect( buildGraph. allTargets. map ( { $0. target. name } ) == [ " T3 " , " T2 " ] )
170
+ delegate. checkNoDiagnostics ( )
171
+ }
172
+ }
173
+
174
+ @Test ( . requireSDKs( . host) )
104
175
func buildRequestScopeRemovingInteriorTarget( ) async throws {
105
176
let core = try await getCore ( )
106
177
@@ -159,8 +230,8 @@ import Foundation
159
230
160
231
// Configure the targets and create a BuildRequest.
161
232
let buildParameters = BuildParameters ( configuration: " Debug " )
162
- let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T1 " ) ! )
163
- let t3 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T3 " ) ! )
233
+ let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T1 " ) ) )
234
+ let t3 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T3 " ) ) )
164
235
165
236
let buildRequest = BuildRequest ( parameters: buildParameters, buildTargets: [ t1, t3] , dependencyScope: . buildRequest, continueBuildingAfterErrors: true , useParallelTargets: false , useImplicitDependencies: true , useDryRun: false )
166
237
let buildRequestContext = BuildRequestContext ( workspaceContext: workspaceContext)
@@ -172,7 +243,7 @@ import Foundation
172
243
delegate. checkNoDiagnostics ( )
173
244
}
174
245
175
- @Test ( . requireSDKs( . macOS ) )
246
+ @Test ( . requireSDKs( . host ) )
176
247
func buildRequestScopeRemovingGroupOfInteriorTargets( ) async throws {
177
248
let core = try await getCore ( )
178
249
@@ -287,12 +358,12 @@ import Foundation
287
358
288
359
// Configure the targets and create a BuildRequest.
289
360
let buildParameters = BuildParameters ( configuration: " Debug " )
290
- let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T1 " ) ! )
291
- let t2 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T2 " ) ! )
292
- let t3 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T3 " ) ! )
293
- let t6 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T6 " ) ! )
294
- let t7 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T7 " ) ! )
295
- let t8 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T8 " ) ! )
361
+ let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T1 " ) ) )
362
+ let t2 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T2 " ) ) )
363
+ let t3 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T3 " ) ) )
364
+ let t6 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T6 " ) ) )
365
+ let t7 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T7 " ) ) )
366
+ let t8 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T8 " ) ) )
296
367
297
368
let buildRequest = BuildRequest ( parameters: buildParameters, buildTargets: [ t1, t2, t3, t6, t7, t8] , dependencyScope: . buildRequest, continueBuildingAfterErrors: true , useParallelTargets: false , useImplicitDependencies: true , useDryRun: false )
298
369
let buildRequestContext = BuildRequestContext ( workspaceContext: workspaceContext)
@@ -308,7 +379,7 @@ import Foundation
308
379
delegate. checkNoDiagnostics ( )
309
380
}
310
381
311
- @Test ( . requireSDKs( . macOS ) )
382
+ @Test ( . requireSDKs( . host ) )
312
383
func buildRequestScopeRemovingImplicitAndExplicitDependencies( ) async throws {
313
384
let core = try await getCore ( )
314
385
@@ -390,11 +461,11 @@ import Foundation
390
461
391
462
// Configure the targets and create a BuildRequest.
392
463
let buildParameters = BuildParameters ( configuration: " Debug " )
393
- let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T1 " ) ! )
394
- let t2 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T2 " ) ! )
395
- let t3 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T3 " ) ! )
396
- let t4 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T4 " ) ! )
397
- let t5 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T5 " ) ! )
464
+ let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T1 " ) ) )
465
+ let t2 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T2 " ) ) )
466
+ let t3 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T3 " ) ) )
467
+ let t4 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T4 " ) ) )
468
+ let t5 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T5 " ) ) )
398
469
399
470
do {
400
471
let buildRequest = BuildRequest ( parameters: buildParameters, buildTargets: [ t1, t2, t3] , dependencyScope: . buildRequest, continueBuildingAfterErrors: true , useParallelTargets: false , useImplicitDependencies: true , useDryRun: false )
@@ -500,8 +571,8 @@ import Foundation
500
571
501
572
// Configure the targets and create a BuildRequest.
502
573
let buildParameters = BuildParameters ( configuration: " Debug " , activeRunDestination: . anyiOSDevice)
503
- let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T1 " ) ! )
504
- let t3 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T3 " ) ! )
574
+ let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T1 " ) ) )
575
+ let t3 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T3 " ) ) )
505
576
506
577
let buildRequest = BuildRequest ( parameters: buildParameters, buildTargets: [ t1, t3] , dependencyScope: . buildRequest, continueBuildingAfterErrors: true , useParallelTargets: false , useImplicitDependencies: true , useDryRun: false )
507
578
let buildRequestContext = BuildRequestContext ( workspaceContext: workspaceContext)
@@ -518,7 +589,7 @@ import Foundation
518
589
delegate. checkNoDiagnostics ( )
519
590
}
520
591
521
- @Test ( . requireSDKs( . macOS ) )
592
+ @Test ( . requireSDKs( . host ) )
522
593
func buildRequestScopeWithPackages( ) async throws {
523
594
let core = try await getCore ( )
524
595
@@ -620,10 +691,10 @@ import Foundation
620
691
621
692
// Configure the targets and create a BuildRequest.
622
693
let buildParameters = BuildParameters ( configuration: " Debug " )
623
- let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " T1 " ) ! )
694
+ let t1 = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " T1 " ) ) )
624
695
625
- let somePackageProduct = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " SomePackageProduct " ) ! )
626
- let packageProductWithTransitiveRefs = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: workspace. target ( named: " PackageProductWithTransitiveRefs " ) ! )
696
+ let somePackageProduct = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " SomePackageProduct " ) ) )
697
+ let packageProductWithTransitiveRefs = BuildRequest . BuildTargetInfo ( parameters: buildParameters, target: try #require ( workspace. target ( named: " PackageProductWithTransitiveRefs " ) ) )
627
698
628
699
do {
629
700
let buildRequest = BuildRequest ( parameters: buildParameters, buildTargets: [ t1] , dependencyScope: . buildRequest, continueBuildingAfterErrors: true , useParallelTargets: false , useImplicitDependencies: true , useDryRun: false )
0 commit comments