-
-
Notifications
You must be signed in to change notification settings - Fork 4
Added tests for the cwl.output.json feature
#81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This commit adds three conformance tests for the `cwl.output.json` feature: - The first test confirms that if the `cwl.output.json` file contains a field that has not been declared in the `output` object of a CWL `CommandLineTool`, that field is discarded (fix #80) - The second test confirms that outputs from `cwl.output.json` are type-checked according to the type declared in the `output` object of the `CommandLineTool` - The third test confirms that if an output is not present in the `cwl.output.json` file but has been declared as required in the `output` object of a CWL `CommandLineTool`, the execution fails
3df8bac to
48a4989
Compare
48a4989 to
a4c7f89
Compare
a4c7f89 to
4de5e29
Compare
mr-c
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! I added some change requests
| section, but `outputBinding` is ignored. If an output name is present | ||
| in the "cwl.output.json" file, but has not been declared in the | ||
| `outputs` section, it must be ignored and not propagated to the next | ||
| steps. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| section, but `outputBinding` is ignored. If an output name is present | |
| in the "cwl.output.json" file, but has not been declared in the | |
| `outputs` section, it must be ignored and not propagated to the next | |
| steps. | |
| section, but `outputBinding` is ignored. Any output is present in the | |
| "cwl.output.json" file but not declared in the `outputs` section must | |
| be discarded from the output object. |
| * If an output name is present in the "cwl.output.json" file, but has | ||
| not been declared in the `outputs` section, it must be ignored and | ||
| not propagated to the next steps. Previous versions of CWL exhibited | ||
| undefined behaviour for this occurrence. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| * If an output name is present in the "cwl.output.json" file, but has | |
| not been declared in the `outputs` section, it must be ignored and | |
| not propagated to the next steps. Previous versions of CWL exhibited | |
| undefined behaviour for this occurrence. | |
| * [Output Binding](#Output_binding): Any output present in the | |
| "cwl.output.json" file but not declared in the `outputs` section must | |
| be discarded from the output object. Previous versions of CWL did not | |
| define if undeclared outputs in "cwl.output.json" should be present | |
| in the output object. |
| requirements: | ||
| - class: ShellCommandRequirement | ||
| hints: | ||
| DockerRequirement: | ||
| dockerPull: docker.io/debian:stable-slim | ||
|
|
||
| inputs: [] | ||
|
|
||
| baseCommand: sh | ||
|
|
||
| arguments: | ||
| - -c | ||
| - | | ||
| echo foo > foo && echo '{"foo": {"location": "foo", "class": "File"} }' | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please refactor this test to not use ShellCommandRequirement so that the conformance test doesn't have to be tagged shell_command and can keep its required tag.
| - class: ShellCommandRequirement | ||
| hints: | ||
| DockerRequirement: | ||
| dockerPull: docker.io/debian:stable-slim | ||
|
|
||
| inputs: [] | ||
|
|
||
| baseCommand: sh | ||
|
|
||
| arguments: | ||
| - -c | ||
| - | | ||
| echo foo > foo && echo '{"foo": {"location": "foo", "class": "File"} }' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please refactor this test to not use ShellCommandRequirement so that the conformance test doesn't have to be tagged shell_command and can keep its required tag.
| requirements: | ||
| - class: ShellCommandRequirement | ||
| hints: | ||
| DockerRequirement: | ||
| dockerPull: docker.io/debian:stable-slim | ||
|
|
||
| inputs: [] | ||
|
|
||
| baseCommand: sh | ||
|
|
||
| arguments: | ||
| - -c | ||
| - | | ||
| echo foo > foo && echo '{"foo": {"location": "foo", "class": "File"} }' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please refactor this test to not use ShellCommandRequirement so that the conformance test doesn't have to be tagged shell_command and can keep its required tag.
This commit adds three conformance tests for the
cwl.output.jsonfeature:cwl.output.jsonfile contains a field that has not been declared in theoutputssection of a CWLCommandLineTool, that field is discarded (fix [Proposal] If cwl.output.json is created by the tool, outputs not listed in the CWL tool description must be removed #80)cwl.output.jsonare type-checked according to the type declared in theoutputssection of theCommandLineToolcwl.output.jsonfile but has been declared as required in theoutputssection of a CWLCommandLineTool, the execution fails