File tree Expand file tree Collapse file tree 3 files changed +15
-21
lines changed
testsuite/modules.50-cmds Expand file tree Collapse file tree 3 files changed +15
-21
lines changed Original file line number Diff line number Diff line change @@ -515,23 +515,13 @@ proc module {command args} {
515515 } else {
516516 # attempt load of not already loaded modules
517517 foreach arg $args {
518- if {![is-loaded $arg ] && ![is-loading $arg ]} {
519- lappend modlist $arg
520- } else {
521- lappend loadedmodlist $arg
518+ set retlo [loadRequirementModuleList $tag_list $arg ]
519+ # update return value if an issue occurred unless
520+ # force mode is enabled
521+ if {$retlo != 0 && ![getState force]} {
522+ set ret $retlo
522523 }
523524 }
524- if {[info exists modlist]} {
525- set ret [cmdModuleLoad reqlo 0 $tag_list {*}$modlist ]
526- # ignore obtained error if force mode enabled
527- if {[getState force]} {
528- set ret 0
529- }
530- }
531- # update tags on already loaded modules
532- if {[info exists loadedmodlist]} {
533- cmdModuleTag 0 0 $tag_list {*}$loadedmodlist
534- }
535525 }
536526 }
537527 # register modulefiles to load as individual prereqs or all at
Original file line number Diff line number Diff line change @@ -614,6 +614,8 @@ proc restoreSettings {} {
614614
615615# load modules passed as args designated as requirement
616616proc loadRequirementModuleList {tag_list args} {
617+ set ret 0
618+
617619 # calling procedure must have already parsed module specification in args
618620 foreach mod $args {
619621 # get first loaded or loading mod in args list
@@ -635,14 +637,19 @@ proc loadRequirementModuleList {tag_list args} {
635637 # those that failed if one succeed
636638 set curholdid load-$i -$arg
637639 lappendState reportholdid $curholdid
638- if {[catch {cmdModuleLoad reqlo 0 $tag_list $arg } errorMsg]} {
640+ if {[catch {set retlo [cmdModuleLoad reqlo 0 $tag_list $arg ]}\
641+ errorMsg]} {
639642 # if an error is raised, release output and rethrow the error
640643 # (could be raised if no modulepath defined for instance)
641644 lpopState reportholdid
642645 lappend holdidlist $curholdid report
643646 releaseHeldReport {*}$holdidlist
644647 knerror $errorMsg
645648 }
649+ # update return value if an issue occurred in cmdModuleLoad
650+ if {$retlo != 0} {
651+ set ret $retlo
652+ }
646653 lpopState reportholdid
647654
648655 if {[is-loaded $arg ]} {
@@ -663,6 +670,8 @@ proc loadRequirementModuleList {tag_list args} {
663670 # apply missing tag to first loaded module found
664671 cmdModuleTag 0 0 $tag_list $loadedmod
665672 }
673+
674+ return $ret
666675}
667676
668677# unload phase of a list of modules reload process
Original file line number Diff line number Diff line change @@ -138,11 +138,6 @@ lappend ans [list set LOADEDMODULES foo/1.0:bar/1.0:$mod]
138138lappend ans [list set __MODULES_LMTAG foo/1.0&keep-loaded:bar/1.0&keep-loaded&auto-loaded]
139139set tserr [msg_top_load $mod {} {bar/1.0} {}]
140140testouterr_cmd sh "load --auto $mod" $ans $tserr
141- set ans [list]
142- lappend ans [list set __MODULES_LMPREREQ $mod&foo/1.0&bar/1.0]
143- lappend ans [list set _LMFILES_ $mp/foo/1.0:$mp/bar/1.0:$modfile]
144- lappend ans [list set LOADEDMODULES foo/1.0:bar/1.0:$mod]
145- lappend ans [list set __MODULES_LMTAG bar/1.0&keep-loaded&auto-loaded:foo/1.0&keep-loaded]
146141testouterr_cmd sh "load --no-auto $mod" $ans $tserr
147142
148143setenv_loaded_module [list bar/1.0] [list $mp/bar/1.0]
You can’t perform that action at this time.
0 commit comments