Skip to content

Commit 8f69898

Browse files
authored
Merge pull request #25 from hartbit/split-stdout-stderr
Split process output between stdout and stderr
2 parents 3295f28 + 7b602a4 commit 8f69898

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

Sources/TSCTestSupport/Product.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ extension Product {
5757
_ args: [String],
5858
packagePath: AbsolutePath? = nil,
5959
env: [String: String]? = nil
60-
) throws -> String {
60+
) throws -> (stdout: String, stderr: String) {
6161

6262
let result = try executeProcess(
6363
args, packagePath: packagePath,
@@ -67,8 +67,7 @@ extension Product {
6767
let stderr = try result.utf8stderrOutput()
6868

6969
if result.exitStatus == .terminated(code: 0) {
70-
// FIXME: We should return stderr separately.
71-
return output + stderr
70+
return (stdout: output, stderr: stderr)
7271
}
7372
throw SwiftPMProductError.executionFailure(
7473
error: ProcessResult.Error.nonZeroExit(result),

Tests/TSCUtilityTests/ArgumentParserTests.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -480,29 +480,29 @@ class ArgumentParserTests: XCTestCase {
480480
func testPathArgument() {
481481
// Test that relative path is resolved.
482482
do {
483-
let actual = try! TestSupportExecutable.execute(["pathArgumentTest", "some/path"]).spm_chomp()
483+
let (stdout, _) = try! TestSupportExecutable.execute(["pathArgumentTest", "some/path"])
484484
let expected = localFileSystem.currentWorkingDirectory!.appending(RelativePath("some/path")).pathString
485-
XCTAssertEqual(actual, expected)
485+
XCTAssertEqual(stdout.spm_chomp(), expected)
486486
}
487487

488488
// Test that relative path starting with ./ is resolved.
489489
do {
490-
let actual = try! TestSupportExecutable.execute(["pathArgumentTest", "./some/path"]).spm_chomp()
490+
let (stdout, _) = try! TestSupportExecutable.execute(["pathArgumentTest", "./some/path"])
491491
let expected = localFileSystem.currentWorkingDirectory!.appending(RelativePath("./some/path")).pathString
492-
XCTAssertEqual(actual, expected)
492+
XCTAssertEqual(stdout.spm_chomp(), expected)
493493
}
494494

495495
// Test that relative path starting with ../ is resolved.
496496
do {
497-
let actual = try! TestSupportExecutable.execute(["pathArgumentTest", "../other/path"]).spm_chomp()
497+
let (stdout, _) = try! TestSupportExecutable.execute(["pathArgumentTest", "../other/path"])
498498
let expected = localFileSystem.currentWorkingDirectory!.appending(RelativePath("../other/path")).pathString
499-
XCTAssertEqual(actual, expected)
499+
XCTAssertEqual(stdout.spm_chomp(), expected)
500500
}
501501

502502
// Test that absolute path is resolved.
503503
do {
504-
let actual = try! TestSupportExecutable.execute(["pathArgumentTest", "/bin/echo"]).spm_chomp()
505-
XCTAssertEqual(actual, "/bin/echo")
504+
let (stdout, _) = try! TestSupportExecutable.execute(["pathArgumentTest", "/bin/echo"])
505+
XCTAssertEqual(stdout.spm_chomp(), "/bin/echo")
506506
}
507507
}
508508

0 commit comments

Comments
 (0)