Skip to content

Commit b413e09

Browse files
committed
add test_search_path_linker to test.framework.toolchain suite
1 parent d62d108 commit b413e09

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

test/framework/toolchain.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -998,6 +998,48 @@ def test_search_path_cpp_headers(self):
998998
self.assertErrorRegex(EasyBuildError, error_pattern, tc.prepare)
999999
self.modtool.purge()
10001000

1001+
def test_search_path_linker(self):
1002+
"""Test functionality behind search-path-linker option"""
1003+
cpp_headers_mode = {
1004+
"LDFLAGS": ["LDFLAGS"],
1005+
"LIBRARY_PATH": ["LIBRARY_PATH"],
1006+
}
1007+
# test without toolchain option
1008+
for build_opt in cpp_headers_mode:
1009+
init_config(build_options={"search_path_linker": build_opt, "silent": True})
1010+
tc = self.get_toolchain("foss", version="2018a")
1011+
with self.mocked_stdout_stderr():
1012+
tc.prepare()
1013+
for env_var in cpp_headers_mode[build_opt]:
1014+
assert_fail_msg = (
1015+
f"Variable {env_var} required by search-path-linker build option '{build_opt}' "
1016+
"not found in toolchain environment"
1017+
)
1018+
self.assertIn(env_var, tc.variables, assert_fail_msg)
1019+
self.modtool.purge()
1020+
# test with toolchain option
1021+
for build_opt in cpp_headers_mode:
1022+
init_config(build_options={"search_path_linker": build_opt, "silent": True})
1023+
for tc_opt in cpp_headers_mode:
1024+
tc = self.get_toolchain("foss", version="2018a")
1025+
tc.set_options({"search-path-linker": tc_opt})
1026+
with self.mocked_stdout_stderr():
1027+
tc.prepare()
1028+
for env_var in cpp_headers_mode[tc_opt]:
1029+
assert_fail_msg = (
1030+
f"Variable {env_var} required by search-path-linker toolchain option '{tc_opt}' "
1031+
"not found in toolchain environment"
1032+
)
1033+
self.assertIn(env_var, tc.variables, assert_fail_msg)
1034+
self.modtool.purge()
1035+
# test wrong toolchain option
1036+
tc = self.get_toolchain("foss", version="2018a")
1037+
tc.set_options({"search-path-linker": "WRONG_MODE"})
1038+
with self.mocked_stdout_stderr():
1039+
error_pattern = "Unknown value selected for option search-path-linker"
1040+
self.assertErrorRegex(EasyBuildError, error_pattern, tc.prepare)
1041+
self.modtool.purge()
1042+
10011043
def test_cgoolf_toolchain(self):
10021044
"""Test for cgoolf toolchain."""
10031045
tc = self.get_toolchain("cgoolf", version="1.1.6")

0 commit comments

Comments
 (0)