Skip to content

Commit 8acb202

Browse files
committed
ts: include mod loaded from other path in conflict_unload
1 parent c9d0ac3 commit 8acb202

File tree

4 files changed

+95
-6
lines changed

4 files changed

+95
-6
lines changed

testsuite/modulefiles.4/foo/1.0

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,13 @@ if {[info exists env(TESTSUITE_CONFLICT_UNLOAD)]} {
6363
}
6464
}
6565
}
66+
if {[info exists env(TESTSUITE_MODULEPATH_OPT)]} {
67+
switch -- $env(TESTSUITE_MODULEPATH_OPT) {
68+
depre_trigger2_no_specific_path - depre_trigger2_with_specific_other_path {
69+
prereq --modulepath $env(TESTSUITEDIR)/modulefiles.3 qux/1
70+
}
71+
depre_trigger2_with_specific_same_path {
72+
prereq --modulepath $env(TESTSUITEDIR)/modulefiles.4 qux/1
73+
}
74+
}
75+
}

testsuite/modulefiles.4/modulepath-opt/1

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,5 +111,11 @@ if {[info exists env(TESTSUITE_MODULEPATH_OPT)]} {
111111
loaded_after_from_correct_dir {
112112
prereq --modulepath $env(TESTSUITEDIR)/modulefiles.4 qux/1
113113
}
114+
depre_trigger2_with_specific_same_path - depre_trigger2_with_specific_other_path {
115+
prereq --modulepath $env(TESTSUITEDIR)/modulefiles.4 qux/1
116+
}
117+
depre_trigger2_no_specific_path {
118+
prereq qux/1
119+
}
114120
}
115121
}

testsuite/modules.50-cmds/640-modulepath-opt.exp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -509,8 +509,19 @@ lappend ans [list set __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$mp]
509509
testouterr_cmd sh {load --auto modulepath-opt/1} $ans {}
510510

511511
setenv_var TESTSUITE_MODULEPATH_OPT dir3
512-
set tserr [msg_load qux/1 $err_modfromdiffpathloaded]\n\n[msg_load modulepath-opt/1 [err_reqlo_path qux/1]]
513-
testouterr_cmd sh {load --auto modulepath-opt/1} ERR $tserr
512+
if {[is_conf_enabled conflictunload]} {
513+
set ans [list]
514+
lappend ans [list set __MODULES_LMPREREQ modulepath-opt/1&qux/1]
515+
lappend ans [list set _LMFILES_ $modpath.2/qux/1:$mp/modulepath-opt/1]
516+
lappend ans [list set LOADEDMODULES qux/1:modulepath-opt/1]
517+
lappend ans [list set __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$modpath.2|$modpath.3]
518+
lappend ans [list set __MODULES_LMTAG qux/1&auto-loaded]
519+
set tserr [msg_top_load_conun modulepath-opt/1 {} qux/1 {} qux/1 {}]
520+
} else {
521+
set ans ERR
522+
set tserr [msg_load qux/1 $err_modfromdiffpathloaded]\n\n[msg_load modulepath-opt/1 [err_reqlo_path qux/1]]
523+
}
524+
testouterr_cmd sh {load --auto modulepath-opt/1} $ans $tserr
514525

515526
unsetenv_loaded_module
516527
setenv_var TESTSUITE_MODULEPATH_OPT cyclic_reqlo2

testsuite/modules.50-cmds/641-modulepath-loaded.exp

Lines changed: 66 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,14 @@ set tserr [msg_load qux/1 $err_modfromdiffpathloaded]\n\n[msg_load modulepath-op
4040
testouterr_cmd sh {load --auto modulepath-opt/1} ERR $tserr
4141

4242
setenv_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
5965
testouterr_cmd sh {load --auto modulepath-opt/1} ERR $tserr
6066

6167
setenv_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

6578
unsetenv_var __MODULES_LMVARIANT
6679
unsetenv_var MODULES_ADVANCED_VERSION_SPEC
@@ -165,6 +178,55 @@ testouterr_cmd sh {load --auto foo/1.0} $ans $tserr
165178
setenv_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

Comments
 (0)