diff --git a/testsuite/example/sh-to-mod.sh b/testsuite/example/sh-to-mod.sh index d14a1dc0..fe047b8e 100644 --- a/testsuite/example/sh-to-mod.sh +++ b/testsuite/example/sh-to-mod.sh @@ -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: diff --git a/testsuite/modules.00-init/005-init_ts.exp b/testsuite/modules.00-init/005-init_ts.exp index 7f18ffcd..9c26d1d7 100644 --- a/testsuite/modules.00-init/005-init_ts.exp +++ b/testsuite/modules.00-init/005-init_ts.exp @@ -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] diff --git a/testsuite/modules.50-cmds/400-source-sh.exp b/testsuite/modules.50-cmds/400-source-sh.exp index 66f0526b..f35e8f37 100644 --- a/testsuite/modules.50-cmds/400-source-sh.exp +++ b/testsuite/modules.50-cmds/400-source-sh.exp @@ -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 {}