@@ -109,8 +109,8 @@ class PackageDescription5_2LoadingTests: PackageDescriptionLoadingTests {
109
109
name: " Trivial " ,
110
110
products: [],
111
111
dependencies: [
112
- .package(name: " Foo " , url: " /foo1 " , from: " 1.0.0 " ),
113
- .package(name: " Bar " , url: " /bar1 " , from: " 2.0.0 " ),
112
+ .package(url: " http://scm.com/org/foo " , from: " 1.0.0 " ),
113
+ .package(url: " http://scm.com/org/bar " , from: " 2.0.0 " ),
114
114
],
115
115
targets: [
116
116
.target(
@@ -127,8 +127,8 @@ class PackageDescription5_2LoadingTests: PackageDescriptionLoadingTests {
127
127
let ( _, validationDiagnostics) = try loadAndValidateManifest ( content, observabilityScope: observability. topScope)
128
128
XCTAssertNoDiagnostics ( observability. diagnostics)
129
129
testDiagnostics ( validationDiagnostics) { result in
130
- result. checkUnordered ( diagnostic: " unknown package 'foo1' in dependencies of target 'Target1'; valid packages are: 'Foo' , 'Bar' " , severity: . error)
131
- result. checkUnordered ( diagnostic: " unknown dependency 'foos' in target 'Target2'; valid dependencies are: 'Foo' , 'Bar' " , severity: . error)
130
+ result. checkUnordered ( diagnostic: " unknown package 'foo1' in dependencies of target 'Target1'; valid packages are: 'foo' (from 'http://scm.com/org/foo') , 'bar' (from 'http://scm.com/org/bar') " , severity: . error)
131
+ result. checkUnordered ( diagnostic: " unknown dependency 'foos' in target 'Target2'; valid dependencies are: 'foo' (from 'http://scm.com/org/foo') , 'bar' (from 'http://scm.com/org/bar') " , severity: . error)
132
132
}
133
133
}
134
134
@@ -139,7 +139,8 @@ class PackageDescription5_2LoadingTests: PackageDescriptionLoadingTests {
139
139
name: " Trivial " ,
140
140
products: [],
141
141
dependencies: [
142
- .package(name: " Foo " , url: " /foo1 " , from: " 1.0.0 " ),
142
+ .package(name: " Foo " , url: " http://scm.com/org/foo " , from: " 1.0.0 " ),
143
+ .package(name: " Bar " , url: " http://scm.com/org/bar " , from: " 2.0.0 " ),
143
144
],
144
145
targets: [
145
146
.target(
@@ -152,23 +153,25 @@ class PackageDescription5_2LoadingTests: PackageDescriptionLoadingTests {
152
153
)
153
154
"""
154
155
155
- // note: root has special rules in this case
156
156
let observability = ObservabilitySystem . makeForTesting ( )
157
- let ( _, validationDiagnostics) = try loadAndValidateManifest ( content, packageKind : . root ( . root ) , observabilityScope: observability. topScope)
157
+ let ( _, validationDiagnostics) = try loadAndValidateManifest ( content, observabilityScope: observability. topScope)
158
158
XCTAssertNoDiagnostics ( observability. diagnostics)
159
159
testDiagnostics ( validationDiagnostics) { result in
160
- result. checkUnordered ( diagnostic: " unknown package 'foo1' in dependencies of target 'Target1'; valid packages are: 'Foo' " , severity: . error)
160
+ result. checkUnordered ( diagnostic: " unknown package 'foo1' in dependencies of target 'Target1'; valid packages are: 'Foo' (from 'http://scm.com/org/foo'), 'Bar' (from 'http://scm.com/org/bar') " , severity: . error)
161
+ result. checkUnordered ( diagnostic: " unknown dependency 'foos' in target 'Target2'; valid dependencies are: 'Foo' (from 'http://scm.com/org/foo'), 'Bar' (from 'http://scm.com/org/bar') " , severity: . error)
161
162
}
162
163
}
163
164
165
+ // packageKind == root has special rules in this case
166
+
164
167
do {
165
168
let content = """
166
169
import PackageDescription
167
170
let package = Package(
168
171
name: " Trivial " ,
169
172
products: [],
170
173
dependencies: [
171
- .package(path : " /foo2 " ),
174
+ .package(name : " Foo " , url: " http://scm.com/org/foo1 " , from: " 1.0.0 " ),
172
175
],
173
176
targets: [
174
177
.target(
@@ -181,42 +184,72 @@ class PackageDescription5_2LoadingTests: PackageDescriptionLoadingTests {
181
184
)
182
185
"""
183
186
184
- // note: root has special rules in this case
185
187
let observability = ObservabilitySystem . makeForTesting ( )
186
188
let ( _, validationDiagnostics) = try loadAndValidateManifest ( content, packageKind: . root( . root) , observabilityScope: observability. topScope)
187
189
XCTAssertNoDiagnostics ( observability. diagnostics)
188
190
testDiagnostics ( validationDiagnostics) { result in
189
- result. checkUnordered ( diagnostic: " unknown package 'foo1' in dependencies of target 'Target1'; valid packages are: 'foo2' " , severity: . error)
191
+ result. check ( diagnostic: " unknown package 'foo1' in dependencies of target 'Target1'; valid packages are: 'Foo' (from 'http://scm.com/org/foo1') " , severity: . error)
190
192
}
191
193
}
192
194
195
+
193
196
do {
194
197
let content = """
195
198
import PackageDescription
196
199
let package = Package(
197
200
name: " Trivial " ,
198
201
products: [],
199
202
dependencies: [
200
- .package(url : " /foo1 " , from: " 1.0.0 " ),
201
- .package(url : " /foo2 " , from: " 1.0.0 " ),
203
+ .package(path : " /foo " ),
204
+ .package(path : " /bar " ),
202
205
],
203
206
targets: [
204
207
.target(
205
208
name: " Target1 " ,
206
- dependencies: [.product(name: " product " , package: " foo3 " )]),
209
+ dependencies: [.product(name: " product " , package: " foo1 " )]),
207
210
.target(
208
211
name: " Target2 " ,
209
212
dependencies: [ " foos " ]),
210
213
]
211
214
)
212
215
"""
213
216
214
- // note: root has special rules in this case
215
217
let observability = ObservabilitySystem . makeForTesting ( )
216
- let ( _, validationDiagnostics) = try loadAndValidateManifest ( content, packageKind: . root( . root) , observabilityScope: observability. topScope)
218
+ let ( _, validationDiagnostics) = try loadAndValidateManifest ( content, observabilityScope: observability. topScope)
219
+ XCTAssertNoDiagnostics ( observability. diagnostics)
220
+ testDiagnostics ( validationDiagnostics) { result in
221
+ result. checkUnordered ( diagnostic: " unknown package 'foo1' in dependencies of target 'Target1'; valid packages are: 'foo' (at '/foo'), 'bar' (at '/bar') " , severity: . error)
222
+ result. checkUnordered ( diagnostic: " unknown dependency 'foos' in target 'Target2'; valid dependencies are: 'foo' (at '/foo'), 'bar' (at '/bar') " , severity: . error)
223
+ }
224
+ }
225
+
226
+ do {
227
+ let content = """
228
+ import PackageDescription
229
+ let package = Package(
230
+ name: " Trivial " ,
231
+ products: [],
232
+ dependencies: [
233
+ .package(name: " Foo " , path: " /foo1 " ),
234
+ .package(name: " Bar " , path: " /bar1 " ),
235
+ ],
236
+ targets: [
237
+ .target(
238
+ name: " Target1 " ,
239
+ dependencies: [.product(name: " product " , package: " foo1 " )]),
240
+ .target(
241
+ name: " Target2 " ,
242
+ dependencies: [ " foos " ]),
243
+ ]
244
+ )
245
+ """
246
+
247
+ let observability = ObservabilitySystem . makeForTesting ( )
248
+ let ( _, validationDiagnostics) = try loadAndValidateManifest ( content, observabilityScope: observability. topScope)
217
249
XCTAssertNoDiagnostics ( observability. diagnostics)
218
250
testDiagnostics ( validationDiagnostics) { result in
219
- result. checkUnordered ( diagnostic: " unknown package 'foo3' in dependencies of target 'Target1'; valid packages are: 'foo1', 'foo2' " , severity: . error)
251
+ result. checkUnordered ( diagnostic: " unknown package 'foo1' in dependencies of target 'Target1'; valid packages are: 'Foo' (at '/foo1'), 'Bar' (at '/bar1') " , severity: . error)
252
+ result. checkUnordered ( diagnostic: " unknown dependency 'foos' in target 'Target2'; valid dependencies are: 'Foo' (at '/foo1'), 'Bar' (at '/bar1') " , severity: . error)
220
253
}
221
254
}
222
255
}
0 commit comments