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