@@ -154,17 +154,30 @@ for shell in ${SHELLS[@]}; do
154154
155155 # Optional test 11, check if the prompt has been updated
156156 if [ " $shell " = " bash" ] || [ " $shell " = " ksh" ] || [ " $shell " = " zsh" ] || [ " $shell " = " sh" ]; then
157+ # Let's configure things to use the EESSI module within the PR
158+ sed ' s|export MODULEPATH=.*|export MODULEPATH=init/modules|' init/lmod/sh > init/lmod/sh.test
159+ ln -srf init/lmod/sh.test init/lmod/bash.test
160+ ln -srf init/lmod/sh.test init/lmod/ksh.test
161+ ln -srf init/lmod/sh.test init/lmod/zsh.test
157162 # Typically this is a non-interactive shell, so manually unset PS1 and reset to a non-exported variable when testing
158- TEST_EESSI_PS1_UPDATE=$( $shell -c " unset PS1 ; PS1='$ ' ; . init/lmod/$shell 2>/dev/null ; echo \"\$ PS1\" " )
159- TEST_EESSI_NO_PS1_UPDATE=$( $shell -c " unset PS1 ; . init/lmod/$shell 2>/dev/null ; echo \"\$ PS1\" " )
163+ TEST_EESSI_PS1_UPDATE=$( $shell -c " unset PS1 ; PS1='$ ' ; . init/lmod/$shell .test 2>/dev/null ; echo \"\$ PS1\" " )
164+ TEST_EESSI_NO_PS1_UPDATE=$( $shell -c " unset PS1 ; . init/lmod/$shell .test 2>/dev/null ; echo \"\$ PS1\" " )
160165 pattern=" {EESSI/${EESSI_VERSION} } "
161166 assert_raises ' echo "$TEST_EESSI_PS1_UPDATE" | grep "$pattern"'
162167 assert_raises ' echo "$TEST_EESSI_NO_PS1_UPDATE" | grep "$pattern"' 1
163168 # Also check when we explicitly ask for it not to be updated
164- TEST_EESSI_EXPLICIT_NO_PS1_UPDATE=$( $shell -c " unset PS1 ; PS1='test> ' ; export EESSI_MODULE_UPDATE_PS1=0 ; . init/lmod/$shell 2>/dev/null ; echo \"\$ PS1\" " )
165- TEST_EESSI_EXPLICIT_NO_PS1_UPDATE_CALLED_TWICE=$( $shell -c " unset PS1 ; PS1='$ ' ; export EESSI_MODULE_UPDATE_PS1=0 ; . init/lmod/$shell 2>/dev/null ; . init/lmod/$shell 2>/dev/null ; echo \"\$ PS1\" " )
169+ TEST_EESSI_EXPLICIT_NO_PS1_UPDATE=$( $shell -c " unset PS1 ; PS1='test> ' ; export EESSI_MODULE_UPDATE_PS1=0 ; . init/lmod/$shell .test 2>/dev/null ; echo \"\$ PS1\" " )
170+ TEST_EESSI_EXPLICIT_NO_PS1_UPDATE_CALLED_TWICE=$( $shell -c " unset PS1 ; PS1='$ ' ; export EESSI_MODULE_UPDATE_PS1=0 ; . init/lmod/$shell .test 2>/dev/null ; . init/lmod/$shell .test 2>/dev/null ; echo \"\$ PS1\" " )
166171 assert_raises ' echo "$TEST_EESSI_EXPLICIT_NO_PS1_UPDATE" | grep "$pattern"' 1
167172 assert_raises ' echo "$TEST_EESSI_EXPLICIT_NO_PS1_UPDATE_CALLED_TWICE" | grep "$pattern"' 1
173+ # Also check complex prompts, and unloading/purging the EESSI module
174+ prompt=" \$ (echo '\['✘) $ "
175+ promptstr=" \[✘ $ "
176+ updated_promptstr=" {EESSI/${EESSI_VERSION} } \[✘ $ "
177+ TEST_EESSI_PS1_UPDATE=$( $shell -c " unset PS1 ; PS1=\" $prompt \" ; . init/lmod/$shell .test >/dev/null ; echo \"\$ PS1\" " )
178+ TEST_EESSI_PS1_REVERT=$( $shell -c " unset PS1 ; PS1=\" $prompt \" ; . init/lmod/$shell .test >/dev/null ; module purge; echo \"\$ PS1\" " )
179+ assert ' echo "$TEST_EESSI_PS1_UPDATE"' " $updated_promptstr "
180+ assert ' echo "$TEST_EESSI_PS1_REVERT"' " $promptstr "
168181 fi
169182
170183 # End Test Suite
0 commit comments