diff options
| author | Arun Isaac | 2025-11-29 03:31:31 +0000 |
|---|---|---|
| committer | Arun Isaac | 2025-11-29 03:35:01 +0000 |
| commit | 370aedb071b84aad25cbfb25366c436f965ff50e (patch) | |
| tree | f5d28821939367323aa898a06436ab922b8c0d69 | |
| parent | 5616781558901cde264f3a29bb5de816f26a2454 (diff) | |
| download | ravanan-370aedb071b84aad25cbfb25366c436f965ff50e.tar.gz ravanan-370aedb071b84aad25cbfb25366c436f965ff50e.tar.lz ravanan-370aedb071b84aad25cbfb25366c436f965ff50e.zip | |
workflow: Handle boolean false input and default value.
| -rw-r--r-- | e2e-tests/jobs/boolean-false-input-value.yaml | 2 | ||||
| -rw-r--r-- | e2e-tests/tests.yaml | 18 | ||||
| -rw-r--r-- | e2e-tests/tools/boolean-false-default-value.scm | 3 | ||||
| -rw-r--r-- | e2e-tests/tools/boolean-false-input-value.scm | 3 | ||||
| -rw-r--r-- | ravanan/workflow.scm | 9 |
5 files changed, 32 insertions, 3 deletions
diff --git a/e2e-tests/jobs/boolean-false-input-value.yaml b/e2e-tests/jobs/boolean-false-input-value.yaml new file mode 100644 index 0000000..0729f40 --- /dev/null +++ b/e2e-tests/jobs/boolean-false-input-value.yaml @@ -0,0 +1,2 @@ +message: Hello world! +no-newline?: false diff --git a/e2e-tests/tests.yaml b/e2e-tests/tests.yaml index b47856d..b7ab40c 100644 --- a/e2e-tests/tests.yaml +++ b/e2e-tests/tests.yaml @@ -196,3 +196,21 @@ class: File size: 26 checksum: sha1$2544f363c82bf304dc363829620ecf213e1a2c1e +- id: boolean-false-default-value + doc: Workflow with a boolean false default value + tool: tools/boolean-false-default-value.cwl + job: jobs/hello-world.yaml + output: + output_message: + class: File + size: 13 + checksum: sha1$47a013e660d408619d894b20806b1d5086aab03b +- id: boolean-false-input-value + doc: Boolean false input value + tool: tools/boolean-false-input-value.cwl + job: jobs/boolean-false-input-value.yaml + output: + output_message: + class: File + size: 13 + checksum: sha1$47a013e660d408619d894b20806b1d5086aab03b diff --git a/e2e-tests/tools/boolean-false-default-value.scm b/e2e-tests/tools/boolean-false-default-value.scm new file mode 100644 index 0000000..58b460a --- /dev/null +++ b/e2e-tests/tools/boolean-false-default-value.scm @@ -0,0 +1,3 @@ +(command #:inputs (message #:type string) (no-newline? #:type boolean #:default #f) + #:run "echo" ("-n" no-newline?) message + #:outputs (output_message #:type stdout)) diff --git a/e2e-tests/tools/boolean-false-input-value.scm b/e2e-tests/tools/boolean-false-input-value.scm new file mode 100644 index 0000000..08db60d --- /dev/null +++ b/e2e-tests/tools/boolean-false-input-value.scm @@ -0,0 +1,3 @@ +(command #:inputs (message #:type string) (no-newline? #:type boolean) + #:run "echo" ("-n" no-newline?) message + #:outputs (output_message #:type stdout)) diff --git a/ravanan/workflow.scm b/ravanan/workflow.scm index 8be61ae..2fd00d6 100644 --- a/ravanan/workflow.scm +++ b/ravanan/workflow.scm @@ -549,9 +549,12 @@ error out." ;; - the input value ;; - the default value ;; - the null value (for optional inputs) - (value (or (assoc-ref inputs id) - (assoc-ref formal-input "default") - 'null)) + (value (cond + ;; We can't use assoc-ref because #f is also a + ;; valid value. + ((assoc id inputs) => cdr) + ((assoc "default" formal-input) => cdr) + (else 'null))) (expected-type (formal-parameter-type (assoc-ref* formal-input "type")))) (unless (match-type value expected-type) |
