Ensure no duplicate in tags set to module

Update setModuleTag procedure to avoid adding a tag to module which is
already set to avoid duplicate entries. Adapt existing tests.
This commit is contained in:
Xavier Delaruelle
2021-12-18 14:13:23 +01:00
parent 45239f61ca
commit 9e5bed7f9a
5 changed files with 8 additions and 11 deletions

View File

@@ -685,7 +685,7 @@ proc collectModuleTags {mod} {
}
proc setModuleTag {mod args} {
lappend ::g_tagHash($mod) {*}$args
appendNoDupToList ::g_tagHash($mod) {*}$args
}
proc getTagList {mod {sort 1}} {

View File

@@ -108,7 +108,7 @@ unsetenv_var MODULES_ADVANCED_VERSION_SPEC
set ans [list]
lappend ans [list set _LMFILES_ $modfile]
lappend ans [list set LOADEDMODULES $mod]
lappend ans [list set __MODULES_LMTAG $mod&foo&bar&foo]
lappend ans [list set __MODULES_LMTAG $mod&foo&bar]
testouterr_cmd sh "load --tag=foo:bar:foo $mod" $ans {}
setenv_var TESTSUITE_TAG_OPT duprc1
@@ -256,7 +256,7 @@ set ans [list]
lappend ans [list set __MODULES_LMPREREQ $mod&foo/1.0]
lappend ans [list set _LMFILES_ $mp/foo/1.0:$modfile]
lappend ans [list set LOADEDMODULES foo/1.0:$mod]
lappend ans [list set __MODULES_LMTAG foo/1.0&foo&bar&foo&auto-loaded]
lappend ans [list set __MODULES_LMTAG foo/1.0&foo&bar&auto-loaded]
set tserr [msg_top_load $mod {} foo/1.0 {}]
testouterr_cmd sh "load $mod" $ans $tserr

View File

@@ -60,7 +60,7 @@ set ans [list]
lappend ans [list set __MODULES_LMPREREQ $mod&foo/1.0]
lappend ans [list set _LMFILES_ $mp/foo/1.0:$modfile]
lappend ans [list set LOADEDMODULES foo/1.0:$mod]
lappend ans [list set __MODULES_LMTAG foo/1.0&keep-loaded&keep-loaded&auto-loaded]
lappend ans [list set __MODULES_LMTAG foo/1.0&keep-loaded&auto-loaded]
set tserr [msg_top_load $mod {} foo/1.0 {}]
testouterr_cmd sh "load --auto $mod" $ans $tserr

View File

@@ -373,10 +373,10 @@ set c37mod2tag [list foo bar]
set c38modpath1 $modpath.3
set c38modpath1re [escre $c38modpath1]
set c38mod1 {variant/3.0}
set c38mod1tag [list foo foo auto-loaded]
set c38mod1tag [list foo auto-loaded]
set c38mod1vr [list {bar=val1}]
set c38mod2 {tag/8.0}
set c38mod2tag [list bar foo bar]
set c38mod2tag [list bar foo]
set c39modpath1 $modpath.3
set c39modpath1re [escre $c39modpath1]
set c39mod1 {tag/8.0}

View File

@@ -974,8 +974,7 @@ lappend ans [list set __MODULES_LMVARIANT $c37lmvr]
lappend ans [list set __MODULES_LMPREREQ $c37mod2&variant@3.0\ bar=val1]
lappend ans [list set _LMFILES_ $c37lmf]
lappend ans [list set LOADEDMODULES $c37lm]
#FIXME: need to unset tags set through setModuleTag when unloading module
lappend ans [list set __MODULES_LMTAG $c37mod1&foo&foo&auto-loaded:$c37mod2&[join $c37mod2tag &]]
lappend ans [list set __MODULES_LMTAG $c37mod1&foo&auto-loaded:$c37mod2&[join $c37mod2tag &]]
set tserr [msg_unload variant/3.0{bar=val1}]\n[msg_load variant/3.0{bar=val1}]\n[msg_load tag/8.0]
testouterr_cmd_re sh "restore $coll37fp" $ans $tserr
@@ -985,7 +984,6 @@ lappend ans [list set __MODULES_LMVARIANT $c37lmvr]
lappend ans [list set __MODULES_LMPREREQ $c37mod2&variant@3.0\ bar=val1]
lappend ans [list set _LMFILES_ $c37lmf]
lappend ans [list set LOADEDMODULES $c37lm]
#FIXME: need to unset tags set through setModuleTag when unloading module
lappend ans [list set __MODULES_LMTAG $c37mod1&bar&foo&auto-loaded:$c37mod2&[join $c37mod2tag &]]
set tserr [msg_unload variant/3.0{bar=val1}]\n[msg_load variant/3.0{bar=val1}]\n[msg_load tag/8.0]
testouterr_cmd_re sh "restore $coll37fp" $ans $tserr
@@ -1006,8 +1004,7 @@ lappend ans [list set __MODULES_LMVARIANT $c37lmvr]
lappend ans [list set __MODULES_LMPREREQ $c37mod2&variant@3.0\ bar=val1]
lappend ans [list set _LMFILES_ $c37lmf]
lappend ans [list set LOADEDMODULES $c37lm]
#FIXME: need to unset tags set through setModuleTag when unloading module
lappend ans [list set __MODULES_LMTAG $c37mod1&foo&auto-loaded&foo&auto-loaded:$c37mod2&[join $c37mod2tag &]]
lappend ans [list set __MODULES_LMTAG $c37mod1&foo&auto-loaded:$c37mod2&[join $c37mod2tag &]]
set tserr [msg_unload variant/3.0{bar=val1}]\n[msg_unload foo/1.0]\n[msg_load variant/3.0{bar=val1}]\n[msg_load tag/8.0]
testouterr_cmd_re sh "restore $coll37fp" $ans $tserr