@@ -40,8 +40,14 @@ set tserr [msg_load qux/1 $err_modfromdiffpathloaded]\n\n[msg_load modulepath-op
4040testouterr_cmd sh {load --auto modulepath-opt/1} ERR $tserr
4141
4242setenv_var MODULES_CONFLICT_UNLOAD 1
43- #FIXME: mp.4/qux/1 should be unloaded and replaced by mp3/qux/1
44- testouterr_cmd sh {load --auto modulepath-opt/1} ERR $tserr
43+ set ans [list]
44+ lappend ans [list set __MODULES_LMPREREQ modulepath-opt/1&qux/1]
45+ lappend ans [list set _LMFILES_ $modpath.3/qux/1:$mp/modulepath-opt/1]
46+ lappend ans [list set LOADEDMODULES qux/1:modulepath-opt/1]
47+ lappend ans [list set __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$modpath.3]
48+ lappend ans [list set __MODULES_LMTAG qux/1&auto-loaded]
49+ set tserr [msg_top_load_conun modulepath-opt/1 {} qux/1 {} qux/1 {}]
50+ testouterr_cmd sh {load --auto modulepath-opt/1} $ans $tserr
4551
4652
4753#
@@ -59,8 +65,15 @@ set tserr [msg_load qux/1{foo=val1} $err_modfromdiffpathloaded]\n\n[msg_load mod
5965testouterr_cmd sh {load --auto modulepath-opt/1} ERR $tserr
6066
6167setenv_var MODULES_CONFLICT_UNLOAD 1
62- #FIXME: mp.4/qux/1{foo=val2} should be unloaded and replaced by mp3/qux/1{foo=val1}
63- testouterr_cmd sh {load --auto modulepath-opt/1} ERR $tserr
68+ set ans [list]
69+ lappend ans [list set __MODULES_LMVARIANT qux/1&foo|val1|0|0]
70+ lappend ans [list set __MODULES_LMPREREQ modulepath-opt/1&qux/1\ foo=val1]
71+ lappend ans [list set _LMFILES_ $modpath.3/qux/1:$mp/modulepath-opt/1]
72+ lappend ans [list set LOADEDMODULES qux/1:modulepath-opt/1]
73+ lappend ans [list set __MODULES_LMPREREQPATH modulepath-opt/1&qux/1\ foo=val1&$modpath.3]
74+ lappend ans [list set __MODULES_LMTAG qux/1&auto-loaded]
75+ set tserr [msg_top_load_conun modulepath-opt/1 {} qux/1{foo=val2} {} qux/1{foo=val1} {}]
76+ testouterr_cmd sh {load --auto modulepath-opt/1} $ans $tserr
6477
6578unsetenv_var __MODULES_LMVARIANT
6679unsetenv_var MODULES_ADVANCED_VERSION_SPEC
@@ -165,6 +178,55 @@ testouterr_cmd sh {load --auto foo/1.0} $ans $tserr
165178setenv_var MODULEPATH $mp
166179
167180
181+ #
182+ # dependent reload trigger with requirement chain specific to modulepath or not
183+ #
184+
185+ setenv_var TESTSUITE_MODULEPATH_OPT depre_trigger2_no_specific_path
186+
187+ setenv_loaded_module [list qux/1 modulepath-opt/1] [list $mp/qux/1 $mp/modulepath-opt/1]
188+ setenv_var __MODULES_LMPREREQ modulepath-opt/1&qux/1
189+ unsetenv_var __MODULES_LMPREREQPATH
190+
191+ set ans [list]
192+ lappend ans [list set __MODULES_LMPREREQ foo/1.0&qux/1:modulepath-opt/1&qux/1]
193+ lappend ans [list set _LMFILES_ $modpath.3/qux/1:$mp/foo/1.0:$mp/modulepath-opt/1]
194+ lappend ans [list set LOADEDMODULES qux/1:foo/1.0:modulepath-opt/1]
195+ lappend ans [list set __MODULES_LMPREREQPATH foo/1.0&qux/1&$modpath.3]
196+ lappend ans [list set __MODULES_LMTAG qux/1&auto-loaded]
197+ set tserr [msg_top_load_conun foo/1.0 {} qux/1 {} qux/1 {modulepath-opt/1}]
198+ testouterr_cmd sh {load --auto foo/1.0} $ans $tserr
199+ testouterr_cmd sh {load --force --auto foo/1.0} $ans $tserr
200+
201+
202+ setenv_var TESTSUITE_MODULEPATH_OPT depre_trigger2_with_specific_same_path
203+
204+ setenv_loaded_module [list qux/1 modulepath-opt/1] [list $mp/qux/1 $mp/modulepath-opt/1]
205+ setenv_var __MODULES_LMPREREQ modulepath-opt/1&qux/1
206+ setenv_var __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$mp
207+
208+ set ans [list]
209+ lappend ans [list set __MODULES_LMPREREQ modulepath-opt/1&qux/1:foo/1.0&qux/1]
210+ lappend ans [list set _LMFILES_ $mp/qux/1:$mp/modulepath-opt/1:$mp/foo/1.0]
211+ lappend ans [list set LOADEDMODULES qux/1:modulepath-opt/1:foo/1.0]
212+ lappend ans [list set __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$mp:foo/1.0&qux/1&$mp]
213+ testouterr_cmd sh {load --auto foo/1.0} $ans {}
214+ testouterr_cmd sh {load --force --auto foo/1.0} $ans {}
215+
216+
217+ setenv_var TESTSUITE_MODULEPATH_OPT depre_trigger2_with_specific_other_path
218+
219+ set ans [list]
220+ lappend ans [list set __MODULES_LMPREREQ foo/1.0&qux/1]
221+ lappend ans [list set _LMFILES_ $modpath.3/qux/1:$mp/foo/1.0]
222+ lappend ans [list set LOADEDMODULES qux/1:foo/1.0]
223+ lappend ans [list set __MODULES_LMTAG qux/1&auto-loaded]
224+ lappend ans [list set __MODULES_LMPREREQPATH foo/1.0&qux/1&$modpath.3]
225+ set tserr [msg_top_load_conun foo/1.0 {} qux/1 {} qux/1 {modulepath-opt/1 {}}]
226+ testouterr_cmd sh {load --auto foo/1.0} $ans $tserr
227+ testouterr_cmd sh {load --force --auto foo/1.0} $ans $tserr
228+
229+
168230#
169231# Cleanup
170232#
0 commit comments