Skip to content

Commit f0190f7

Browse files
committed
add test_cpp_headers_search_path to test.framework.toolchain
1 parent 3b3e9d1 commit f0190f7

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

test/framework/toolchain.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -955,6 +955,49 @@ def test_precision_flags(self):
955955

956956
self.modtool.purge()
957957

958+
def test_cpp_headers_search_path(self):
959+
"""Test functionality behind cpp-headers-search-path option"""
960+
cpp_headers_mode = {
961+
"CPPFLAGS": ["CPPFLAGS"],
962+
"CPATH": ["CPATH"],
963+
"INCLUDE_PATHS": ["C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH", "OBJC_INCLUDE_PATH"],
964+
}
965+
# test without toolchain option
966+
for build_opt in cpp_headers_mode:
967+
init_config(build_options={"cpp_headers_search_path": build_opt, "silent": True})
968+
tc = self.get_toolchain("foss", version="2018a")
969+
with self.mocked_stdout_stderr():
970+
tc.prepare()
971+
for env_var in cpp_headers_mode[build_opt]:
972+
assert_fail_msg = (
973+
f"Variable {env_var} required by cpp-headers-search-path build option '{build_opt}' "
974+
"not found in toolchain environment"
975+
)
976+
self.assertIn(env_var, [*tc.variables], assert_fail_msg)
977+
self.modtool.purge()
978+
# test with toolchain option
979+
for build_opt in cpp_headers_mode:
980+
init_config(build_options={"cpp_headers_search_path": build_opt, "silent": True})
981+
for tc_opt in cpp_headers_mode:
982+
tc = self.get_toolchain("foss", version="2018a")
983+
tc.set_options({"cpp-headers-search-path": tc_opt})
984+
with self.mocked_stdout_stderr():
985+
tc.prepare()
986+
for env_var in cpp_headers_mode[tc_opt]:
987+
assert_fail_msg = (
988+
f"Variable {env_var} required by cpp-headers-search-path toolchain option '{tc_opt}' "
989+
"not found in toolchain environment"
990+
)
991+
self.assertIn(env_var, [*tc.variables], assert_fail_msg)
992+
self.modtool.purge()
993+
# test wrong toolchain option
994+
tc = self.get_toolchain("foss", version="2018a")
995+
tc.set_options({"cpp-headers-search-path": "WRONG_MODE"})
996+
with self.mocked_stdout_stderr():
997+
error_pattern = "Unknown value selected for option cpp-headers-search-path"
998+
self.assertErrorRegex(EasyBuildError, error_pattern, tc.prepare)
999+
self.modtool.purge()
1000+
9581001
def test_cgoolf_toolchain(self):
9591002
"""Test for cgoolf toolchain."""
9601003
tc = self.get_toolchain("cgoolf", version="1.1.6")

0 commit comments

Comments
 (0)