@@ -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