@@ -428,6 +428,136 @@ set tserr [msg_unload {sticky/1.0 <S>} $err_stickyunloadf]
428428testouterr_cmd_re sh {purge -f} $ans $tserr
429429
430430
431+ # switch sticky module to a module that does not exist
432+ unsetenv_var TESTSUITE_STICKY_GENERIC
433+ unsetenv_var TESTSUITE_STICKY_DEP
434+ unsetenv_var __MODULES_LMPREREQ
435+ setenv_loaded_module [list sticky/1.0] [list $mp/sticky/1.0]
436+ setenv_var __MODULES_LMTAG sticky/1.0&sticky
437+
438+ set tserr [msg_switch {sticky/1.0 <S>} sticky/99 $err_stickyunload]
439+ testouterr_cmd_re sh {switch sticky/99} ERR $tserr
440+ testouterr_cmd_re sh {switch sticky/1.0 sticky/99} ERR $tserr
441+
442+ set ans [list]
443+ lappend ans [list unset _LMFILES_]
444+ lappend ans [list unset LOADEDMODULES]
445+ lappend ans [list unset __MODULES_LMTAG]
446+ lappend ans [list ERR]
447+ set tserr "[msg_unload {sticky/1.0 <S>} $err_stickyunloadf]
448+
449+ [msg_switch {sticky/1.0 <S>} sticky/99 $err_path'sticky/99']"
450+ testouterr_cmd_re sh {switch -f sticky/99} $ans $tserr
451+ testouterr_cmd_re sh {switch -f sticky/1.0 sticky/99} $ans $tserr
452+
453+ # switch sticky module to a module that does not exist (generic sticky)
454+ setenv_var TESTSUITE_STICKY_GENERIC 1
455+
456+ set tserr [msg_switch {sticky/1.0 <S>} sticky/99 $err_path'sticky/99' $err_stickyunload]
457+ testouterr_cmd_re sh {switch sticky/99} ERR $tserr
458+ testouterr_cmd_re sh {switch sticky/1.0 sticky/99} ERR $tserr
459+
460+ set ans [list]
461+ lappend ans [list unset _LMFILES_]
462+ lappend ans [list unset LOADEDMODULES]
463+ lappend ans [list unset __MODULES_LMTAG]
464+ lappend ans [list ERR]
465+ #FIXME: 'unable to locate modulefile' message is reported twice
466+ set tserr "[msg_unload {sticky/1.0 <S>} $err_stickyunloadf]
467+
468+ [msg_switch {sticky/1.0 <S>} sticky/99 $err_path'sticky/99' $err_path'sticky/99']"
469+ testouterr_cmd_re sh {switch -f sticky/99} $ans $tserr
470+ testouterr_cmd_re sh {switch -f sticky/1.0 sticky/99} $ans $tserr
471+
472+ # switch sticky module to a module that does not exist (generic sticky and dependencies)
473+ setenv_var TESTSUITE_STICKY_DEP 1
474+ setenv_loaded_module [list foo/2.0 sticky/1.0 bar/2.0] [list $mp/foo/2.0 $mp/sticky/1.0 $mp/bar/2.0]
475+ setenv_var __MODULES_LMTAG sticky/1.0&sticky
476+ setenv_var __MODULES_LMPREREQ sticky/1.0&foo|baz:bar/2.0&sticky/1.0
477+
478+ set tserr [msg_switch {sticky/1.0 <S>} sticky/99 $err_path'sticky/99' $err_stickyunload]
479+ testouterr_cmd_re sh {switch --auto sticky/99} ERR $tserr
480+
481+ set tserr "[msg_unload {sticky/1.0 <S>} [err_prerequn bar/2.0]]
482+
483+ [msg_switch {sticky/1.0 <S>} sticky/99 $err_path'sticky/99' [err_swoff sticky/1.0]]"
484+ testouterr_cmd_re sh {switch --no-auto sticky/99} ERR $tserr
485+
486+ set ans [list]
487+ lappend ans [list set __MODULES_LMPREREQ bar/2.0&sticky/1.0]
488+ lappend ans [list set _LMFILES_ $mp/foo/2.0:$mp/bar/2.0]
489+ lappend ans [list set LOADEDMODULES foo/2.0:bar/2.0]
490+ lappend ans [list unset __MODULES_LMTAG]
491+ lappend ans [list ERR]
492+ #FIXME: 'unable to locate modulefile' message is reported twice
493+ set tserr "[msg_unload {sticky/1.0 <S>} $err_stickyunloadf]
494+
495+ [msg_load bar/2.0 [err_reqmisf sticky/1.0]]
496+
497+ [msg_top_switch {sticky/1.0 <S>} sticky/99 {} {} {} {} bar/2.0 $err_path'sticky/99' $err_path'sticky/99']"
498+ testouterr_cmd_re sh {switch --auto -f sticky/1.0 sticky/99} $ans $tserr
499+
500+ #FIXME: 'unable to locate modulefile' message is reported twice
501+ set tserr "[msg_unload {sticky/1.0 <S>} [err_deplof bar/2.0] $err_stickyunloadf]
502+
503+ [msg_switch {sticky/1.0 <S>} sticky/99 $err_path'sticky/99' $err_path'sticky/99']"
504+ testouterr_cmd_re sh {switch --no-auto -f sticky/99} $ans $tserr
505+
506+ # switch sticky module within moulefile to a module that does not exist (generic sticky)
507+ unsetenv_var TESTSUITE_STICKY_DEP
508+ setenv_var TESTSUITE_STICKY_SWITCH_DEP 1
509+ setenv_loaded_module [list sticky/1.0] [list $mp/sticky/1.0]
510+ setenv_var __MODULES_LMTAG sticky/1.0&sticky
511+ unsetenv_var __MODULES_LMPREREQ
512+
513+ #FIXME: 'unable to locate modulefile' message is reported twice
514+ set tserr "[msg_switch {sticky/1.0 <S>} sticky/99 $err_path'sticky/99' $err_path'sticky/99']
515+
516+ [msg_load bar/2.0 $err_stickyunload [err_conun sticky/1.0]]"
517+ testouterr_cmd_re sh {load bar/2.0} ERR $tserr
518+
519+ set ans [list]
520+ lappend ans [list set __MODULES_LMCONFLICT bar/2.0&sticky/1.0]
521+ lappend ans [list set __MODULES_LMPREREQ bar/2.0&sticky/99]
522+ lappend ans [list set _LMFILES_ $mp/bar/2.0]
523+ lappend ans [list set LOADEDMODULES bar/2.0]
524+ lappend ans [list unset __MODULES_LMTAG]
525+ lappend ans [list ERR]
526+ #FIXME: 'unable to locate modulefile' message is reported 3 times
527+ set tserr "[msg_unload {sticky/1.0 <S>} $err_stickyunloadf]
528+
529+ [msg_switch {sticky/1.0 <S>} sticky/99 $err_path'sticky/99' $err_path'sticky/99' $err_path'sticky/99']
530+
531+ [msg_top_load bar/2.0 sticky/1.0 {} {} [err_reqlof sticky/99]]"
532+ testouterr_cmd_re sh {load -f bar/2.0} $ans $tserr
533+
534+ setenv_var TESTSUITE_STICKY_SWITCH_DEP 2
535+ #FIXME: requirement (sticky/99) is missing, but bar/2.0 has been loaded
536+ # requirement is not expressed thus not reported in messages
537+ set ans [list]
538+ lappend ans [list set _LMFILES_ $mp/sticky/1.0:$mp/bar/2.0]
539+ lappend ans [list set LOADEDMODULES sticky/1.0:bar/2.0]
540+ lappend ans [list ERR]
541+ set tserr "[msg_switch {sticky/1.0 <S>} sticky/99 $err_path'sticky/99']
542+
543+ [msg_load bar/2.0 $err_stickyunload]"
544+ testouterr_cmd_re sh {load bar/2.0} $ans $tserr
545+
546+ set ans [list]
547+ lappend ans [list set __MODULES_LMPREREQ bar/2.0&sticky/99]
548+ lappend ans [list set _LMFILES_ $mp/bar/2.0]
549+ lappend ans [list set LOADEDMODULES bar/2.0]
550+ lappend ans [list unset __MODULES_LMTAG]
551+ lappend ans [list ERR]
552+ #FIXME: 'unable to locate modulefile' message is reported twice
553+ set tserr "[msg_unload {sticky/1.0 <S>} $err_stickyunloadf]
554+
555+ [msg_switch {sticky/1.0 <S>} sticky/99 $err_path'sticky/99' $err_path'sticky/99']
556+
557+ [msg_top_load bar/2.0 sticky/1.0 {} {} [err_reqlof sticky/99]]"
558+ testouterr_cmd_re sh {load -f bar/2.0} $ans $tserr
559+
560+
431561#
432562# Cleanup
433563#
0 commit comments