22//
33// This source file is part of the Swift open source project
44//
5- // Copyright (c) 2014-2018 Apple Inc. and the Swift project authors
5+ // Copyright (c) 2014-2023 Apple Inc. and the Swift project authors
66// Licensed under Apache License v2.0 with Runtime Library Exception
77//
88// See http://swift.org/LICENSE.txt for license information
@@ -14,84 +14,58 @@ import XCTest
1414
1515import PackageGraph
1616@testable import PackageModel
17+ import SPMTestSupport
1718
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 {
4620 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)
5024
5125 XCTAssertEqual ( try t3. recursiveTargetDependencies ( ) , [ t2, t1] )
5226 XCTAssertEqual ( try t2. recursiveTargetDependencies ( ) , [ t1] )
5327 }
5428
5529 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)
6034
6135 XCTAssertEqual ( try t4. recursiveTargetDependencies ( ) , [ t3, t2, t1] )
6236 XCTAssertEqual ( try t3. recursiveTargetDependencies ( ) , [ t2, t1] )
6337 XCTAssertEqual ( try t2. recursiveTargetDependencies ( ) , [ t1] )
6438 }
6539
6640 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)
7145
7246 XCTAssertEqual ( try t4. recursiveTargetDependencies ( ) , [ t3, t2, t1] )
7347 XCTAssertEqual ( try t3. recursiveTargetDependencies ( ) , [ t2, t1] )
7448 XCTAssertEqual ( try t2. recursiveTargetDependencies ( ) , [ t1] )
7549 }
7650
7751 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)
8256
8357 XCTAssertEqual ( try t4. recursiveTargetDependencies ( ) , [ t3, t2, t1] )
8458 XCTAssertEqual ( try t3. recursiveTargetDependencies ( ) , [ t2, t1] )
8559 XCTAssertEqual ( try t2. recursiveTargetDependencies ( ) , [ t1] )
8660 }
8761
8862 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)
9569
9670 // precise order is not important, but it is important that the following are true
9771 let t6rd = try t6. recursiveTargetDependencies ( )
@@ -108,12 +82,12 @@ class TargetDependencyTests: XCTestCase {
10882 }
10983
11084 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 (
11791 packageIdentity: " pkg " ,
11892 name: " t6 " ,
11993 deps: t4,
@@ -135,10 +109,10 @@ class TargetDependencyTests: XCTestCase {
135109 }
136110
137111 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 (
142116 packageIdentity: " pkg " ,
143117 name: " t2 " ,
144118 deps: t1,
0 commit comments