diff --git a/testsuite/modulefiles.3/lcompat/1.0 b/testsuite/modulefiles.3/lcompat/1.0 index 5d4c20a9..a273ebb1 100644 --- a/testsuite/modulefiles.3/lcompat/1.0 +++ b/testsuite/modulefiles.3/lcompat/1.0 @@ -16,6 +16,19 @@ if {[info exists env(TESTSUITE_LCOMPAT)]} { addprop4 { add-property } + addprop5 { + add-property key {} + } + addprop6 { + add-property key loaded + } + addprop7 { + add-property key value:another:again + } + addprop8 { + add-property key value + remove-property key value + } } } diff --git a/testsuite/modules.50-cmds/510-add-property.exp b/testsuite/modules.50-cmds/510-add-property.exp index 8b7a2f97..5adfbebd 100644 --- a/testsuite/modules.50-cmds/510-add-property.exp +++ b/testsuite/modules.50-cmds/510-add-property.exp @@ -37,20 +37,24 @@ setenv_var TESTSUITE_LCOMPAT addprop1 set ans [list] lappend ans [list set _LMFILES_ $modfile] lappend ans [list set LOADEDMODULES $mod] +lappend ans [list set __MODULES_LMTAG $mod&value] testouterr_cmd sh "load $mod" $ans {} setenv_loaded_module [list $mod] [list $modfile] +setenv_var __MODULES_LMTAG $mod&value # unload set ans [list] lappend ans [list unset _LMFILES_] lappend ans [list unset LOADEDMODULES] +lappend ans [list unset __MODULES_LMTAG] testouterr_cmd sh "unload $mod" $ans {} # refresh testouterr_cmd sh {refresh} OK {} unsetenv_loaded_module +unsetenv_var __MODULES_LMTAG # whatis set tserr "$modlin $mpre $modlin @@ -85,25 +89,53 @@ testouterr_cmd_re sh "test $mod" OK $tserr setenv_var TESTSUITE_LCOMPAT addprop2 -set ans [list] -lappend ans [list set _LMFILES_ $modfile] -lappend ans [list set LOADEDMODULES $mod] -testouterr_cmd sh "load $mod" $ans {} +set ln [expr {[cmpversion $tclsh_version 8.6] == -1 ? 5 : 11}] +set tserr [escre [msg_load $mod [msg_moderr {wrong # args: should be "add-property name value"} {add-property key value val2} $mp/lcompat/1.0 $ln {} {} {} {} {invoked from within}]]] +testouterr_cmd_re sh "load $mod" ERR $tserr setenv_var TESTSUITE_LCOMPAT addprop3 +set ln [expr {[cmpversion $tclsh_version 8.6] == -1 ? 5 : 14}] +set tserr [escre [msg_load $mod [msg_moderr {wrong # args: should be "add-property name value"} {add-property key} $mp/lcompat/1.0 $ln {} {} {} {} {invoked from within}]]] +testouterr_cmd_re sh "load $mod" ERR $tserr + + +setenv_var TESTSUITE_LCOMPAT addprop4 + +set ln [expr {[cmpversion $tclsh_version 8.6] == -1 ? 5 : 17}] +set tserr [escre [msg_load $mod [msg_moderr {wrong # args: should be "add-property name value"} {add-property} $mp/lcompat/1.0 $ln {} {} {} {} {invoked from within}]]] +testouterr_cmd_re sh "load $mod" ERR $tserr + +setenv_var TESTSUITE_LCOMPAT addprop5 + +# empty tag name is ignored (no tag set) set ans [list] lappend ans [list set _LMFILES_ $modfile] lappend ans [list set LOADEDMODULES $mod] testouterr_cmd sh "load $mod" $ans {} +setenv_var TESTSUITE_LCOMPAT addprop6 -setenv_var TESTSUITE_LCOMPAT addprop4 +set ln [expr {[cmpversion $tclsh_version 8.6] == -1 ? 5 : 23}] +set tserr [escre [msg_load $mod [msg_moderr {'loaded' is a reserved tag name and cannot be set} {module-tag $tag $mod} $mp/lcompat/1.0 $ln]]] +testouterr_cmd_re sh "load $mod" ERR $tserr + +setenv_var TESTSUITE_LCOMPAT addprop7 set ans [list] lappend ans [list set _LMFILES_ $modfile] lappend ans [list set LOADEDMODULES $mod] +lappend ans [list set __MODULES_LMTAG $mod&value&another&again] +testouterr_cmd sh "load $mod" $ans {} + +setenv_var TESTSUITE_LCOMPAT addprop8 + +# remove-property is no-op +set ans [list] +lappend ans [list set _LMFILES_ $modfile] +lappend ans [list set LOADEDMODULES $mod] +lappend ans [list set __MODULES_LMTAG $mod&value] testouterr_cmd sh "load $mod" $ans {}