ts: add sub modfile module switch tests in 50/616

This commit is contained in:
Xavier Delaruelle
2023-12-30 09:43:07 +01:00
parent 18754e8435
commit 1e9eab7cb7
3 changed files with 436 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
#%Module
module load lerr/1.0

View File

@@ -0,0 +1 @@
#%Module

View File

@@ -122,6 +122,13 @@ lappend ans_mfile_unload_bad [list set _LMFILES_ $mp/foo/1.0:$mp/lerr/1.0]
lappend ans_mfile_unload_bad [list set LOADEDMODULES foo/1.0:lerr/1.0]
lappend ans_mfile_unload_bad [list set __MODULES_LMTAG foo/1.0&auto-loaded]
set ans_sub_mfile_unload_bad [list]
lappend ans_sub_mfile_unload_bad [list set __MODULES_LMCONFLICT lerr/1.0&err/1.0]
lappend ans_sub_mfile_unload_bad [list set __MODULES_LMPREREQ lerr/1.0&foo/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_mfile_unload_bad [list set _LMFILES_ $mp/foo/1.0:$mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_mfile_unload_bad [list set LOADEDMODULES foo/1.0:lerr/1.0:llerr/1.0]
lappend ans_sub_mfile_unload_bad [list set __MODULES_LMTAG foo/1.0&auto-loaded:lerr/1.0&auto-loaded]
set ans_mfile_both_error [list]
lappend ans_mfile_both_error [list set __MODULES_LMCONFLICT lerr/1.0&err/1.0]
lappend ans_mfile_both_error [list set __MODULES_LMPREREQ lerr/1.0&err/1.1]
@@ -129,6 +136,14 @@ lappend ans_mfile_both_error [list set LOADEDMODULES lerr/1.0]
lappend ans_mfile_both_error [list set _LMFILES_ $mp/lerr/1.0]
lappend ans_mfile_both_error [list ERR]
set ans_sub_mfile_both_error [list]
lappend ans_sub_mfile_both_error [list set __MODULES_LMCONFLICT lerr/1.0&err/1.0]
lappend ans_sub_mfile_both_error [list set __MODULES_LMPREREQ lerr/1.0&err/1.1:llerr/1.0&lerr/1.0]
lappend ans_sub_mfile_both_error [list set LOADEDMODULES lerr/1.0:llerr/1.0]
lappend ans_sub_mfile_both_error [list set _LMFILES_ $mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_mfile_both_error [list set __MODULES_LMTAG lerr/1.0&auto-loaded]
lappend ans_sub_mfile_both_error [list ERR]
set ans_mfile_depre_break [list]
lappend ans_mfile_depre_break [list set TS1 {}]
lappend ans_mfile_depre_break [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
@@ -139,6 +154,16 @@ lappend ans_mfile_depre_break [list set __MODULES_LMPREREQ lerr/1.0&setenv/1.0]
lappend ans_mfile_depre_break [list set __MODULES_LMTAG setenv/1.0&auto-loaded]
lappend ans_mfile_depre_break [list ERR]
set ans_sub_mfile_depre_break [list]
lappend ans_sub_mfile_depre_break [list set TS1 {}]
lappend ans_sub_mfile_depre_break [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_sub_mfile_depre_break [list set TS2 {}]
lappend ans_sub_mfile_depre_break [list set LOADEDMODULES setenv/1.0:lerr/1.0:llerr/1.0]
lappend ans_sub_mfile_depre_break [list set _LMFILES_ $mp/setenv/1.0:$mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_mfile_depre_break [list set __MODULES_LMPREREQ lerr/1.0&setenv/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_mfile_depre_break [list set __MODULES_LMTAG setenv/1.0&auto-loaded:lerr/1.0&auto-loaded]
lappend ans_sub_mfile_depre_break [list ERR]
set ans_mfile_depun_break [list]
lappend ans_mfile_depun_break [list set TS1 {}]
lappend ans_mfile_depun_break [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
@@ -148,6 +173,15 @@ lappend ans_mfile_depun_break [list set _LMFILES_ $mp/setenv/1.0:$mp/err/1.0:$mp
lappend ans_mfile_depun_break [list set LOADEDMODULES setenv/1.0:err/1.0:lerr/1.0]
lappend ans_mfile_depun_break [list set __MODULES_LMTAG setenv/1.0&auto-loaded]
set ans_sub_mfile_depun_break [list]
lappend ans_sub_mfile_depun_break [list set TS1 {}]
lappend ans_sub_mfile_depun_break [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_sub_mfile_depun_break [list set TS2 {}]
lappend ans_sub_mfile_depun_break [list set __MODULES_LMPREREQ err/1.0&foo:lerr/1.0&setenv/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_mfile_depun_break [list set _LMFILES_ $mp/setenv/1.0:$mp/err/1.0:$mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_mfile_depun_break [list set LOADEDMODULES setenv/1.0:err/1.0:lerr/1.0:llerr/1.0]
lappend ans_sub_mfile_depun_break [list set __MODULES_LMTAG setenv/1.0&auto-loaded:lerr/1.0&auto-loaded]
set ans_mfile_load_forbidden [list]
lappend ans_mfile_load_forbidden [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_mfile_load_forbidden [list set __MODULES_LMPREREQ lerr/1.0&err/1.0]
@@ -155,8 +189,18 @@ lappend ans_mfile_load_forbidden [list set _LMFILES_ $mp/lerr/1.0]
lappend ans_mfile_load_forbidden [list set LOADEDMODULES lerr/1.0]
lappend ans_mfile_load_forbidden [list ERR]
set ans_sub_mfile_load_forbidden [list]
lappend ans_sub_mfile_load_forbidden [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_sub_mfile_load_forbidden [list set __MODULES_LMPREREQ lerr/1.0&err/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_mfile_load_forbidden [list set _LMFILES_ $mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_mfile_load_forbidden [list set LOADEDMODULES lerr/1.0:llerr/1.0]
lappend ans_sub_mfile_load_forbidden [list set __MODULES_LMTAG lerr/1.0&auto-loaded]
lappend ans_sub_mfile_load_forbidden [list ERR]
set ans_mfile_unload_sticky $ans_mfile_unload_bad
set ans_sub_mfile_unload_sticky $ans_sub_mfile_unload_bad
set ans_mfile_unload_super_sticky [list]
lappend ans_mfile_unload_super_sticky [list set __MODULES_LMCONFLICT lerr/1.0&err/1.0]
lappend ans_mfile_unload_super_sticky [list set __MODULES_LMPREREQ lerr/1.0&foo/1.0]
@@ -165,14 +209,31 @@ lappend ans_mfile_unload_super_sticky [list set LOADEDMODULES err/1.0:foo/1.0:le
lappend ans_mfile_unload_super_sticky [list set __MODULES_LMTAG err/1.0&super-sticky:foo/1.0&auto-loaded]
lappend ans_mfile_unload_super_sticky [list ERR]
set ans_sub_mfile_unload_super_sticky [list]
lappend ans_sub_mfile_unload_super_sticky [list set __MODULES_LMCONFLICT lerr/1.0&err/1.0]
lappend ans_sub_mfile_unload_super_sticky [list set __MODULES_LMPREREQ lerr/1.0&foo/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_mfile_unload_super_sticky [list set _LMFILES_ $mp/err/1.0:$mp/foo/1.0:$mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_mfile_unload_super_sticky [list set LOADEDMODULES err/1.0:foo/1.0:lerr/1.0:llerr/1.0]
lappend ans_sub_mfile_unload_super_sticky [list set __MODULES_LMTAG err/1.0&super-sticky:foo/1.0&auto-loaded:lerr/1.0&auto-loaded]
lappend ans_sub_mfile_unload_super_sticky [list ERR]
set ans_mfile_unload_not_loaded $ans_mfile_unload_bad
set ans_sub_mfile_unload_not_loaded $ans_sub_mfile_unload_bad
set ans_mfile_load_already_loaded [list]
lappend ans_mfile_load_already_loaded [list set __MODULES_LMCONFLICT lerr/1.0&err/1.0]
lappend ans_mfile_load_already_loaded [list set __MODULES_LMPREREQ lerr/1.0&foo/1.0]
lappend ans_mfile_load_already_loaded [list set _LMFILES_ $mp/foo/1.0:$mp/lerr/1.0]
lappend ans_mfile_load_already_loaded [list set LOADEDMODULES foo/1.0:lerr/1.0]
set ans_sub_mfile_load_already_loaded [list]
lappend ans_sub_mfile_load_already_loaded [list set __MODULES_LMCONFLICT lerr/1.0&err/1.0]
lappend ans_sub_mfile_load_already_loaded [list set __MODULES_LMPREREQ lerr/1.0&foo/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_mfile_load_already_loaded [list set _LMFILES_ $mp/foo/1.0:$mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_mfile_load_already_loaded [list set LOADEDMODULES foo/1.0:lerr/1.0:llerr/1.0]
lappend ans_sub_mfile_load_already_loaded [list set __MODULES_LMTAG lerr/1.0&auto-loaded]
set ans_unload_mfile_error [list]
lappend ans_unload_mfile_error [list unset __MODULES_LMCONFLICT]
lappend ans_unload_mfile_error [list set LOADEDMODULES err/1.0]
@@ -180,6 +241,22 @@ lappend ans_unload_mfile_error [list set _LMFILES_ $mp/err/1.0]
lappend ans_unload_mfile_error [list unset __MODULES_LMPREREQ]
lappend ans_unload_mfile_error [list ERR]
set ans_unload_sub_mfile_error [list]
lappend ans_unload_sub_mfile_error [list unset __MODULES_LMCONFLICT]
lappend ans_unload_sub_mfile_error [list set LOADEDMODULES err/1.0]
lappend ans_unload_sub_mfile_error [list set _LMFILES_ $mp/err/1.0]
lappend ans_unload_sub_mfile_error [list unset __MODULES_LMPREREQ]
lappend ans_unload_sub_mfile_error [list set __MODULES_LMTAG err/1.0&auto-loaded]
lappend ans_unload_sub_mfile_error [list ERR]
set ans_unload_sub_mfile_error_noauto [list]
lappend ans_unload_sub_mfile_error_noauto [list unset __MODULES_LMCONFLICT]
lappend ans_unload_sub_mfile_error_noauto [list unset __MODULES_LMPREREQ]
lappend ans_unload_sub_mfile_error_noauto [list set _LMFILES_ $mp/err/1.0]
lappend ans_unload_sub_mfile_error_noauto [list set LOADEDMODULES err/1.0]
lappend ans_unload_sub_mfile_error_noauto [list set __MODULES_LMTAG err/1.0&auto-loaded]
lappend ans_unload_sub_mfile_error_noauto [list ERR]
set ans_unload_mfile_error_force [list]
lappend ans_unload_mfile_error_force [list unset __MODULES_LMCONFLICT]
lappend ans_unload_mfile_error_force [list unset __MODULES_LMPREREQ]
@@ -197,6 +274,16 @@ lappend ans_modfile_depun_sticky [list set __MODULES_LMPREREQ lerr/1.0&setenv/1.
lappend ans_modfile_depun_sticky [list set __MODULES_LMTAG setenv/1.0&auto-loaded]
lappend ans_modfile_depun_sticky [list ERR]
set ans_sub_modfile_depun_sticky [list]
lappend ans_sub_modfile_depun_sticky [list set TS1 {}]
lappend ans_sub_modfile_depun_sticky [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_sub_modfile_depun_sticky [list set TS2 {}]
lappend ans_sub_modfile_depun_sticky [list set LOADEDMODULES setenv/1.0:lerr/1.0:llerr/1.0]
lappend ans_sub_modfile_depun_sticky [list set _LMFILES_ $mp/setenv/1.0:$mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_modfile_depun_sticky [list set __MODULES_LMPREREQ lerr/1.0&setenv/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_modfile_depun_sticky [list set __MODULES_LMTAG setenv/1.0&auto-loaded:lerr/1.0&auto-loaded]
lappend ans_sub_modfile_depun_sticky [list ERR]
set ans_modfile_depun_sticky_force [list]
lappend ans_modfile_depun_sticky_force [list set TS1 {}]
lappend ans_modfile_depun_sticky_force [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
@@ -206,6 +293,15 @@ lappend ans_modfile_depun_sticky_force [list set _LMFILES_ $mp/setenv/1.0:$mp/er
lappend ans_modfile_depun_sticky_force [list set LOADEDMODULES setenv/1.0:err/1.0:lerr/1.0]
lappend ans_modfile_depun_sticky_force [list set __MODULES_LMTAG setenv/1.0&auto-loaded:err/1.0&sticky]
set ans_sub_modfile_depun_sticky_force [list]
lappend ans_sub_modfile_depun_sticky_force [list set TS1 {}]
lappend ans_sub_modfile_depun_sticky_force [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_sub_modfile_depun_sticky_force [list set TS2 {}]
lappend ans_sub_modfile_depun_sticky_force [list set __MODULES_LMPREREQ err/1.0&foo:lerr/1.0&setenv/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_modfile_depun_sticky_force [list set _LMFILES_ $mp/setenv/1.0:$mp/err/1.0:$mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_modfile_depun_sticky_force [list set LOADEDMODULES setenv/1.0:err/1.0:lerr/1.0:llerr/1.0]
lappend ans_sub_modfile_depun_sticky_force [list set __MODULES_LMTAG setenv/1.0&auto-loaded:err/1.0&sticky:lerr/1.0&auto-loaded]
set ans_modfile_depun_super_sticky_force [list]
lappend ans_modfile_depun_super_sticky_force [list set TS1 {}]
lappend ans_modfile_depun_super_sticky_force [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
@@ -215,6 +311,24 @@ lappend ans_modfile_depun_super_sticky_force [list set _LMFILES_ $mp/setenv/1.0:
lappend ans_modfile_depun_super_sticky_force [list set LOADEDMODULES setenv/1.0:err/1.0:lerr/1.0]
lappend ans_modfile_depun_super_sticky_force [list set __MODULES_LMTAG setenv/1.0&auto-loaded:err/1.0&super-sticky]
set ans_sub_modfile_depun_super_sticky_force [list]
lappend ans_sub_modfile_depun_super_sticky_force [list set TS1 {}]
lappend ans_sub_modfile_depun_super_sticky_force [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_sub_modfile_depun_super_sticky_force [list set TS2 {}]
lappend ans_sub_modfile_depun_super_sticky_force [list set __MODULES_LMPREREQ err/1.0&foo:lerr/1.0&setenv/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_modfile_depun_super_sticky_force [list set _LMFILES_ $mp/setenv/1.0:$mp/err/1.0:$mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_modfile_depun_super_sticky_force [list set LOADEDMODULES setenv/1.0:err/1.0:lerr/1.0:llerr/1.0]
lappend ans_sub_modfile_depun_super_sticky_force [list set __MODULES_LMTAG setenv/1.0&auto-loaded:err/1.0&super-sticky:lerr/1.0&auto-loaded]
set ans_modfile_depun_sticky_noauto_force [list]
lappend ans_modfile_depun_sticky_noauto_force [list set TS1 {}]
lappend ans_modfile_depun_sticky_noauto_force [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_modfile_depun_sticky_noauto_force [list set TS2 {}]
lappend ans_modfile_depun_sticky_noauto_force [list set __MODULES_LMPREREQ err/1.0&foo:lerr/1.0&setenv/1.0]
lappend ans_modfile_depun_sticky_noauto_force [list set _LMFILES_ $mp/err/1.0:$mp/setenv/1.0:$mp/lerr/1.0]
lappend ans_modfile_depun_sticky_noauto_force [list set LOADEDMODULES err/1.0:setenv/1.0:lerr/1.0]
lappend ans_modfile_depun_sticky_noauto_force [list set __MODULES_LMTAG err/1.0&sticky:setenv/1.0&auto-loaded]
set ans_modfile_depun_sticky_noauto_force [list]
lappend ans_modfile_depun_sticky_noauto_force [list set TS1 {}]
lappend ans_modfile_depun_sticky_noauto_force [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
@@ -239,6 +353,20 @@ lappend ans_modfile_unload_depun_sticky [list set __MODULES_LMPREREQ err/1.0&foo
lappend ans_modfile_unload_depun_sticky [list set _LMFILES_ $mp/foo/1.0:$mp/err/1.0]
lappend ans_modfile_unload_depun_sticky [list set LOADEDMODULES foo/1.0:err/1.0]
set ans_sub_modfile_unload_depun_sticky [list]
lappend ans_sub_modfile_unload_depun_sticky [list unset __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_sub_modfile_unload_depun_sticky [list set __MODULES_LMPREREQ err/1.0&foo]
lappend ans_sub_modfile_unload_depun_sticky [list set _LMFILES_ $mp/foo/1.0:$mp/err/1.0]
lappend ans_sub_modfile_unload_depun_sticky [list set LOADEDMODULES foo/1.0:err/1.0]
lappend ans_sub_modfile_unload_depun_sticky [list set __MODULES_LMTAG foo/1.0&auto-loaded:err/1.0&sticky]
set ans_sub_modfile_unload_depun_super_sticky [list]
lappend ans_sub_modfile_unload_depun_super_sticky [list unset __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_sub_modfile_unload_depun_super_sticky [list set __MODULES_LMPREREQ err/1.0&foo]
lappend ans_sub_modfile_unload_depun_super_sticky [list set _LMFILES_ $mp/foo/1.0:$mp/err/1.0]
lappend ans_sub_modfile_unload_depun_super_sticky [list set LOADEDMODULES foo/1.0:err/1.0]
lappend ans_sub_modfile_unload_depun_super_sticky [list set __MODULES_LMTAG foo/1.0&auto-loaded:err/1.0&super-sticky]
set ans_modfile_urequn_sticky [list]
lappend ans_modfile_urequn_sticky [list set TS1 {}]
lappend ans_modfile_urequn_sticky [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
@@ -249,6 +377,16 @@ lappend ans_modfile_urequn_sticky [list set __MODULES_LMPREREQ lerr/1.0&setenv/1
lappend ans_modfile_urequn_sticky [list set __MODULES_LMTAG err/1.0&auto-loaded&sticky:setenv/1.0&auto-loaded]
lappend ans_modfile_urequn_sticky [list ERR]
set ans_sub_modfile_urequn_sticky [list]
lappend ans_sub_modfile_urequn_sticky [list set TS1 {}]
lappend ans_sub_modfile_urequn_sticky [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_sub_modfile_urequn_sticky [list set TS2 {}]
lappend ans_sub_modfile_urequn_sticky [list set LOADEDMODULES err/1.0:setenv/1.0:lerr/1.0:llerr/1.0]
lappend ans_sub_modfile_urequn_sticky [list set _LMFILES_ $mp/err/1.0:$mp/setenv/1.0:$mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_modfile_urequn_sticky [list set __MODULES_LMPREREQ lerr/1.0&setenv/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_modfile_urequn_sticky [list set __MODULES_LMTAG err/1.0&auto-loaded&sticky:setenv/1.0&auto-loaded:lerr/1.0&auto-loaded]
lappend ans_sub_modfile_urequn_sticky [list ERR]
set ans_modfile_urequn_sticky_force [list]
lappend ans_modfile_urequn_sticky_force [list set TS1 {}]
lappend ans_modfile_urequn_sticky_force [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
@@ -258,6 +396,15 @@ lappend ans_modfile_urequn_sticky_force [list set _LMFILES_ $mp/setenv/1.0:$mp/l
lappend ans_modfile_urequn_sticky_force [list set LOADEDMODULES setenv/1.0:lerr/1.0]
lappend ans_modfile_urequn_sticky_force [list set __MODULES_LMTAG setenv/1.0&auto-loaded]
set ans_sub_modfile_urequn_sticky_force [list]
lappend ans_sub_modfile_urequn_sticky_force [list set TS1 {}]
lappend ans_sub_modfile_urequn_sticky_force [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_sub_modfile_urequn_sticky_force [list set TS2 {}]
lappend ans_sub_modfile_urequn_sticky_force [list set __MODULES_LMPREREQ lerr/1.0&setenv/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_modfile_urequn_sticky_force [list set _LMFILES_ $mp/setenv/1.0:$mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_modfile_urequn_sticky_force [list set LOADEDMODULES setenv/1.0:lerr/1.0:llerr/1.0]
lappend ans_sub_modfile_urequn_sticky_force [list set __MODULES_LMTAG setenv/1.0&auto-loaded:lerr/1.0&auto-loaded]
set ans_modfile_urequn_super_sticky_force [list]
lappend ans_modfile_urequn_super_sticky_force [list set TS1 {}]
lappend ans_modfile_urequn_super_sticky_force [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
@@ -268,6 +415,16 @@ lappend ans_modfile_urequn_super_sticky_force [list set __MODULES_LMPREREQ lerr/
lappend ans_modfile_urequn_super_sticky_force [list set __MODULES_LMTAG err/1.0&auto-loaded&super-sticky:setenv/1.0&auto-loaded]
lappend ans_modfile_urequn_super_sticky_force [list ERR]
set ans_sub_modfile_urequn_super_sticky_force [list]
lappend ans_sub_modfile_urequn_super_sticky_force [list set TS1 {}]
lappend ans_sub_modfile_urequn_super_sticky_force [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
lappend ans_sub_modfile_urequn_super_sticky_force [list set TS2 {}]
lappend ans_sub_modfile_urequn_super_sticky_force [list set LOADEDMODULES err/1.0:setenv/1.0:lerr/1.0:llerr/1.0]
lappend ans_sub_modfile_urequn_super_sticky_force [list set _LMFILES_ $mp/err/1.0:$mp/setenv/1.0:$mp/lerr/1.0:$mp/llerr/1.0]
lappend ans_sub_modfile_urequn_super_sticky_force [list set __MODULES_LMPREREQ lerr/1.0&setenv/1.0:llerr/1.0&lerr/1.0]
lappend ans_sub_modfile_urequn_super_sticky_force [list set __MODULES_LMTAG err/1.0&auto-loaded&super-sticky:setenv/1.0&auto-loaded:lerr/1.0&auto-loaded]
lappend ans_sub_modfile_urequn_super_sticky_force [list ERR]
set ans_modfile_urequn_sticky_noauto [list]
lappend ans_modfile_urequn_sticky_noauto [list set TS1 {}]
lappend ans_modfile_urequn_sticky_noauto [list set __MODULES_LMCONFLICT lerr/1.0&foo/1.0]
@@ -2271,6 +2428,282 @@ unsetenv_var __MODULES_LMCONFLICT
unsetenv_var __MODULES_LMTAG
#
# module switch in modulefile, not top modulefile, continue behavior (no change on modulefile cmd)
#
setenv_var MODULES_ABORT_ON_ERROR ml:reload
set ts_add_llerr_reqlo_err \n\n[msg_load llerr/1.0 [err_reqlo lerr/1.0]]
# bad code on unloading module
setenv_loaded_module [list err/1.0] [list $mp/err/1.0]
setenv_var TESTSUITE_ABORT_ON_ERROR switch_unload_bad
testouterr_cmd bash {load llerr/1.0} ERR $ts_unload_bad$ts_add_llerr_reqlo_err
set ts_sub_unload_bad_force [msg_unload err/1.0 [msg_modwarn {invalid command name "bad"} bad $mp/err/1.0 2 {} {} {} $custom_error_trace]]
append ts_sub_unload_bad_force \n\n[msg_top_load llerr/1.0 err/1.0 {foo/1.0 lerr/1.0} {}]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_mfile_unload_bad $ts_sub_unload_bad_force
# error on unloading and loading modules
setenv_var TESTSUITE_ABORT_ON_ERROR switch_both_error
testouterr_cmd bash {load llerr/1.0} ERR $ts_both_error$ts_add_llerr_reqlo_err
set ts_sub_both_error_force [msg_unload err/1.0 [msg_modwarn msg {error msg} $mp/err/1.0 2 {} {} {} $custom_error_trace]]
append ts_sub_both_error_force \n\n[msg_load err/1.1 [msg_moderr msg {error msg} $mp/err/1.0 2 {} {} {} $custom_error_trace]]
append ts_sub_both_error_force \n\n[msg_load {lerr/1.0 <aL>} [err_reqlof err/1.1]]
append ts_sub_both_error_force \n\n[msg_top_load llerr/1.0 err/1.0 {lerr/1.0} {}]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_mfile_both_error $ts_sub_both_error_force
# dependent reload module breaks on unload and load
setenv_var TESTSUITE_ABORT_ON_ERROR switch_depre_break
setenv_loaded_module [list foo/1.0 err/1.0] [list $mp/foo/1.0 $mp/err/1.0]
setenv_var __MODULES_LMPREREQ err/1.0&err/1.0|foo
testouterr_cmd bash {load llerr/1.0} ERR $ts_depre_break$ts_add_llerr_reqlo_err
set ts_sub_depre_break_force [msg_unload err/1.0 $warn_evalabort]
append ts_sub_depre_break_force \n\n[msg_load err/1.0 $err_evalabort]
append ts_sub_depre_break_force \n\n[msg_top_load llerr/1.0 foo/1.0 {setenv/1.0 lerr/1.0} {err/1.0 {}} [err_depref err/1.0]]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_mfile_depre_break $ts_sub_depre_break_force
# dependent unload module breaks on unload
setenv_var TESTSUITE_ABORT_ON_ERROR switch_depun_break
setenv_loaded_module [list foo/1.0 err/1.0] [list $mp/foo/1.0 $mp/err/1.0]
setenv_var __MODULES_LMPREREQ err/1.0&foo
testouterr_cmd bash {load llerr/1.0} ERR $ts_depun_break$ts_add_llerr_reqlo_err
testouterr_cmd bash {load --no-auto llerr/1.0} ERR $ts_depun_break_noauto$ts_add_llerr_reqlo_err
set ts_sub_depun_break_force [msg_unload err/1.0 $warn_evalabort]
append ts_sub_depun_break_force \n\n[msg_load err/1.0 [err_reqmisf foo]]
append ts_sub_depun_break_force \n\n[msg_top_load llerr/1.0 foo/1.0 {setenv/1.0 lerr/1.0} err/1.0]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_mfile_depun_break $ts_sub_depun_break_force
# dependent reload module breaks on load
setenv_var TESTSUITE_ABORT_ON_ERROR switch_depre_load_break
setenv_loaded_module [list foo/1.0 err/1.0] [list $mp/foo/1.0 $mp/err/1.0]
setenv_var __MODULES_LMPREREQ err/1.0&err/1.0|foo
set ts_sub_depre_load_break [msg_load err/1.0 $err_evalabort]
append ts_sub_depre_load_break \n\n[msg_top_load llerr/1.0 {foo/1.0} {setenv/1.0 lerr/1.0} {{err/1.0} {}} [err_depref err/1.0]]
testouterr_cmd bash {load llerr/1.0} $ans_sub_mfile_depre_break $ts_sub_depre_load_break
set ts_sub_depre_load_break_force [msg_load err/1.0 $err_evalabort]
append ts_sub_depre_load_break_force \n\n[msg_top_load llerr/1.0 foo/1.0 {setenv/1.0 lerr/1.0} {err/1.0 {}} [err_depref err/1.0]]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_mfile_depre_break $ts_sub_depre_load_break_force
# loading module forbidden
setenv_var TESTSUITE_ABORT_ON_ERROR switch_forbidden
setenv_loaded_module [list foo/1.0] [list $mp/foo/1.0]
unsetenv_var __MODULES_LMPREREQ
testouterr_cmd bash {load llerr/1.0} ERR $ts_load_forbidden$ts_add_llerr_reqlo_err
set ts_sub_load_forbidden_force [msg_load {lerr/1.0 <aL>} [err_accessdenied err/1.0] [err_reqlof err/1.0]]
append ts_sub_load_forbidden_force \n\n[msg_top_load llerr/1.0 foo/1.0 {lerr/1.0} {}]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_mfile_load_forbidden $ts_sub_load_forbidden_force
# unloading module is sticky
setenv_var TESTSUITE_ABORT_ON_ERROR switch_sticky
setenv_loaded_module [list err/1.0] [list $mp/err/1.0]
setenv_var __MODULES_LMTAG err/1.0&sticky
testouterr_cmd bash {load llerr/1.0} ERR $ts_unload_sticky$ts_add_llerr_reqlo_err
set ts_sub_unload_sticky_force [msg_unload {err/1.0 <S>} $err_stickyunloadf]
append ts_sub_unload_sticky_force \n\n[msg_top_load llerr/1.0 err/1.0 {foo/1.0 lerr/1.0} {}]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_mfile_unload_sticky $ts_sub_unload_sticky_force
# unloading module is super-sticky
setenv_var TESTSUITE_ABORT_ON_ERROR switch_super-sticky
setenv_loaded_module [list err/1.0] [list $mp/err/1.0]
setenv_var __MODULES_LMTAG err/1.0&super-sticky
testouterr_cmd bash {load llerr/1.0} ERR $ts_unload_super_sticky$ts_add_llerr_reqlo_err
set ts_sub_unload_super_sticky_force [msg_unload {err/1.0 <sS>} $err_superstickyunload]
append ts_sub_unload_super_sticky_force \n\n[msg_load {lerr/1.0 <aL>} [err_conunf err/1.0]]
append ts_sub_unload_super_sticky_force \n\n[msg_top_load llerr/1.0 {} {foo/1.0 lerr/1.0} {}]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_mfile_unload_super_sticky $ts_sub_unload_super_sticky_force
# unloading module not loaded
setenv_var TESTSUITE_ABORT_ON_ERROR switch_not_loaded
unsetenv_loaded_module
unsetenv_var __MODULES_LMTAG
set ts_sub_unload_not_loaded [msg_top_load llerr/1.0 {} {foo/1.0 lerr/1.0} {}]
testouterr_cmd bash {load llerr/1.0} $ans_sub_mfile_unload_not_loaded $ts_sub_unload_not_loaded
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_mfile_unload_not_loaded $ts_sub_unload_not_loaded
# loading module already loaded
setenv_var TESTSUITE_ABORT_ON_ERROR switch_already_loaded
setenv_loaded_module [list err/1.0 foo/1.0] [list $mp/err/1.0 $mp/foo/1.0]
set ts_sub_load_already_loaded [msg_top_load llerr/1.0 err/1.0 {lerr/1.0} {}]
testouterr_cmd bash {load llerr/1.0} $ans_sub_mfile_load_already_loaded $ts_sub_load_already_loaded
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_mfile_load_already_loaded $ts_sub_load_already_loaded
# error during unload of switch-on module when unloading modulefile that "module switch"
setenv_var TESTSUITE_ABORT_ON_ERROR unload_switch_error
setenv_loaded_module [list err/1.0 lerr/1.0 llerr/1.0] [list $mp/err/1.0 $mp/lerr/1.0 $mp/llerr/1.0]
setenv_var __MODULES_LMPREREQ lerr/1.0&err/1.0:llerr/1.0&lerr/1.0
setenv_var __MODULES_LMCONFLICT lerr/1.0&foo/1.0
setenv_var __MODULES_LMTAG err/1.0&auto-loaded:lerr/1.0&auto-loaded
set ts_sub_unload_mfile_error [msg_unload {err/1.0 <aL>} [msg_moderr msg {error msg} $mp/err/1.0 2 {} {} {} $custom_error_trace]]
append ts_sub_unload_mfile_error \n\n[msg_top_unload llerr/1.0 {} {lerr/1.0} {} [err_urequn err/1.0]]
testouterr_cmd bash {unload llerr/1.0} $ans_unload_sub_mfile_error $ts_sub_unload_mfile_error
testouterr_cmd bash {unload --no-auto llerr/1.0} $ans_unload_sub_mfile_error_noauto $ts_sub_unload_mfile_error
set ts_sub_unload_mfile_error_force [msg_unload {err/1.0 <aL>} [msg_modwarn msg {error msg} $mp/err/1.0 2 {} {} {} $custom_error_trace]]
append ts_sub_unload_mfile_error_force \n\n[msg_top_unload llerr/1.0 {} {lerr/1.0 err/1.0} {}]
testouterr_cmd bash {unload --force llerr/1.0} $ans_unload_mfile_error_force $ts_sub_unload_mfile_error_force
testouterr_cmd bash {unload --no-auto --force llerr/1.0} $ans_unload_mfile_error_force $ts_sub_unload_mfile_error_force
unsetenv_var __MODULES_LMPREREQ
unsetenv_var __MODULES_LMCONFLICT
unsetenv_var __MODULES_LMTAG
#
# dependent unload mechanism with sticky modules when loading modulefile doing module switch (not top modulefile)
#
setenv_loaded_module [list foo/1.0 err/1.0] [list $mp/foo/1.0 $mp/err/1.0]
setenv_var __MODULES_LMPREREQ err/1.0&foo
setenv_var __MODULES_LMTAG err/1.0&sticky
# dependent module to unload is sticky, dependency declared with prereq
setenv_var TESTSUITE_ABORT_ON_ERROR switch_depun_sticky
set ts_switch_depun_sticky [msg_load {err/1.0} [err_reqmis foo]]
append ts_switch_depun_sticky \n\n[msg_top_load {llerr/1.0} {foo/1.0} {setenv/1.0 lerr/1.0} {{err/1.0} {}} [err_depref err/1.0]]
testouterr_cmd bash {load llerr/1.0} $ans_sub_modfile_depun_sticky $ts_switch_depun_sticky
set ts_switch_depun_sticky_force [msg_load {err/1.0 <S>} [err_reqmisf foo]]
append ts_switch_depun_sticky_force \n\n[msg_top_load {llerr/1.0} {foo/1.0} {setenv/1.0 lerr/1.0} {err/1.0}]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_modfile_depun_sticky_force $ts_switch_depun_sticky_force
# dependent module to unload is super-sticky, dependency declared with prereq
setenv_var TESTSUITE_ABORT_ON_ERROR switch_depun_super-sticky
setenv_var __MODULES_LMTAG err/1.0&super-sticky
set ts_switch_depun_super_sticky_force [msg_load {err/1.0 <sS>} [err_reqmisf foo]]
append ts_switch_depun_super_sticky_force \n\n[msg_top_load {llerr/1.0} {foo/1.0} {setenv/1.0 lerr/1.0} {err/1.0}]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_modfile_depun_super_sticky_force $ts_switch_depun_super_sticky_force
#
# dependent unload mechanism with sticky modules when unloading modulefile doing module switch (not top modulefile)
#
setenv_loaded_module [list foo/1.0 lerr/1.0 err/1.0 llerr/1.0] [list $mp/foo/1.0 $mp/lerr/1.0 $mp/err/1.0 $mp/llerr/1.0]
setenv_var __MODULES_LMPREREQ lerr/1.0&foo/1.0:err/1.0&foo:llerr/1.0&lerr/1.0
setenv_var __MODULES_LMCONFLICT lerr/1.0&setenv/1.0
setenv_var __MODULES_LMTAG foo/1.0&auto-loaded:err/1.0&sticky:lerr/1.0&auto-loaded
# dependent module to unload is sticky, dependency declared with module load
setenv_var TESTSUITE_ABORT_ON_ERROR unload_switch_load_depun_sticky
set ts_sub_unload_switch_depun_sticky [msg_top_unload llerr/1.0 {} {lerr/1.0} {}]
testouterr_cmd bash {unload llerr/1.0} $ans_sub_modfile_unload_depun_sticky $ts_sub_unload_switch_depun_sticky
testouterr_cmd bash {unload --no-auto llerr/1.0} $ans_sub_modfile_unload_depun_sticky $ts_sub_unload_switch_depun_sticky
testouterr_cmd bash {unload --force llerr/1.0} $ans_sub_modfile_unload_depun_sticky $ts_sub_unload_switch_depun_sticky
testouterr_cmd bash {unload --no-auto --force llerr/1.0} $ans_sub_modfile_unload_depun_sticky $ts_sub_unload_switch_depun_sticky
# dependent module to unload is super-sticky, dependency declared with module load
setenv_var TESTSUITE_ABORT_ON_ERROR unload_switch_load_depun_super-sticky
setenv_var __MODULES_LMTAG foo/1.0&auto-loaded:err/1.0&super-sticky:lerr/1.0&auto-loaded
testouterr_cmd bash {unload --force llerr/1.0} $ans_sub_modfile_unload_depun_super_sticky $ts_sub_unload_switch_depun_sticky
testouterr_cmd bash {unload --no-auto --force llerr/1.0} $ans_sub_modfile_unload_depun_super_sticky $ts_sub_unload_switch_depun_sticky
unsetenv_loaded_module
unsetenv_var __MODULES_LMPREREQ
unsetenv_var __MODULES_LMCONFLICT
unsetenv_var __MODULES_LMTAG
#
# useless requirement unload mechanism with sticky modules when loading modulefile doing module switch (not top modulefile)
#
setenv_loaded_module [list err/1.0 foo/1.0] [list $mp/err/1.0 $mp/foo/1.0]
setenv_var __MODULES_LMPREREQ foo/1.0&err/1.0
setenv_var __MODULES_LMTAG err/1.0&auto-loaded&sticky
# dependent module to unload is sticky, dependency declared with prereq
setenv_var TESTSUITE_ABORT_ON_ERROR switch_urequn_sticky
set ts_sub_switch_urequn_sticky [msg_unload {err/1.0 <aL:S>} $err_stickyunload]
append ts_sub_switch_urequn_sticky \n\n[msg_top_load {llerr/1.0} {foo/1.0} {setenv/1.0 lerr/1.0} {} [err_urequn err/1.0]]
testouterr_cmd bash {load llerr/1.0} $ans_sub_modfile_urequn_sticky $ts_sub_switch_urequn_sticky
set ts_sub_switch_urequn_sticky_force [msg_unload {err/1.0 <aL:S>} $err_stickyunloadf]
append ts_sub_switch_urequn_sticky_force \n\n[msg_top_load {llerr/1.0} {} {setenv/1.0 lerr/1.0} {} {Unloading conflict: foo/1.0} {Unloading useless requirement: err/1.0}]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_modfile_urequn_sticky_force $ts_sub_switch_urequn_sticky_force
# dependent module to unload is super-sticky, dependency declared with prereq
setenv_var TESTSUITE_ABORT_ON_ERROR switch_urequn_super-sticky
setenv_var __MODULES_LMTAG err/1.0&auto-loaded&super-sticky
set ts_sub_switch_urequn_super_sticky_force [msg_unload {err/1.0 <aL:sS>} $err_superstickyunload]
append ts_sub_switch_urequn_super_sticky_force \n\n[msg_top_load {llerr/1.0} {foo/1.0} {setenv/1.0 lerr/1.0} {} [err_urequn err/1.0]]
testouterr_cmd bash {load --force llerr/1.0} $ans_sub_modfile_urequn_super_sticky_force $ts_sub_switch_urequn_super_sticky_force
#
# useless requirement unload mechanism with sticky modules when unloading modulefile doing module switch (not top modulefile)
#
setenv_loaded_module [list err/1.0 foo/1.0 lerr/1.0 llerr/1.0] [list $mp/err/1.0 $mp/foo/1.0 $mp/lerr/1.0 $mp/llerr/1.0]
setenv_var __MODULES_LMPREREQ foo/1.0&err/1.0:lerr/1.0&foo/1.0:llerr/1.0&lerr/1.0
setenv_var __MODULES_LMCONFLICT lerr/1.0&setenv/1.0
setenv_var __MODULES_LMTAG err/1.0&auto-loaded&sticky:foo/1.0&auto-loaded:lerr/1.0&auto-loaded
# dependent module to unload is sticky, dependency declared with module load
setenv_var TESTSUITE_ABORT_ON_ERROR unload_switch_load_urequn_sticky
set ts_sub_unload_switch_urequn_sticky [msg_unload {err/1.0 <aL:S>} $err_stickyunload]
append ts_sub_unload_switch_urequn_sticky \n\n[msg_top_unload {llerr/1.0} {} {lerr/1.0 foo/1.0} {} [err_urequn err/1.0]]
testouterr_cmd bash {unload llerr/1.0} $ans_modfile_unload_urequn_sticky $ts_sub_unload_switch_urequn_sticky
testouterr_cmd bash {unload --no-auto llerr/1.0} $ans_modfile_unload_urequn_sticky_noauto $ts_sub_unload_switch_urequn_sticky
set ts_sub_unload_switch_urequn_sticky_force [msg_unload {err/1.0 <aL:S>} $err_stickyunloadf]
append ts_sub_unload_switch_urequn_sticky_force \n\n[msg_top_unload {llerr/1.0} {} {lerr/1.0 foo/1.0 err/1.0} {}]
testouterr_cmd bash {unload --force llerr/1.0} $ans_modfile_unload_urequn_sticky_force $ts_sub_unload_switch_urequn_sticky_force
testouterr_cmd bash {unload --no-auto --force llerr/1.0} $ans_modfile_unload_urequn_sticky_force $ts_sub_unload_switch_urequn_sticky_force
# dependent module to unload is super-sticky, dependency declared with module load
setenv_var TESTSUITE_ABORT_ON_ERROR unload_switch_load_urequn_super-sticky
setenv_var __MODULES_LMTAG err/1.0&auto-loaded&super-sticky:foo/1.0&auto-loaded:lerr/1.0&auto-loaded
set ts_sub_unload_switch_urequn_super_sticky_force [msg_unload {err/1.0 <aL:sS>} $err_superstickyunload]
append ts_sub_unload_switch_urequn_super_sticky_force \n\n[msg_top_unload {llerr/1.0} {} {lerr/1.0 foo/1.0} {} [err_urequn err/1.0]]
testouterr_cmd bash {unload --force llerr/1.0} $ans_modfile_unload_urequn_super_sticky $ts_sub_unload_switch_urequn_super_sticky_force
testouterr_cmd bash {unload --no-auto --force llerr/1.0} $ans_modfile_unload_urequn_super_sticky_noauto_force $ts_sub_unload_switch_urequn_super_sticky_force
unsetenv_loaded_module
unsetenv_var __MODULES_LMPREREQ
unsetenv_var __MODULES_LMCONFLICT
unsetenv_var __MODULES_LMTAG
#
# Cleanup
#