2
2
//
3
3
// This source file is part of the Swift open source project
4
4
//
5
- // Copyright (c) 2014-2018 Apple Inc. and the Swift project authors
5
+ // Copyright (c) 2014-2023 Apple Inc. and the Swift project authors
6
6
// Licensed under Apache License v2.0 with Runtime Library Exception
7
7
//
8
8
// See http://swift.org/LICENSE.txt for license information
@@ -14,84 +14,58 @@ import XCTest
14
14
15
15
import PackageGraph
16
16
@testable import PackageModel
17
+ import SPMTestSupport
17
18
18
- extension ResolvedTarget {
19
- fileprivate init (
20
- packageIdentity: String ,
21
- name: String ,
22
- deps: ResolvedTarget ... ,
23
- conditions: [ PackageCondition ] = [ ]
24
- ) {
25
- self . init (
26
- packageIdentity: . init( packageIdentity) ,
27
- underlying: SwiftTarget (
28
- name: name,
29
- type: . library,
30
- path: . root,
31
- sources: Sources ( paths: [ ] , root: " / " ) ,
32
- dependencies: [ ] ,
33
- packageAccess: false ,
34
- swiftVersion: . v4,
35
- usesUnsafeFlags: false
36
- ) ,
37
- dependencies: deps. map { . target( $0, conditions: conditions) } ,
38
- defaultLocalization: nil ,
39
- supportedPlatforms: [ ] ,
40
- platformVersionProvider: . init( implementation: . minimumDeploymentTargetDefault)
41
- )
42
- }
43
- }
44
-
45
- class TargetDependencyTests : XCTestCase {
19
+ final class ResolvedTargetDependencyTests : XCTestCase {
46
20
func test1( ) throws {
47
- let t1 = ResolvedTarget ( packageIdentity: " pkg " , name: " t1 " )
48
- let t2 = ResolvedTarget ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
49
- let t3 = ResolvedTarget ( packageIdentity: " pkg " , name: " t3 " , deps: t2)
21
+ let t1 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t1 " )
22
+ let t2 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
23
+ let t3 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t3 " , deps: t2)
50
24
51
25
XCTAssertEqual ( try t3. recursiveTargetDependencies ( ) , [ t2, t1] )
52
26
XCTAssertEqual ( try t2. recursiveTargetDependencies ( ) , [ t1] )
53
27
}
54
28
55
29
func test2( ) throws {
56
- let t1 = ResolvedTarget ( packageIdentity: " pkg " , name: " t1 " )
57
- let t2 = ResolvedTarget ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
58
- let t3 = ResolvedTarget ( packageIdentity: " pkg " , name: " t3 " , deps: t2, t1)
59
- let t4 = ResolvedTarget ( packageIdentity: " pkg " , name: " t4 " , deps: t2, t3, t1)
30
+ let t1 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t1 " )
31
+ let t2 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
32
+ let t3 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t3 " , deps: t2, t1)
33
+ let t4 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t4 " , deps: t2, t3, t1)
60
34
61
35
XCTAssertEqual ( try t4. recursiveTargetDependencies ( ) , [ t3, t2, t1] )
62
36
XCTAssertEqual ( try t3. recursiveTargetDependencies ( ) , [ t2, t1] )
63
37
XCTAssertEqual ( try t2. recursiveTargetDependencies ( ) , [ t1] )
64
38
}
65
39
66
40
func test3( ) throws {
67
- let t1 = ResolvedTarget ( packageIdentity: " pkg " , name: " t1 " )
68
- let t2 = ResolvedTarget ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
69
- let t3 = ResolvedTarget ( packageIdentity: " pkg " , name: " t3 " , deps: t2, t1)
70
- let t4 = ResolvedTarget ( packageIdentity: " pkg " , name: " t4 " , deps: t1, t2, t3)
41
+ let t1 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t1 " )
42
+ let t2 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
43
+ let t3 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t3 " , deps: t2, t1)
44
+ let t4 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t4 " , deps: t1, t2, t3)
71
45
72
46
XCTAssertEqual ( try t4. recursiveTargetDependencies ( ) , [ t3, t2, t1] )
73
47
XCTAssertEqual ( try t3. recursiveTargetDependencies ( ) , [ t2, t1] )
74
48
XCTAssertEqual ( try t2. recursiveTargetDependencies ( ) , [ t1] )
75
49
}
76
50
77
51
func test4( ) throws {
78
- let t1 = ResolvedTarget ( packageIdentity: " pkg " , name: " t1 " )
79
- let t2 = ResolvedTarget ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
80
- let t3 = ResolvedTarget ( packageIdentity: " pkg " , name: " t3 " , deps: t2)
81
- let t4 = ResolvedTarget ( packageIdentity: " pkg " , name: " t4 " , deps: t3)
52
+ let t1 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t1 " )
53
+ let t2 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
54
+ let t3 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t3 " , deps: t2)
55
+ let t4 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t4 " , deps: t3)
82
56
83
57
XCTAssertEqual ( try t4. recursiveTargetDependencies ( ) , [ t3, t2, t1] )
84
58
XCTAssertEqual ( try t3. recursiveTargetDependencies ( ) , [ t2, t1] )
85
59
XCTAssertEqual ( try t2. recursiveTargetDependencies ( ) , [ t1] )
86
60
}
87
61
88
62
func test5( ) throws {
89
- let t1 = ResolvedTarget ( packageIdentity: " pkg " , name: " t1 " )
90
- let t2 = ResolvedTarget ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
91
- let t3 = ResolvedTarget ( packageIdentity: " pkg " , name: " t3 " , deps: t2)
92
- let t4 = ResolvedTarget ( packageIdentity: " pkg " , name: " t4 " , deps: t3)
93
- let t5 = ResolvedTarget ( packageIdentity: " pkg " , name: " t5 " , deps: t2)
94
- let t6 = ResolvedTarget ( packageIdentity: " pkg " , name: " t6 " , deps: t5, t4)
63
+ let t1 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t1 " )
64
+ let t2 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
65
+ let t3 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t3 " , deps: t2)
66
+ let t4 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t4 " , deps: t3)
67
+ let t5 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t5 " , deps: t2)
68
+ let t6 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t6 " , deps: t5, t4)
95
69
96
70
// precise order is not important, but it is important that the following are true
97
71
let t6rd = try t6. recursiveTargetDependencies ( )
@@ -108,12 +82,12 @@ class TargetDependencyTests: XCTestCase {
108
82
}
109
83
110
84
func test6( ) throws {
111
- let t1 = ResolvedTarget ( packageIdentity: " pkg " , name: " t1 " )
112
- let t2 = ResolvedTarget ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
113
- let t3 = ResolvedTarget ( packageIdentity: " pkg " , name: " t3 " , deps: t2)
114
- let t4 = ResolvedTarget ( packageIdentity: " pkg " , name: " t4 " , deps: t3)
115
- let t5 = ResolvedTarget ( packageIdentity: " pkg " , name: " t5 " , deps: t2)
116
- let t6 = ResolvedTarget (
85
+ let t1 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t1 " )
86
+ let t2 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
87
+ let t3 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t3 " , deps: t2)
88
+ let t4 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t4 " , deps: t3)
89
+ let t5 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t5 " , deps: t2)
90
+ let t6 = ResolvedTarget . mock (
117
91
packageIdentity: " pkg " ,
118
92
name: " t6 " ,
119
93
deps: t4,
@@ -135,10 +109,10 @@ class TargetDependencyTests: XCTestCase {
135
109
}
136
110
137
111
func testConditions( ) throws {
138
- let t1 = ResolvedTarget ( packageIdentity: " pkg " , name: " t1 " )
139
- let t2 = ResolvedTarget ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
140
- let t2NoConditions = ResolvedTarget ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
141
- let t2WithConditions = ResolvedTarget (
112
+ let t1 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t1 " )
113
+ let t2 = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
114
+ let t2NoConditions = ResolvedTarget . mock ( packageIdentity: " pkg " , name: " t2 " , deps: t1)
115
+ let t2WithConditions = ResolvedTarget . mock (
142
116
packageIdentity: " pkg " ,
143
117
name: " t2 " ,
144
118
deps: t1,
0 commit comments