ts: fix 50/400 tests when module was defined but uninstalled

Correct source-sh tests in 50/400 to succeed when tests are run in an
environment where module is defined but has been uninstalled. It
corresponds to the environment created for 'mrel' script execution.
This commit is contained in:
Xavier Delaruelle
2022-05-02 21:22:13 +02:00
parent 60f093d9e8
commit ea90b93d25
3 changed files with 44 additions and 19 deletions

View File

@@ -107,19 +107,11 @@ if [ "${TESTSUITE_SHTOMOD_EMPTYPREPEND:+x}" = 'x' ]; then
fi
if [ "${TESTSUITE_SHTOMOD_MODULE:+x}" = 'x' ]; then
module load 2>/dev/null
if [ $? -ne 0 ]; then
eval $($TCLSH $MODULES_CMD sh autoinit)
autoinit=1
else
autoinit=0
fi
eval $($TCLSH $MODULES_CMD sh autoinit)
module config collection_target bar
module load setenv/1.0
if [ $autoinit -eq 1 ]; then
unset -f ml module _module_raw
unset MODULESHOME
fi
unset -f ml module _module_raw
unset MODULESHOME
fi
# vim:set tabstop=3 shiftwidth=3 expandtab autoindent:

View File

@@ -680,6 +680,9 @@ unset test_perms_file
unset orig_perms
unset new_perms
# check if module command is defined prior running tests
set is_modules_defined [info exists ::env(MODULES_CMD)]
# check if symbolic link registered in git repository have been effectively
# created as symbolic link to determine if they are supported on filesystem
set is_symlink_supported [file isdirectory $env(TESTSUITEDIR)/modulefiles/symlink]

View File

@@ -1567,15 +1567,35 @@ lappend ans [list set _LMFILES_ $mp/source-sh/1]
lappend ans [list set LOADEDMODULES source-sh/1]
lappend ans [list set testsuite yes]
lappend ans [list set MODULES_COLLECTION_TARGET bar]
if {$install_versioning eq {y}} {
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULE_VERSION\ $install_version\|setenv\ MODULE_VERSION_STACK\ $install_version\|setenv\ MODULES_COLLECTION_TARGET\ bar\|setenv\ testsuite\ yes]
# if module was defined in environment prior test, the result of the source-sh evaluation
# will be the unset of the module functions
if {$is_modules_defined} {
set extraans \|unset-function\ _module_raw\|unset-function\ ml\|unset-function\ module
} else {
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULES_COLLECTION_TARGET\ bar\|setenv\ testsuite\ yes]
set extraans {}
}
if {$install_versioning eq {y}} {
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULE_VERSION\ $install_version\|setenv\ MODULE_VERSION_STACK\ $install_version\|setenv\ MODULES_COLLECTION_TARGET\ bar\|setenv\ testsuite\ yes$extraans]
} else {
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULES_COLLECTION_TARGET\ bar\|setenv\ testsuite\ yes$extraans]
}
if {$install_versioning eq {y}} {
lappend ans [list set MODULE_VERSION $install_version]
}
if {$is_modules_defined} {
lappend ans [list {unset -f ml;}]
lappend ans [list {unset -f module;}]
lappend ans [list {unset -f _module_raw;}]
}
testouterr_cmd sh {load source-sh/1} $ans {}
if {$is_modules_defined} {
set extratserr "
unset-function\t_module_raw
unset-function\tml
unset-function\tmodule"
} else {
set extratserr {}
}
set tserr "-------------------------------------------------------------------
$mp/source-sh/1:\n\n"
@@ -1584,7 +1604,7 @@ if {$install_versioning eq {y}} {
setenv\t\tMODULE_VERSION_STACK $install_version\n"
}
append tserr "setenv\t\tMODULES_COLLECTION_TARGET bar
setenv\t\ttestsuite yes
setenv\t\ttestsuite yes$extratserr
module-whatis\tsource-sh/1
-------------------------------------------------------------------"
testouterr_cmd sh {display source-sh/1} OK $tserr
@@ -1614,13 +1634,18 @@ lappend ans [list set _LMFILES_ $mp/source-sh/1]
lappend ans [list set LOADEDMODULES source-sh/1]
lappend ans [list set MODULES_COLLECTION_TARGET bar]
if {$install_versioning eq {y}} {
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULE_VERSION\ $install_version\|setenv\ MODULE_VERSION_STACK\ $install_version\|setenv\ MODULES_COLLECTION_TARGET\ bar]
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULE_VERSION\ $install_version\|setenv\ MODULE_VERSION_STACK\ $install_version\|setenv\ MODULES_COLLECTION_TARGET\ bar$extraans]
} else {
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULES_COLLECTION_TARGET\ bar]
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULES_COLLECTION_TARGET\ bar$extraans]
}
if {$install_versioning eq {y}} {
lappend ans [list set MODULE_VERSION $install_version]
}
if {$is_modules_defined} {
lappend ans [list {unset -f ml;}]
lappend ans [list {unset -f module;}]
lappend ans [list {unset -f _module_raw;}]
}
testouterr_cmd sh {load source-sh/1} $ans {}
# module is loaded prior sh-to-mod
@@ -1634,13 +1659,18 @@ lappend ans [list set _LMFILES_ $modpath/setenv/1.0:$mp/source-sh/1]
lappend ans [list set LOADEDMODULES setenv/1.0:source-sh/1]
lappend ans [list set MODULES_COLLECTION_TARGET bar]
if {$install_versioning eq {y}} {
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULE_VERSION\ $install_version\|setenv\ MODULE_VERSION_STACK\ $install_version\|setenv\ MODULES_COLLECTION_TARGET\ bar]
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULE_VERSION\ $install_version\|setenv\ MODULE_VERSION_STACK\ $install_version\|setenv\ MODULES_COLLECTION_TARGET\ bar$extraans]
} else {
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULES_COLLECTION_TARGET\ bar]
lappend ans [list set __MODULES_LMSOURCESH source-sh/1\&bash\ testsuite/example/sh-to-mod.sh\|setenv\ MODULES_COLLECTION_TARGET\ bar$extraans]
}
if {$install_versioning eq {y}} {
lappend ans [list set MODULE_VERSION $install_version]
}
if {$is_modules_defined} {
lappend ans [list {unset -f ml;}]
lappend ans [list {unset -f module;}]
lappend ans [list {unset -f _module_raw;}]
}
testouterr_cmd sh {load source-sh/1} $ans {}