From 31d0328abebcae98b21b57cecfc255ec6442e157 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 6 Nov 2023 11:01:43 +0000 Subject: ccwl: Error out if #:other parameters are not serializable to YAML. * ccwl/ccwl.scm (ensure-yaml-serializable): New function. (input, output, command): Use ensure-yaml-serializable. * tests/ccwl.scm ("inputs with #:other parameters that fail to evaluate must raise a &ccwl-violation condition", "outputs with #:other parameters that fail to evaluate must raise a &ccwl-violation condition", "commands with #:other parameters that fail to evaluate must raise a &ccwl-violation condition"): New tests. --- tests/ccwl.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'tests') diff --git a/tests/ccwl.scm b/tests/ccwl.scm index d8100c5..117f93f 100644 --- a/tests/ccwl.scm +++ b/tests/ccwl.scm @@ -285,4 +285,36 @@ #:run "cat" file)) #f))) +(test-assert "inputs with #:other parameters that fail to evaluate must raise a &ccwl-violation condition" + (guard (exception + (else (and (ccwl-violation? exception) + (string=? (formatted-message-format exception) + "#:other parameter not serializable to YAML")))) + (begin (macroexpand + '(command #:inputs (file #:type File + #:other '((secondaryFiles . ".fai"))) + #:run "cat" file)) + #f))) + +(test-assert "outputs with #:other parameters that fail to evaluate must raise a &ccwl-violation condition" + (guard (exception + (else (and (ccwl-violation? exception) + (string=? (formatted-message-format exception) + "#:other parameter not serializable to YAML")))) + (begin (macroexpand + '(command #:outputs (file #:type File + #:other '((secondaryFiles . ".fai"))) + #:run "cat" file)) + #f))) + +(test-assert "commands with #:other parameters that fail to evaluate must raise a &ccwl-violation condition" + (guard (exception + (else (and (ccwl-violation? exception) + (string=? (formatted-message-format exception) + "#:other parameter not serializable to YAML")))) + (begin (macroexpand + '(command #:run "cat" file + #:other '((secondaryFiles . ".fai")))) + #f))) + (test-end "ccwl") -- cgit v1.2.3