Skip to content

Commit 49fc1c3

Browse files
authored
tests: reduce number of software containers (#1718)
As inspired by the list at https://github.com/common-workflow-language/cwl-v1.2/blob/1.2.1_proposed/CONFORMANCE_TESTS.md#writing-a-new-conformance-test Also fixes a Singularity 3 bug
1 parent 79fd363 commit 49fc1c3

31 files changed

+73
-33
lines changed

cwltool/singularity.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ def get_image(
184184
candidates.append(dockerRequirement["dockerImageId"])
185185
candidates.append(_normalize_image_id(dockerRequirement["dockerImageId"]))
186186
if is_version_3_or_newer():
187-
candidates.append(_normalize_sif_id(dockerRequirement["dockerPull"]))
187+
candidates.append(_normalize_sif_id(dockerRequirement["dockerImageId"]))
188188

189189
targets = [os.getcwd()]
190190
if "CWL_SINGULARITY_CACHE" in os.environ:

tests/debian_image_id.cwl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ class: CommandLineTool
44

55
requirements:
66
DockerRequirement:
7-
dockerImageId: 'debian.img'
7+
dockerImageId: 'debian:stable-slim.img'
88

99
inputs:
1010
message: string
1111

1212
outputs: []
1313

14-
baseCommand: echo
14+
baseCommand: echo

tests/debian_image_id2.cwl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env cwl-runner
2+
cwlVersion: v1.0
3+
class: CommandLineTool
4+
5+
requirements:
6+
DockerRequirement:
7+
dockerImageId: 'docker.io_debian:stable-slim.sif'
8+
9+
inputs:
10+
message: string
11+
12+
outputs: []
13+
14+
baseCommand: echo

tests/echo-job.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
cwl:requirements:
22
- class: DockerRequirement
3-
dockerPull: docker.io/debian
3+
dockerPull: docker.io/debian:stable-slim
44

55
inp: "Howdy!"

tests/non_portable.cwl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class: CommandLineTool
44

55
requirements:
66
DockerRequirement:
7-
dockerPull: docker.io/debian
7+
dockerPull: docker.io/debian:stable-slim
88
InitialWorkDirRequirement:
99
listing:
1010
- class: File

tests/non_portable2.cwl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class: CommandLineTool
44

55
hints:
66
DockerRequirement:
7-
dockerPull: docker.io/debian
7+
dockerPull: docker.io/debian:stable-slim
88
dockerOutputDirectory: /var/spool/cwl
99
InitialWorkDirRequirement:
1010
listing:

tests/portable.cwl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class: CommandLineTool
44

55
requirements:
66
DockerRequirement:
7-
dockerPull: docker.io/debian
7+
dockerPull: docker.io/debian:stable-slim
88
dockerOutputDirectory: /var/spool/cwl
99
InitialWorkDirRequirement:
1010
listing:

tests/sing_pullfolder_test.cwl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class: CommandLineTool
44

55
requirements:
66
DockerRequirement:
7-
dockerPull: docker.io/debian
7+
dockerPull: docker.io/debian:stable-slim
88

99
inputs:
1010
message: string

tests/test_docker_info.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
def test_docker_mem() -> None:
66
error_code, stdout, stderr = get_main_output(
77
[
8-
"--default-container=debian",
8+
"--default-container=docker.io/debian:stable-slim",
99
"--enable-ext",
1010
get_data("tests/wf/timelimit.cwl"),
1111
"--sleep_time",

tests/test_singularity.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
get_main_output,
1111
needs_singularity,
1212
needs_singularity_2_6,
13+
needs_singularity_3_or_newer,
1314
working_directory,
1415
)
1516

@@ -107,7 +108,7 @@ def test_singularity_local(tmp_path: Path) -> None:
107108

108109

109110
@needs_singularity_2_6
110-
def test_singularity_docker_image_id_in_tool(tmp_path: Path) -> None:
111+
def test_singularity2_docker_image_id_in_tool(tmp_path: Path) -> None:
111112
workdir = tmp_path / "working_dir"
112113
workdir.mkdir()
113114
with working_directory(workdir):
@@ -128,3 +129,28 @@ def test_singularity_docker_image_id_in_tool(tmp_path: Path) -> None:
128129
]
129130
)
130131
assert result_code1 == 0
132+
133+
134+
@needs_singularity_3_or_newer
135+
def test_singularity3_docker_image_id_in_tool(tmp_path: Path) -> None:
136+
workdir = tmp_path / "working_dir"
137+
workdir.mkdir()
138+
with working_directory(workdir):
139+
result_code, stdout, stderr = get_main_output(
140+
[
141+
"--singularity",
142+
get_data("tests/sing_pullfolder_test.cwl"),
143+
"--message",
144+
"hello",
145+
]
146+
)
147+
assert result_code == 0
148+
result_code1, stdout, stderr = get_main_output(
149+
[
150+
"--singularity",
151+
get_data("tests/debian_image_id2.cwl"),
152+
"--message",
153+
"hello",
154+
]
155+
)
156+
assert result_code1 == 0

0 commit comments

Comments
 (0)