aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorArun Isaac2023-10-15 12:13:58 +0100
committerArun Isaac2023-10-15 12:41:39 +0100
commitcb66af826596b7bfba0fa45f8eb25fcf1613bc13 (patch)
tree15631d090f37869319f3f30bd875a3af6f1a7237 /tests
parent3063c33634d4a25ba99a2c884dd8bf04e519f914 (diff)
downloadccwl-cb66af826596b7bfba0fa45f8eb25fcf1613bc13.tar.gz
ccwl-cb66af826596b7bfba0fa45f8eb25fcf1613bc13.tar.lz
ccwl-cb66af826596b7bfba0fa45f8eb25fcf1613bc13.zip
ccwl: Make #:stderr and #:stdout first class parameters.
#:stderr and #:stdout, especially #:stdout, are commonly required. They ought to be first class parameters and not tucked away into #:other. * ccwl/ccwl.scm (<command>)[stderr, stdout]: New fields. * ccwl/ccwl.scm (command): Accept #:stderr and #:stdout as first class parameters. * ccwl/cwl.scm (command->cwl-scm): Serialize stderr and stdout fields. * doc/capture-stdout.scm (print), doc/decompress-compile-run.scm (run), doc/checksum.scm (md5sum, sha1sum, sha256sum), doc/spell-check.scm (find-misspellings): Capture stdout in file. * doc/checksum.scm, doc/decompress-compile-run.scm: * doc/ccwl.skb (Tutorial)[Capturing the standard output stream of a command]: Document #:stdout first class parameter. * doc/ccwl.skb (Tutorial)[Workflow with multiple steps]: Capture stdout in explicitly named files. * tests/ccwl.scm ("commands with non-string #:stderr parameters must raise a &ccwl-violation condition", "commands with non-string #:stdout parameters must raise a &ccwl-violation condition"): New tests.
Diffstat (limited to 'tests')
-rw-r--r--tests/ccwl.scm24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/ccwl.scm b/tests/ccwl.scm
index 76bcecd..e7a0cb7 100644
--- a/tests/ccwl.scm
+++ b/tests/ccwl.scm
@@ -197,4 +197,28 @@
(print (print2) #:message message2)))
#f)))
+(test-assert "commands with non-string #:stderr parameters must raise a &ccwl-violation condition"
+ (guard (exception
+ (else (and (ccwl-violation? exception)
+ (string=? (formatted-message-format exception)
+ "#:stderr parameter must be a string"))))
+ (begin (macroexpand
+ '(command #:inputs (message #:type string)
+ #:run "echo" message
+ #:outputs (printed #:type stderr)
+ #:stderr captured-stderr))
+ #f)))
+
+(test-assert "commands with non-string #:stdout parameters must raise a &ccwl-violation condition"
+ (guard (exception
+ (else (and (ccwl-violation? exception)
+ (string=? (formatted-message-format exception)
+ "#:stdout parameter must be a string"))))
+ (begin (macroexpand
+ '(command #:inputs (message #:type string)
+ #:run "echo" message
+ #:outputs (printed #:type stdout)
+ #:stdout captured-stdout))
+ #f)))
+
(test-end "ccwl")