mirror of
https://github.com/envmodules/modules.git
synced 2026-06-14 00:42:43 +08:00
ts: test spider against modpath entry with variable ref
Signed-off-by: Xavier Delaruelle <xavier.delaruelle@cea.fr>
This commit is contained in:
@@ -499,4 +499,9 @@ Specific impact
|
||||
|
||||
- FUTURE: there may have room for optimization here
|
||||
|
||||
* As environment variable defined by modulefile commands like ``setenv`` are
|
||||
set to an empty value during scan evaluation, if a modulepath entry contains
|
||||
a reference to such environment variable, it will not match its expecting
|
||||
value.
|
||||
|
||||
.. vim:set tabstop=2 shiftwidth=2 expandtab autoindent:
|
||||
|
||||
@@ -19,5 +19,27 @@ if {[info exists env(TESTSUITE_SPIDER_MODPATH1)]} {
|
||||
remove_modpath2 {
|
||||
remove-path MODULEPATH $env(TESTSUITEDIR)/modulefiles.spider2
|
||||
}
|
||||
use_append_modpath_extref1 {
|
||||
module use -a $env(TESTSUITEDIR)/modulefiles.spid\$TESTSUITE_SPIDER_EXTREF
|
||||
}
|
||||
use_append_modpath_inref1 {
|
||||
setenv TESTSUITE_SPIDER_INREF unk
|
||||
module use -a $env(TESTSUITEDIR)/modulefiles.spid\$TESTSUITE_SPIDER_INREF
|
||||
}
|
||||
use_append_modpath_inref2 {
|
||||
setenv TESTSUITE_SPIDER_INREF er2
|
||||
module use -a $env(TESTSUITEDIR)/modulefiles.spid\$TESTSUITE_SPIDER_INREF
|
||||
}
|
||||
prepend_modpath_extref1 {
|
||||
prepend-path MODULEPATH $env(TESTSUITEDIR)/modulefiles.spid\$TESTSUITE_SPIDER_EXTREF
|
||||
}
|
||||
prepend_modpath_inref1 {
|
||||
setenv TESTSUITE_SPIDER_INREF unk
|
||||
prepend-path MODULEPATH $env(TESTSUITEDIR)/modulefiles.spid\$TESTSUITE_SPIDER_INREF
|
||||
}
|
||||
prepend_modpath_inref2 {
|
||||
setenv TESTSUITE_SPIDER_INREF er2
|
||||
prepend-path MODULEPATH $env(TESTSUITEDIR)/modulefiles.spid\$TESTSUITE_SPIDER_INREF
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,6 +182,62 @@ moda/2"
|
||||
}
|
||||
|
||||
|
||||
# modulepath entry with environment variable reference
|
||||
setenv_var TESTSUITE_SPIDER_MODPATH1 use_append_modpath_extref1
|
||||
|
||||
set tserr "$modpath.spider1:
|
||||
moda/1
|
||||
moda/2
|
||||
|
||||
$modpath.spider2:
|
||||
modb/1
|
||||
modb/2
|
||||
|
||||
$modpath.spider3:
|
||||
modc/1
|
||||
modc/2"
|
||||
set tserr_unkref "$modpath.spider1:
|
||||
moda/1
|
||||
moda/2"
|
||||
|
||||
setenv_var TESTSUITE_SPIDER_EXTREF er2
|
||||
testouterr_cmd sh {spider -t} OK $tserr
|
||||
setenv_var TESTSUITE_SPIDER_EXTREF bad
|
||||
testouterr_cmd sh {spider -t} OK $tserr_unkref
|
||||
unsetenv_var TESTSUITE_SPIDER_EXTREF
|
||||
testouterr_cmd sh {spider -t} OK $tserr_unkref
|
||||
|
||||
setenv_var TESTSUITE_SPIDER_MODPATH1 use_append_modpath_inref1
|
||||
testouterr_cmd sh {spider -t} OK $tserr_unkref
|
||||
setenv_var TESTSUITE_SPIDER_MODPATH1 use_append_modpath_inref2
|
||||
# setenv is not performed on env variable during scan evaluation
|
||||
testouterr_cmd sh {spider -t} OK $tserr_unkref
|
||||
|
||||
|
||||
setenv_var TESTSUITE_SPIDER_MODPATH1 prepend_modpath_extref1
|
||||
setenv_var TESTSUITE_SPIDER_EXTREF er2
|
||||
testouterr_cmd sh {spider -t} OK $tserr
|
||||
setenv_var TESTSUITE_SPIDER_EXTREF bad
|
||||
testouterr_cmd sh {spider -t} OK $tserr_unkref
|
||||
unsetenv_var TESTSUITE_SPIDER_EXTREF
|
||||
testouterr_cmd sh {spider -t} OK $tserr_unkref
|
||||
|
||||
setenv_var TESTSUITE_SPIDER_MODPATH1 prepend_modpath_inref1
|
||||
testouterr_cmd sh {spider -t} OK $tserr_unkref
|
||||
setenv_var TESTSUITE_SPIDER_MODPATH1 prepend_modpath_inref2
|
||||
# setenv is not performed on env variable during scan evaluation
|
||||
testouterr_cmd sh {spider -t} OK $tserr_unkref
|
||||
|
||||
setenv_var MODULEPATH $modpath.spid\$TESTSUITE_SPIDER_EXTREF
|
||||
setenv_var TESTSUITE_SPIDER_MODPATH1 use_append_modpath2
|
||||
setenv_var TESTSUITE_SPIDER_EXTREF er1
|
||||
testouterr_cmd sh {spider -t} OK $tserr
|
||||
setenv_var TESTSUITE_SPIDER_EXTREF bad
|
||||
testouterr_cmd sh {spider -t} OK {}
|
||||
unsetenv_var TESTSUITE_SPIDER_EXTREF
|
||||
testouterr_cmd sh {spider -t} OK {}
|
||||
|
||||
|
||||
#
|
||||
# Cleanup
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user