File tree Expand file tree Collapse file tree 2 files changed +20
-1
lines changed
Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -155,6 +155,7 @@ fileprivate struct DescribedPackage: Encodable {
155155 let sources : [ String ]
156156 let resources : [ PackageModel . Resource ] ?
157157 let targetDependencies : [ String ] ?
158+ let productDependencies : [ String ] ?
158159 let productMemberships : [ String ] ?
159160
160161 init ( from target: Target , in package : Package , productMemberships: [ String ] ? ) {
@@ -166,7 +167,10 @@ fileprivate struct DescribedPackage: Encodable {
166167 self . path = target. sources. root. relative ( to: package . path) . pathString
167168 self . sources = target. sources. relativePaths. map { $0. pathString }
168169 self . resources = target. resources. isEmpty ? nil : target. resources
169- self . targetDependencies = target. dependencies. isEmpty ? nil : target. dependencies. compactMap{ $0. target? . name }
170+ let targetDependencies = target. dependencies. compactMap { $0. target }
171+ self . targetDependencies = targetDependencies. isEmpty ? nil : targetDependencies. map{ $0. name }
172+ let productDependencies = target. dependencies. compactMap { $0. product }
173+ self . productDependencies = productDependencies. isEmpty ? nil : productDependencies. map{ $0. name }
170174 self . productMemberships = productMemberships
171175 }
172176 }
Original file line number Diff line number Diff line change @@ -254,6 +254,21 @@ final class PackageToolTests: XCTestCase {
254254 XCTAssert ( textChunk6. contains ( " Path: Sources/CExec " ) , textChunk6)
255255 XCTAssert ( textChunk6. contains ( " Sources: \n main.c " ) , textChunk6)
256256 }
257+
258+ fixture ( name: " DependencyResolution/External/Simple/Bar " ) { prefix in
259+ // Generate the JSON description.
260+ let jsonResult = try SwiftPMProduct . SwiftPackage. executeProcess ( [ " describe " , " --type=json " ] , packagePath: prefix)
261+ let jsonOutput = try jsonResult. utf8Output ( )
262+ let json = try JSON ( bytes: ByteString ( encodingAsUTF8: jsonOutput) )
263+
264+ // Check that product dependencies and memberships are as expected.
265+ XCTAssertEqual ( json [ " name " ] ? . string, " Bar " )
266+ let jsonTarget = try XCTUnwrap ( json [ " targets " ] ? . array ? [ 0 ] )
267+ XCTAssertEqual ( jsonTarget [ " product_memberships " ] ? . array ? [ 0 ] . stringValue, " Bar " )
268+ XCTAssertEqual ( jsonTarget [ " product_dependencies " ] ? . array ? [ 0 ] . stringValue, " Foo " )
269+ XCTAssertNil ( jsonTarget [ " target_dependencies " ] )
270+ }
271+
257272 }
258273
259274 func testDescribePackageUsingPlugins( ) throws {
You can’t perform that action at this time.
0 commit comments