Skip to content

Commit 29970a1

Browse files
committed
ts: add restore tests with tags set or not
1 parent 4461caf commit 29970a1

File tree

7 files changed

+190
-1
lines changed

7 files changed

+190
-1
lines changed

testsuite/home/coll49

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#%Module5.0
2+
module use --append testsuite/modulefiles.3
3+
module load variant/3.0 bar=val2
4+
module load --tag=foo:keep-loaded tag/8.0 -bar +foo
5+
module load --tag=bar:auto-loaded:keep-loaded foo/1.0
6+
module load keep/1.0
7+

testsuite/modulefiles.3/foo/.modulerc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,14 @@ if {[info exists env(TESTSUITE_AVAIL_OUTPUT_FOO_TAG)]} {
99

1010
module-version foo/0.2 sym
1111
module-tag tag foo/0.2
12+
13+
if {[info exists env(TESTSUITE_TAG_OPT)]} {
14+
switch -- $env(TESTSUITE_TAG_OPT) {
15+
coll49forb {
16+
module-forbid foo/1.0
17+
}
18+
coll49keep {
19+
module-tag keep-loaded foo/1.0
20+
}
21+
}
22+
}

testsuite/modulefiles.3/keep/1.0

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module-whatis [module-info name]
44

55
if {[info exists env(TESTSUITE_KEEP_LOADED)]} {
66
switch -- $env(TESTSUITE_KEEP_LOADED) {
7-
load1 {
7+
load1 - coll49 - coll49forb - coll49keep {
88
module load --tag=keep-loaded foo/1.0
99
}
1010
prereq1 {

testsuite/modulefiles.3/tag/8.0

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,5 +139,9 @@ if {[info exists env(TESTSUITE_TAG_OPT)]} {
139139
prtag12 {
140140
prereq --tag=keep-loaded:foo foo/1.0
141141
}
142+
coll49 - coll49forb - coll49keep {
143+
variant --boolean bar
144+
variant --boolean foo
145+
}
142146
}
143147
}

testsuite/modules.61-coll/010-init_ts.exp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,9 @@ set coll48 coll48
214214
set coll48f coll48
215215
set coll48fp $homewithcolldotmod/$coll48f
216216
set coll48fpre [escre $coll48fp]
217+
set coll49 coll49
218+
set coll49fp $homewithcoll/$coll49
219+
set coll49fpre [escre $coll49fp]
217220

218221
set cdmodpath1 "$modpath"
219222
set cdmodpath1re "$modpathre"
@@ -470,6 +473,16 @@ set c47modpath1re [escre $c47modpath1]
470473
set c47mod1 {tag/8.0}
471474
set c47mod1extratag [list foo]
472475
set c47mod1tag [list foo nearly-forbidden]
476+
set c49modpath1 $modpath.3
477+
set c49modpath1re [escre $c49modpath1]
478+
set c49mod1 {variant/3.0}
479+
set c49mod2 {tag/8.0}
480+
set c49mod2extratag [list foo]
481+
set c49mod2tag [list foo keep-loaded]
482+
set c49mod3 {foo/1.0}
483+
set c49mod3extratag [list bar]
484+
set c49mod3tag [list auto-loaded bar keep-loaded]
485+
set c49mod4 {keep/1.0}
473486

474487
set cdlmf "$cdmodpath1/$cdmod1:$cdmodpath1/$cdmod2:$cdmodpath1/$cdmod3:$cdmodpath1/$cdmod4:$cdmodpath1/$cdmod5"
475488
set cdlm "$cdmod1:$cdmod2:$cdmod3:$cdmod4:$cdmod5"
@@ -685,6 +698,12 @@ set c47lm $c47mod1
685698
set c47lmextratag $c47mod1&[join $c47mod1extratag &]
686699
set c47lmtag $c47mod1&[join $c47mod1tag &]
687700
set c47modpath $c47modpath1
701+
set c49lmf $c49modpath1/$c49mod1:$c49modpath1/$c49mod2:$c49modpath1/$c49mod3:$c49modpath1/$c49mod4
702+
set c49lm $c49mod1:$c49mod2:$c49mod3:$c49mod4
703+
set c49lmvr $c49mod1&bar|val2|0|0:$c49mod2&bar|0|1|0&foo|1|1|0
704+
set c49lmextratag $c49mod2&[join $c49mod2extratag &]:$c49mod3&[join $c49mod3extratag &]
705+
set c49lmtag $c49mod2&[join $c49mod2tag &]:$c49mod3&[join $c49mod3tag &]
706+
set c49modpath $c49modpath1
688707

689708
set mlu "module use --append"
690709
set mll "module load"

testsuite/modules.61-coll/040-restore.exp

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,6 +1050,32 @@ lappend ans [list set __MODULES_LMTAG $c37lmtag]
10501050
set tserr [msg_unload variant/3.0{bar=val1}]\n[msg_unload foo/1.0]\n[msg_load variant/3.0{bar=val1}]\n[msg_load tag/8.0]
10511051
testouterr_cmd_re sh "restore $coll37fp" $ans $tserr
10521052

1053+
# set 2nd module auto-loaded in env, not auto-loaded in collection
1054+
setenv_var __MODULES_LMVARIANT $c37lmvr
1055+
setenv_loaded_module [list $c37mod1 $c37mod2] [list $c37modpath1/$c37mod1 $c37modpath1/$c37mod2]
1056+
setenv_var __MODULES_LMTAG $c37mod1&[join $c37mod1tag &]:$c37mod2&auto-loaded
1057+
setenv_var __MODULES_LMEXTRATAG $c37mod1&[join $c37mod1extratag &]
1058+
set ans [list]
1059+
lappend ans [list set __MODULES_LMPREREQ $c37mod2&[email protected]\ bar=val1]
1060+
lappend ans [list set _LMFILES_ $c37lmf]
1061+
lappend ans [list set LOADEDMODULES $c37lm]
1062+
lappend ans [list set __MODULES_LMEXTRATAG $c37lmextratag]
1063+
lappend ans [list set __MODULES_LMTAG $c37lmtag]
1064+
# unsetting auto-loaded tag makes module to get unloaded then loaded
1065+
set tserr [msg_unload tag/8.0]\n[msg_load tag/8.0]
1066+
testouterr_cmd_re sh "restore $coll37fp" $ans $tserr
1067+
1068+
# set modules keep-loaded in env, not keep-loaded in collection
1069+
setenv_var __MODULES_LMVARIANT $c37lmvr
1070+
setenv_loaded_module [list $c37mod1 $c37mod2] [list $c37modpath1/$c37mod1 $c37modpath1/$c37mod2]
1071+
setenv_var __MODULES_LMTAG $c37mod1&[join $c37mod1tag &]&keep-loaded:$c37mod2&keep-loaded
1072+
setenv_var __MODULES_LMEXTRATAG $c37mod1&[join $c37mod1extratag &]
1073+
# keep-loaded tag found in env is preserved even if not in collection
1074+
set ans [list]
1075+
lappend ans [list set __MODULES_LMEXTRATAG $c37lmextratag]
1076+
lappend ans [list set __MODULES_LMTAG $c37mod1&[join $c37mod1tag &]&keep-loaded:$c37mod2&keep-loaded&foo]
1077+
testouterr_cmd_re sh "restore $coll37fp" $ans {}
1078+
10531079
unsetenv_loaded_module
10541080
unsetenv_var __MODULES_LMTAG
10551081
unsetenv_var __MODULES_LMEXTRATAG
@@ -1181,6 +1207,108 @@ unsetenv_var MODULES_COLLECTION_PIN_TAG
11811207
unsetenv_var TESTSUITE_TAG_OPT
11821208

11831209

1210+
# test tags set in collection but not in current env or opposite situation
1211+
# for simple or variant modules
1212+
setenv_var TESTSUITE_TAG_OPT coll49
1213+
setenv_var TESTSUITE_KEEP_LOADED coll49
1214+
setenv_var MODULES_ADVANCED_VERSION_SPEC 1
1215+
1216+
setenv_var __MODULES_LMVARIANT $c49lmvr
1217+
setenv_var __MODULES_LMPREREQ $c49mod4&$c49mod3
1218+
setenv_loaded_module [list $c49mod1 $c49mod2 $c49mod3 $c49mod4] [list $c49modpath1/$c49mod1 $c49modpath1/$c49mod2 $c49modpath1/$c49mod3 $c49modpath1/$c49mod4] [list $c49mod3]
1219+
1220+
set ans [list]
1221+
lappend ans [list set __MODULES_LMEXTRATAG $c49lmextratag]
1222+
lappend ans [list set __MODULES_LMTAG $c49lmtag]
1223+
testouterr_cmd_re sh "restore $coll49fp" $ans {}
1224+
1225+
setenv_var __MODULES_LMTAG $c49mod1&bar&foo:$c49mod3&auto-loaded:$c49mod4&bar&foo
1226+
setenv_var __MODULES_LMEXTRATAG $c49mod1&bar&foo:$c49mod4&bar&foo
1227+
testouterr_cmd_re sh "restore $coll49fp" $ans {}
1228+
1229+
setenv_var __MODULES_LMTAG $c49mod1&bar&foo:$c49mod3&auto-loaded:$c49mod4&foo
1230+
setenv_var __MODULES_LMEXTRATAG $c49mod1&bar
1231+
set ans [list]
1232+
lappend ans [list set __MODULES_LMEXTRATAG $c49lmextratag]
1233+
# foo tag is kept of 1st and 4th module as not set extra
1234+
lappend ans [list set __MODULES_LMTAG $c49mod4&foo:$c49mod1&foo:$c49lmtag]
1235+
testouterr_cmd_re sh "restore $coll49fp" $ans {}
1236+
1237+
setenv_var __MODULES_LMTAG $c49mod1&bar&foo:$c49mod3&auto-loaded&bar&keep-loaded:$c49mod4&bar&foo
1238+
setenv_var __MODULES_LMEXTRATAG $c49mod1&bar&foo:$c49mod3&bar:$c49mod4&bar&foo
1239+
set ans [list]
1240+
lappend ans [list set __MODULES_LMEXTRATAG $c49mod3&[join $c49mod3extratag &]:$c49mod2&[join $c49mod2extratag &]]
1241+
lappend ans [list set __MODULES_LMTAG $c49mod3&[join $c49mod3tag &]:$c49mod2&[join $c49mod2tag &]]
1242+
testouterr_cmd_re sh "restore $coll49fp" $ans {}
1243+
1244+
setenv_var __MODULES_LMTAG $c49mod2&bar&foo:$c49mod3&auto-loaded&bar&foo
1245+
setenv_var __MODULES_LMEXTRATAG $c49mod2&bar
1246+
set ans [list]
1247+
# all tags are restored non extra, as loaded environment defines foo for 2nd
1248+
# and 4th module is set non-extra
1249+
lappend ans [list unset __MODULES_LMEXTRATAG]
1250+
lappend ans [list set __MODULES_LMTAG $c49mod2&[join $c49mod2tag &]:$c49mod3&auto-loaded&bar&foo&keep-loaded]
1251+
testouterr_cmd_re sh "restore $coll49fp" $ans {}
1252+
1253+
setenv_var __MODULES_LMTAG $c49mod2&bar&foo:$c49mod3&auto-loaded&bar&foo
1254+
setenv_var __MODULES_LMEXTRATAG $c49mod2&bar&foo
1255+
set ans [list]
1256+
lappend ans [list set __MODULES_LMEXTRATAG $c49mod2&foo]
1257+
lappend ans [list set __MODULES_LMTAG $c49mod2&[join $c49mod2tag &]:$c49mod3&auto-loaded&bar&foo&keep-loaded]
1258+
testouterr_cmd_re sh "restore $coll49fp" $ans {}
1259+
1260+
# 2nd module is set auto-loaded in env, not in collection
1261+
# and 3rd module is not set auto-loaded in env, whereas it is in collection
1262+
setenv_var __MODULES_LMTAG $c49mod2&auto-loaded&foo&keep-loaded:$c49mod3&bar&keep-loaded
1263+
setenv_var __MODULES_LMEXTRATAG $c49mod2&foo:$c49mod3&bar
1264+
set ans [list]
1265+
lappend ans [list set __MODULES_LMVARIANT $c49lmvr]
1266+
lappend ans [list set __MODULES_LMPREREQ $c49mod4&$c49mod3]
1267+
lappend ans [list set _LMFILES_ $c49lmf]
1268+
lappend ans [list set LOADEDMODULES $c49lm]
1269+
lappend ans [list set __MODULES_LMEXTRATAG $c49lmextratag]
1270+
lappend ans [list set __MODULES_LMTAG $c49mod2&[join $c49mod2tag &]:$c49mod3&bar&auto-loaded&keep-loaded]
1271+
set tserr [msg_unload $c49mod4]\n[msg_unload $c49mod3]\n[msg_unload $c49mod2{-bar:+foo}]\n[msg_load $c49mod2{-bar:+foo}]\n[msg_load $c49mod3]\n[msg_load $c49mod4]
1272+
testouterr_cmd sh "restore $coll49fp" $ans $tserr
1273+
1274+
# keep-loaded tag defined by module-tag in modulerc
1275+
setenv_var TESTSUITE_TAG_OPT coll49keep
1276+
setenv_var TESTSUITE_KEEP_LOADED coll49keep
1277+
setenv_var __MODULES_LMTAG $c49mod1&bar&foo:$c49mod3&auto-loaded&keep-loaded:$c49mod4&bar&foo
1278+
setenv_var __MODULES_LMEXTRATAG $c49mod1&bar&foo:$c49mod4&bar&foo
1279+
set ans [list]
1280+
lappend ans [list set __MODULES_LMEXTRATAG $c49lmextratag]
1281+
lappend ans [list set __MODULES_LMTAG $c49mod2&[join $c49mod2tag &]:$c49mod3&auto-loaded&keep-loaded&bar]
1282+
testouterr_cmd_re sh "restore $coll49fp" $ans {}
1283+
1284+
unsetenv_var __MODULES_LMPREREQ
1285+
setenv_loaded_module [list $c49mod1 $c49mod2] [list $c49modpath1/$c49mod1 $c49modpath1/$c49mod2]
1286+
setenv_var __MODULES_LMTAG $c49mod2&[join $c49mod2tag &]
1287+
setenv_var __MODULES_LMEXTRATAG $c49mod2&[join $c49mod2extratag &]
1288+
set ans [list]
1289+
lappend ans [list set __MODULES_LMPREREQ $c49mod4&$c49mod3]
1290+
lappend ans [list set _LMFILES_ $c49lmf]
1291+
lappend ans [list set LOADEDMODULES $c49lm]
1292+
lappend ans [list set __MODULES_LMEXTRATAG $c49lmextratag]
1293+
lappend ans [list set __MODULES_LMTAG $c49mod2&[join $c49mod2tag &]:$c49mod3&bar&auto-loaded&keep-loaded]
1294+
set tserr [msg_load $c49mod3]\n[msg_load $c49mod4]
1295+
testouterr_cmd_re sh "restore $coll49fp" $ans $tserr
1296+
1297+
# module-forbid defined in modulerc for 3rd collection module
1298+
setenv_var TESTSUITE_TAG_OPT coll49forb
1299+
setenv_var TESTSUITE_KEEP_LOADED coll49forb
1300+
set tserr [err_accessdenied $c49mod3]\n\n[msg_load $c49mod4 [err_accessdenied $c49mod3] [err_reqlo $c49mod3]]
1301+
testouterr_cmd_re sh "restore $coll49fp" ERR $tserr
1302+
1303+
unsetenv_var TESTSUITE_TAG_OPT
1304+
unsetenv_var TESTSUITE_KEEP_LOADED
1305+
unsetenv_var MODULES_ADVANCED_VERSION_SPEC
1306+
unsetenv_loaded_module
1307+
unsetenv_var __MODULES_LMTAG
1308+
unsetenv_var __MODULES_LMEXTRATAG
1309+
unsetenv_var __MODULES_LMVARIANT
1310+
1311+
11841312
#
11851313
# Cleanup
11861314
#

testsuite/modules.61-coll/999-cleanup.exp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,12 @@ unset c47lm
312312
unset c47lmextratag
313313
unset c47lmtag
314314
unset c47modpath
315+
unset c49lmf
316+
unset c49lm
317+
unset c49lmvr
318+
unset c49lmextratag
319+
unset c49lmtag
320+
unset c49modpath
315321

316322
unset c18modpath1
317323
unset c18modpath1re
@@ -492,6 +498,17 @@ unset c47modpath1re
492498
unset c47mod1
493499
unset c47mod1extratag
494500
unset c47mod1tag
501+
unset c49modpath1
502+
unset c49modpath1re
503+
unset c49mod1
504+
unset c49mod2
505+
unset c49mod2extratag
506+
unset c49mod2tag
507+
unset c49mod3
508+
unset c49mod3extratag
509+
unset c49mod3tag
510+
unset c49mod4
511+
495512
unset c17mod2
496513
unset c17mod1
497514
unset c17modpath1
@@ -744,6 +761,9 @@ unset coll48
744761
unset coll48f
745762
unset coll48fp
746763
unset coll48fpre
764+
unset coll49
765+
unset coll49fp
766+
unset coll49fpre
747767

748768
unset headercompattag
749769

0 commit comments

Comments
 (0)