aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorArun Isaac2022-01-16 13:01:25 +0530
committerArun Isaac2022-01-16 13:17:36 +0530
commite12759ce31a746b0532fbb13371579f0aa19b518 (patch)
tree52f4c717d583533c13a73f82bffbe520378bba48 /tests
parentfbb0e6f9c2fe9321045708c1c9eab91627ad241e (diff)
downloadccwl-e12759ce31a746b0532fbb13371579f0aa19b518.tar.gz
ccwl-e12759ce31a746b0532fbb13371579f0aa19b518.tar.lz
ccwl-e12759ce31a746b0532fbb13371579f0aa19b518.zip
ccwl: Raise exceptions on command syntax errors.
* ccwl/ccwl.scm (command): Raise &ccwl-violation conditions on syntax errors. * tests/ccwl.scm ("command, when passed positional arguments, must raise a &ccwl-violation condition", "command, when passed an unrecognized keyword, must raise a &ccwl-violation condition", "command, when passed multiple arguments to a unary keyword, must raise a &ccwl-violation condition"): New tests.
Diffstat (limited to 'tests')
-rw-r--r--tests/ccwl.scm26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/ccwl.scm b/tests/ccwl.scm
index d667b32..d99650e 100644
--- a/tests/ccwl.scm
+++ b/tests/ccwl.scm
@@ -85,4 +85,30 @@
(else (ccwl-violation? exception)))
(output #'(message #:type int string))))
+(test-assert "command, when passed positional arguments, must raise a &ccwl-violation condition"
+ (guard (exception
+ (else (ccwl-violation? exception)))
+ (macroexpand
+ '(command foo
+ #:inputs (message #:type string)
+ #:run "echo" message
+ #:outputs (stdout #:type stdout)))))
+
+(test-assert "command, when passed an unrecognized keyword, must raise a &ccwl-violation condition"
+ (guard (exception
+ (else (ccwl-violation? exception)))
+ (macroexpand
+ '(command #:foo (message #:type string)
+ #:run "echo" message
+ #:outputs (stdout #:type stdout)))))
+
+(test-assert "command, when passed multiple arguments to a unary keyword, must raise a &ccwl-violation condition"
+ (guard (exception
+ (else (ccwl-violation? exception)))
+ (macroexpand
+ '(command #:inputs (message #:type string)
+ #:run "echo" message
+ #:outputs (stdout #:type stdout)
+ #:stdin "foo" "bar"))))
+
(test-end "ccwl")