diff --git a/SwiftShellTests/Scripts/exitswhenopeningnon-existentfile.swift b/SwiftShellTests/Scripts/exitswhenopeningnon-existentfile.swift index 9f26922..3f0cbb3 100755 --- a/SwiftShellTests/Scripts/exitswhenopeningnon-existentfile.swift +++ b/SwiftShellTests/Scripts/exitswhenopeningnon-existentfile.swift @@ -2,5 +2,5 @@ import SwiftShell -let file = open("file which does not exist") +try! runAndPrint("/bin/cat", "file which does not exist") print("this is not printed, the script has exited") diff --git a/SwiftShellTests/Scripts/print_linenumbers.swift b/SwiftShellTests/Scripts/print_linenumbers.swift index 64be275..48b5f1b 100755 --- a/SwiftShellTests/Scripts/print_linenumbers.swift +++ b/SwiftShellTests/Scripts/print_linenumbers.swift @@ -2,13 +2,10 @@ import SwiftShell -/* -var i = 1 -for line in standardinput.lines() { - print("line \(i++): ") - println(line) -} -*/ +let result = main.stdin.read().characters.split("\n") + .enumerate().map { (linenr,line) in "line " + String(linenr+1) + ": " + String(line) } -var i = 1 -standardinput.lines() |> map {line in "line \(i++): \(line)\n"} |>> standardoutput +// Swift demands we split this up. +main.stdout.write(result.joinWithSeparator("\n")) + +// TODO: use .writeTo(&main.stdout) diff --git a/SwiftShellTests/Scripts/runtests.bash b/SwiftShellTests/Scripts/runtests.bash index 6da7c7f..ba37f97 100755 --- a/SwiftShellTests/Scripts/runtests.bash +++ b/SwiftShellTests/Scripts/runtests.bash @@ -19,8 +19,8 @@ export DYLD_FRAMEWORK_PATH=$PROJECT_ROOT/build/Release/ # Be aware the “assert” command does not check standard error output or exit code. -assert "./print_arguments.swift 1 2" "[./print_arguments.swift, 1, 2]" -assert_raises "./exitswhenopeningnon-existentfile.swift" 1 +assert "./print_name_and_args.swift 1 2" "print_name_and_args.swift \"1\" \"2\"" +assert_raises "./exitswhenopeningnon-existentfile.swift" 132 assert "cat onetwothree.txt | ./print_linenumbers.swift" "line 1: one\nline 2: two\nline 3: three" assert "./stream_out.swift" " 3" assert "./callswiftscriptfromswift.swift" "line 1: one\nline 2: two\nline 3: three"