|
22 | 22 | from cwltool.resolver import Path
|
23 | 23 | from cwltool.process import CWL_IANA
|
24 | 24 | from cwltool.sandboxjs import JavascriptException
|
25 |
| -from .util import (get_data, get_main_output, get_windows_safe_factory, |
| 25 | +from .util import (get_data, get_main_output, get_windows_safe_factory, subprocess, |
26 | 26 | needs_docker, working_directory, needs_singularity, temp_dir, windows_needs_docker)
|
27 | 27 |
|
28 | 28 | import six
|
@@ -1011,13 +1011,33 @@ def test_env_filtering(factor):
|
1011 | 1011 | commands.extend([get_data(test_file)])
|
1012 | 1012 | error_code, stdout, stderr = get_main_output(commands)
|
1013 | 1013 |
|
| 1014 | + process = subprocess.Popen(["sh", "-c", r"""getTrueShellExeName() { |
| 1015 | + local trueExe nextTarget 2>/dev/null |
| 1016 | + trueExe=$(ps -o comm= $$) || return 1 |
| 1017 | + [ "${trueExe#-}" = "$trueExe" ] || trueExe=${trueExe#-} |
| 1018 | + [ "${trueExe#/}" != "$trueExe" ] || trueExe=$([ -n "$ZSH_VERSION" ] && which -p "$trueExe" || which "$trueExe") |
| 1019 | + while nextTarget=$(readlink "$trueExe"); do trueExe=$nextTarget; done |
| 1020 | + printf '%s\n' "$(basename "$trueExe")" |
| 1021 | +} ; getTrueShellExeName"""], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=None) |
| 1022 | + sh_name, sh_name_err = process.communicate() |
| 1023 | + sh_name = sh_name.decode('utf-8').strip() |
| 1024 | + |
1014 | 1025 | assert "completed success" in stderr, (error_code, stdout, stderr)
|
1015 | 1026 | assert error_code == 0, (error_code, stdout, stderr)
|
1016 | 1027 | if onWindows():
|
1017 | 1028 | target = 5
|
1018 |
| - else: |
| 1029 | + elif sh_name == "dash": |
1019 | 1030 | target = 4
|
1020 |
| - assert json.loads(stdout)['env_count'] == target, (error_code, stdout, stderr) |
| 1031 | + else: |
| 1032 | + target = 6 |
| 1033 | + result = json.loads(stdout)['env_count'] |
| 1034 | + details = '' |
| 1035 | + if result != target: |
| 1036 | + _, details, _ = get_main_output(["--quiet", get_data("tests/env2.cwl")]) |
| 1037 | + print(sh_name) |
| 1038 | + print(sh_name_err) |
| 1039 | + print(details) |
| 1040 | + assert result == target, (error_code, sh_name, sh_name_err, details, stdout, stderr) |
1021 | 1041 |
|
1022 | 1042 | @windows_needs_docker
|
1023 | 1043 | def test_v1_0_arg_empty_prefix_separate_false():
|
|
0 commit comments