1############################################################################## 2# Modules Revision 3.0 3# Providing a flexible user environment 4# 5# File: modules.20-locate/%M% 6# Revision: %I% 7# First Edition: 2020/08/16 8# Last Mod.: %U%, %G% 9# 10# Authors: Xavier Delaruelle, xavier.delaruelle@cea.fr 11# 12# Description: Testuite testsequence 13# Command: avail, load, list, unload, whatis, purge, reload, 14# is-avail 15# Modulefiles: 16# Sub-Command: 17# 18# Comment: %C{ 19# Hard hiding of modules with 'module-hide --hard' modulefile 20# command 21# }C% 22# 23############################################################################## 24 25# ensure avail tests are made using in depth mode 26setenv_var MODULES_AVAIL_INDEPTH 1 27 28# ensure avail tests have implicit default enabled 29setenv_var MODULES_IMPLICIT_DEFAULT 1 30 31# ensure regular avail search match is set for these tests 32setenv_var MODULES_SEARCH_MATCH starts_with 33 34# ensure extended default and advanced version specifiers are enabled for these tests 35setenv_var MODULES_ADVANCED_VERSION_SPEC 1 36setenv_var MODULES_EXTENDED_DEFAULT 1 37 38set mp $modpath.2 39set mpre $modpathre.2 40setenv_path_var MODULEPATH $mp 41 42if {[info exists env(MODULERCFILE)]} { 43 set ORIG_MODULERCFILE $env(MODULERCFILE) 44} 45setenv_var MODULERCFILE $env(TESTSUITEDIR)/etc/modulerc.hide 46 47 48# different set of valid forbidden specification 49setenv_var TESTSUITE_HIDE_HARD_SET1 1 50testouterr_cmd sh {load hide1@1.0} ERR [err_unablelocate hide1@1.0] 51testouterr_cmd sh {load hide1/3.1} ERR [err_unablelocate hide1/3.1] 52testouterr_cmd sh {load hide1@default} ERR [err_unablelocate hide1/3.1] 53set ans [list] 54lappend ans [list setpath LOADEDMODULES hide1/4.0] 55lappend ans [list setpath _LMFILES_ $mp/hide1/4.0] 56# hide1/3.1 is skipped even if default and specifically mentionned in query 57testouterr_cmd sh {load hide1@3.1,4.0} $ans {} 58testouterr_cmd sh {load hide1} ERR [err_unablelocate hide1/3.1] 59testouterr_cmd sh {load hide1/} ERR [err_unablelocate hide1/3.1] 60testouterr_cmd sh {load hide1//} ERR [err_unablelocate hide1/3.1] 61testouterr_cmd sh {load hide1@2:4} $ans {} 62testouterr_cmd sh {load hide1@3,4} $ans {} 63 64# forbidden modules are hidden even if specified in query 65testouterr_cmd sh {avail -t hide1@1.0} OK {} 66testouterr_cmd sh {avail -t hide1/3.1} OK {} 67testouterr_cmd sh {avail -t hide1} OK $mp:\nhide1/2.0\nhide1/2.1\nhide1/2.2\nhide1/3.0\nhide1/3.2\nhide1/4.0\nhide1/5.0 68testouterr_cmd sh {avail -t hide1@2:4} OK $mp:\nhide1/2.0\nhide1/2.1\nhide1/2.2\nhide1/3.0\nhide1/3.2\nhide1/4.0 69testouterr_cmd sh {avail -t hide1@3,4} OK $mp:\nhide1/3.0\nhide1/3.2\nhide1/4.0 70testouterr_cmd sh {avail -t hide1@3.1,4.0} OK $mp:\nhide1/4.0 71 72# same result expected than avail 73set tserr "$modlin $mpre $modlin" 74testouterr_cmd_re sh {whatis hide1@1.0} ERR [err_unablelocate hide1@1.0] 75testouterr_cmd_re sh {whatis hide1/3.1} ERR [err_unablelocate hide1/3.1] 76testouterr_cmd_re sh {whatis hide1} OK "$tserr\n\\s+hide1/2.0: hide1/2.0\n\\s+hide1/2.1: hide1/2.1\n\\s+hide1/2.2: hide1/2.2\n\\s+hide1/3.0: hide1/3.0\n\\s+hide1/3.2: hide1/3.2\n\\s+hide1/4.0: hide1/4.0\n\\s+hide1/5.0: hide1/5.0" 77testouterr_cmd_re sh {whatis hide1@2:4} OK "$tserr\n\\s+hide1/2.0: hide1/2.0\n\\s+hide1/2.1: hide1/2.1\n\\s+hide1/2.2: hide1/2.2\n\\s+hide1/3.0: hide1/3.0\n\\s+hide1/3.2: hide1/3.2\n\\s+hide1/4.0: hide1/4.0" 78testouterr_cmd_re sh {whatis hide1@3,4} OK "$tserr\n\\s+hide1/3.0: hide1/3.0\n\\s+hide1/3.2: hide1/3.2\n\\s+hide1/4.0: hide1/4.0" 79testouterr_cmd_re sh {whatis hide1@3.1,4.0} OK "$tserr\n\\s+hide1/4.0: hide1/4.0" 80 81# same result expected than load 82testouterr_cmd_re sh {load --auto hidereq/1.0} ERR [msg_load hidereq/1.0 [err_unablelocate hide1@1.0] [err_reqlo hide1@1.0]] 83testouterr_cmd_re sh {load --auto hidereq/1.1} ERR [msg_load hidereq/1.1 [err_unablelocate hide1@3.1] [err_reqlo hide1@3.1]] 84testouterr_cmd_re sh {load --auto hidereq/1.2} ERR [msg_load hidereq/1.2 [err_unablelocate hide1/3.1] [err_reqlo hide1]] 85set ans [list] 86lappend ans [list setpath LOADEDMODULES hide1/4.0:hidereq/1.3] 87lappend ans [list setpath _LMFILES_ $mp/hide1/4.0:$mp/hidereq/1.3] 88lappend ans [list setpath MODULES_LMNOTUASKED hide1/4.0] 89lappend ans [list setpath MODULES_LMPREREQ hidereq/1.3&hide1@2<4] 90testouterr_cmd_re sh {load --auto hidereq/1.3} $ans [msg_top_load hidereq/1.3 {} hide1/4.0 {}] 91set ans [list] 92lappend ans [list setpath LOADEDMODULES hide1/4.0:hidereq/1.4] 93lappend ans [list setpath _LMFILES_ $mp/hide1/4.0:$mp/hidereq/1.4] 94lappend ans [list setpath MODULES_LMNOTUASKED hide1/4.0] 95lappend ans [list setpath MODULES_LMPREREQ hidereq/1.4&hide1@3,4] 96testouterr_cmd_re sh {load --auto hidereq/1.4} $ans [msg_top_load hidereq/1.4 {} hide1/4.0 {}] 97set ans [list] 98lappend ans [list setpath LOADEDMODULES hide1/4.0:hidereq/1.5] 99lappend ans [list setpath _LMFILES_ $mp/hide1/4.0:$mp/hidereq/1.5] 100lappend ans [list setpath MODULES_LMNOTUASKED hide1/4.0] 101lappend ans [list setpath MODULES_LMPREREQ hidereq/1.5&hide1@3.1,4.0] 102testouterr_cmd_re sh {load --auto hidereq/1.5} $ans [msg_top_load hidereq/1.5 {} hide1/4.0 {}] 103 104unsetenv_var TESTSUITE_HIDE_HARD_SET1 105 106 107setenv_var TESTSUITE_HIDE_HARD_SET2 1 108set ans [list] 109lappend ans [list setpath LOADEDMODULES hide1/3.2] 110lappend ans [list setpath _LMFILES_ $mp/hide1/3.2] 111lappend ans [list setpath MODULES_LMALTNAME hide1/3.2&as|hide1/latest] 112testouterr_cmd sh {load hide1@latest} $ans {} 113set ans [list] 114lappend ans [list setpath LOADEDMODULES hide1/3.1] 115lappend ans [list setpath _LMFILES_ $mp/hide1/3.1] 116lappend ans [list setpath MODULES_LMALTNAME hide1/3.1&hide1/default&hide1] 117testouterr_cmd sh {load hide1} $ans {} 118testouterr_cmd sh {load hide1@5} ERR $err_path'hide1@5' 119testouterr_cmd sh {load hide1@4:} ERR $err_path'hide1@4:' 120testouterr_cmd sh {load hide1@4.0:} ERR [err_unablelocate hide1@4.0:] 121set ans [list] 122lappend ans [list setpath LOADEDMODULES hide1/2.2] 123lappend ans [list setpath _LMFILES_ $mp/hide1/2.2] 124testouterr_cmd sh {load hide1@2,5} $ans {} 125testouterr_cmd sh {load hide1@2.2,5.0} $ans {} 126 127testouterr_cmd sh {avail -t hide1@latest} OK $mp:\nhide1/3.2 128testouterr_cmd sh {avail -t hide1} OK $mp:\nhide1/1.0\nhide1/2.0\nhide1/2.1\nhide1/2.2\nhide1/3.0\nhide1/3.1(default)\nhide1/3.2 129testouterr_cmd sh {avail -t hide1@5} OK {} 130testouterr_cmd sh {avail -t hide1@4:} OK {} 131testouterr_cmd sh {avail -t hide1@4.0:} OK {} 132testouterr_cmd sh {avail -t hide1@2,5} OK $mp:\nhide1/2.0\nhide1/2.1\nhide1/2.2 133testouterr_cmd sh {avail -t hide1@2.2,5.0} OK $mp:\nhide1/2.2 134 135# same result expected than avail 136set tserr "$modlin $mpre $modlin" 137testouterr_cmd_re sh {whatis hide1@latest} OK "$tserr\n\\s+hide1/3.2: hide1/3.2" 138testouterr_cmd_re sh {whatis hide1} OK "$tserr\n\\s+hide1/1.0: hide1/1.0\n\\s+hide1/2.0: hide1/2.0\n\\s+hide1/2.1: hide1/2.1\n\\s+hide1/2.2: hide1/2.2\n\\s+hide1/3.0: hide1/3.0\n\\s+hide1/3.1: hide1/3.1\n\\s+hide1/3.2: hide1/3.2" 139testouterr_cmd_re sh {whatis hide1@5} ERR $err_path'hide1@5' 140testouterr_cmd_re sh {whatis hide1@4:} ERR $err_path'hide1@4:' 141testouterr_cmd_re sh {whatis hide1@4.0:} ERR [err_unablelocate hide1@4.0:] 142testouterr_cmd_re sh {whatis hide1@2,5} OK "$tserr\n\\s+hide1/2.0: hide1/2.0\n\\s+hide1/2.1: hide1/2.1\n\\s+hide1/2.2: hide1/2.2" 143testouterr_cmd_re sh {whatis hide1@2.2,5.0} OK "$tserr\n\\s+hide1/2.2: hide1/2.2" 144 145# same result expected than load 146set ans [list] 147lappend ans [list setpath LOADEDMODULES hide1/3.2:hidereq/2.0] 148lappend ans [list setpath _LMFILES_ $mp/hide1/3.2:$mp/hidereq/2.0] 149lappend ans [list setpath MODULES_LMNOTUASKED hide1/3.2] 150lappend ans [list setpath MODULES_LMPREREQ hidereq/2.0&hide1@latest] 151lappend ans [list setpath MODULES_LMALTNAME hide1/3.2&as|hide1/latest] 152testouterr_cmd_re sh {load --auto hidereq/2.0} $ans [msg_top_load hidereq/2.0 {} hide1/3.2 {}] 153set ans [list] 154lappend ans [list setpath LOADEDMODULES hide1/3.1:hidereq/2.1] 155lappend ans [list setpath _LMFILES_ $mp/hide1/3.1:$mp/hidereq/2.1] 156lappend ans [list setpath MODULES_LMNOTUASKED hide1/3.1] 157lappend ans [list setpath MODULES_LMPREREQ hidereq/2.1&hide1] 158lappend ans [list setpath MODULES_LMALTNAME hide1/3.1&hide1/default&hide1] 159testouterr_cmd_re sh {load --auto hidereq/2.1} $ans [msg_top_load hidereq/2.1 {} hide1/3.1 {}] 160testouterr_cmd_re sh {load --auto hidereq/2.2} ERR [msg_load hidereq/2.2 $err_path'hide1@5' [err_reqlo hide1@5]] 161testouterr_cmd_re sh {load --auto hidereq/2.3} ERR [msg_load hidereq/2.3 $err_path'hide1@4:' [err_reqlo hide1@4:]] 162testouterr_cmd_re sh {load --auto hidereq/2.4} ERR [msg_load hidereq/2.4 [err_unablelocate hide1@4.0:] [err_reqlo hide1@4.0:]] 163set ans [list] 164lappend ans [list setpath LOADEDMODULES hide1/2.2:hidereq/2.5] 165lappend ans [list setpath _LMFILES_ $mp/hide1/2.2:$mp/hidereq/2.5] 166lappend ans [list setpath MODULES_LMNOTUASKED hide1/2.2] 167lappend ans [list setpath MODULES_LMPREREQ hidereq/2.5&hide1@2,5] 168testouterr_cmd_re sh {load --auto hidereq/2.5} $ans [msg_top_load hidereq/2.5 {} hide1/2.2 {}] 169set ans [list] 170lappend ans [list setpath LOADEDMODULES hide1/2.2:hidereq/2.6] 171lappend ans [list setpath _LMFILES_ $mp/hide1/2.2:$mp/hidereq/2.6] 172lappend ans [list setpath MODULES_LMNOTUASKED hide1/2.2] 173lappend ans [list setpath MODULES_LMPREREQ hidereq/2.6&hide1@2.2,5.0] 174testouterr_cmd_re sh {load --auto hidereq/2.6} $ans [msg_top_load hidereq/2.6 {} hide1/2.2 {}] 175 176unsetenv_var TESTSUITE_HIDE_HARD_SET2 177 178 179# impact on alias, symbol, virtual module 180setenv_var TESTSUITE_HIDE2_HARD_SET1 1 181set ans2 [list] 182lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 183lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 184lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 185set ans4 [list] 186lappend ans4 [list setpath LOADEDMODULES hide2/1.5:hide2/1.0:hidereq/3.0] 187lappend ans4 [list setpath _LMFILES_ $mp/hide2/1.0:$mp/hide2/1.0:$mp/hidereq/3.0] 188lappend ans4 [list setpath MODULES_LMPREREQ hidereq/3.0&hide2/1.5&hide2/1.1] 189lappend ans4 [list setpath MODULES_LMNOTUASKED hide2/1.5:hide2/1.0] 190lappend ans4 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest:hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1&hide2/1.2] 191testouterr_cmd sh {load hide2} $ans2 {} 192testouterr_cmd sh {load hide2/1.0} ERR [err_unablelocate hide2/1.0] 193testouterr_cmd sh {load hide2/1.1} ERR [err_unablelocate hide2/1.0] 194testouterr_cmd sh {load hide2/1.2} ERR [err_unablelocate hide2/1.0] 195testouterr_cmd sh {load hide2/1.3} ERR [err_unablelocate hide2/1.0] 196testouterr_cmd sh {load hide2/1.4} ERR [err_unablelocate hide2/1.0] 197testouterr_cmd sh {load hide2/1.5} $ans2 {} 198testouterr_cmd sh {load hide2@default} $ans2 {} 199testouterr_cmd sh {load hide2@latest} $ans2 {} 200testouterr_cmd_re sh {load --auto hidereq/3.0} ERR [msg_load hidereq/3.0 [err_unablelocate hide2/1.0] [err_reqlo hide2/1.1]] 201testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.1(@)\nhide2/1.5" 202testouterr_cmd sh {avail -t hide2/1.0} OK {} 203testouterr_cmd sh {avail -t hide2/1.1} OK $mp:\nhide2/1.1(@) 204testouterr_cmd sh {avail -t hide2/1.2} OK {} 205testouterr_cmd sh {avail -t hide2/1.3} OK "global/user modulerc:\nhide2/1.3(@)" 206testouterr_cmd sh {avail -t hide2/1.4} OK {} 207testouterr_cmd sh {avail -t hide2/1.5} OK $mp:\nhide2/1.5 208testouterr_cmd sh {avail -t hide2@default} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 209testouterr_cmd sh {avail -t hide2@latest} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 210testouterr_cmd sh {avail -t -d hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 211testouterr_cmd sh {avail -t -L hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 212set tserr "$modlin $mpre $modlin" 213testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 214testouterr_cmd_re sh {whatis hide2/1.0} ERR [err_unablelocate hide2/1.0] 215testouterr_cmd_re sh {whatis hide2/1.1} ERR [err_unablelocate hide2/1.0] 216testouterr_cmd_re sh {whatis hide2/1.2} ERR [err_unablelocate hide2/1.0] 217testouterr_cmd_re sh {whatis hide2/1.3} ERR [err_unablelocate hide2/1.0] 218testouterr_cmd_re sh {whatis hide2/1.4} ERR [err_unablelocate hide2/1.0] 219testouterr_cmd_re sh {whatis hide2/1.5} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 220testouterr_cmd_re sh {whatis hide2@default} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 221testouterr_cmd_re sh {whatis hide2@latest} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 222unsetenv_var TESTSUITE_HIDE2_HARD_SET1 223 224setenv_var TESTSUITE_HIDE2_HARD_SET2 1 225set ans [list] 226lappend ans [list setpath LOADEDMODULES hide2/1.0] 227lappend ans [list setpath _LMFILES_ $mp/hide2/1.0] 228lappend ans [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.2] 229set ans2 [list] 230lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 231lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 232lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 233testouterr_cmd sh {load hide2} $ans2 {} 234testouterr_cmd sh {load hide2/1.0} $ans {} 235testouterr_cmd sh {load hide2/1.1} ERR [err_unablelocate hide2/1.1] 236testouterr_cmd_re sh {load --auto hidereq/3.0} ERR [msg_load hidereq/3.0 [err_unablelocate hide2/1.1] [err_reqlo hide2/1.1]] 237testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.0(1.2:1.4)\nhide2/1.5" 238testouterr_cmd sh {avail -t hide2/1.0} OK $mp:\nhide2/1.0(1.2:1.4) 239testouterr_cmd sh {avail -t hide2/1.1} OK {} 240set tserr "$modlin $mpre $modlin" 241testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.0: hide2/1.0\n\\s+hide2/1.5: hide2/1.5" 242testouterr_cmd_re sh {whatis hide2/1.0} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 243testouterr_cmd_re sh {whatis hide2/1.1} ERR [err_unablelocate hide2/1.1] 244unsetenv_var TESTSUITE_HIDE2_HARD_SET2 245 246setenv_var TESTSUITE_HIDE2_HARD_SET3 1 247set ans [list] 248lappend ans [list setpath LOADEDMODULES hide2/1.0] 249lappend ans [list setpath _LMFILES_ $mp/hide2/1.0] 250lappend ans [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1] 251set ans2 [list] 252lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 253lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 254lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 255testouterr_cmd sh {load hide2} $ans2 {} 256testouterr_cmd sh {load hide2/1.0} $ans {} 257testouterr_cmd sh {load hide2/1.2} ERR [err_unablelocate hide2/1.2] 258testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.0(1.4)\nhide2/1.1(@)\nhide2/1.5" 259testouterr_cmd sh {avail -t hide2/1.0} OK $mp:\nhide2/1.0(1.4) 260testouterr_cmd sh {avail -t hide2/1.2} OK {} 261set tserr "$modlin $mpre $modlin" 262testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.0: hide2/1.0\n\\s+hide2/1.5: hide2/1.5" 263testouterr_cmd_re sh {whatis hide2/1.0} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 264testouterr_cmd_re sh {whatis hide2/1.2} ERR [err_unablelocate hide2/1.2] 265unsetenv_var TESTSUITE_HIDE2_HARD_SET3 266 267setenv_var TESTSUITE_HIDE2_HARD_SET4 1 268set ans [list] 269lappend ans [list setpath LOADEDMODULES hide2/1.0] 270lappend ans [list setpath _LMFILES_ $mp/hide2/1.0] 271lappend ans [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.4&hide2/1.1&hide2/1.2] 272set ans2 [list] 273lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 274lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 275lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 276testouterr_cmd sh {load hide2} $ans2 {} 277testouterr_cmd sh {load hide2/1.0} $ans {} 278testouterr_cmd sh {load hide2/1.3} ERR [err_unablelocate hide2/1.3] 279# hide2/1.3 is still visible as declared forbidden in a later modulepath 280testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.0(1.2:1.4)\nhide2/1.1(@)\nhide2/1.5" 281testouterr_cmd sh {avail -t hide2/1.0} OK $mp:\nhide2/1.0(1.2:1.4) 282testouterr_cmd sh {avail -t hide2/1.3} OK "global/user modulerc:\nhide2/1.3(@)" 283set tserr "$modlin $mpre $modlin" 284testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.0: hide2/1.0\n\\s+hide2/1.5: hide2/1.5" 285testouterr_cmd_re sh {whatis hide2/1.0} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 286testouterr_cmd_re sh {whatis hide2/1.3} ERR [err_unablelocate hide2/1.3] 287unsetenv_var TESTSUITE_HIDE2_HARD_SET4 288 289setenv_var TESTSUITE_HIDE2_HARD_SET5 1 290set ans [list] 291lappend ans [list setpath LOADEDMODULES hide2/1.0] 292lappend ans [list setpath _LMFILES_ $mp/hide2/1.0] 293lappend ans [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.1&hide2/1.2] 294set ans2 [list] 295lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 296lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 297lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 298testouterr_cmd sh {load hide2} $ans2 {} 299testouterr_cmd sh {load hide2/1.0} $ans {} 300testouterr_cmd sh {load hide2/1.4} ERR [err_unablelocate hide2/1.4] 301# hide2/1.4 is still visible as declared forbidden in a later modulepath 302testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.0(1.2:1.4)\nhide2/1.1(@)\nhide2/1.5" 303testouterr_cmd sh {avail -t hide2/1.0} OK $mp:\nhide2/1.0(1.2:1.4) 304testouterr_cmd sh {avail -t hide2/1.4} OK {} 305set tserr "$modlin $mpre $modlin" 306testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.0: hide2/1.0\n\\s+hide2/1.5: hide2/1.5" 307testouterr_cmd_re sh {whatis hide2/1.0} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 308testouterr_cmd_re sh {whatis hide2/1.4} ERR [err_unablelocate hide2/1.4] 309unsetenv_var TESTSUITE_HIDE2_HARD_SET5 310 311setenv_var TESTSUITE_HIDE2_HARD_SET6 1 312set ans [list] 313lappend ans [list setpath LOADEDMODULES hide2/1.0] 314lappend ans [list setpath _LMFILES_ $mp/hide2/1.0] 315lappend ans [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1&hide2/1.2&as|hide2/default&as|hide2/latest] 316testouterr_cmd sh {load hide2} $ans {} 317testouterr_cmd sh {load hide2/1.0} $ans {} 318testouterr_cmd sh {load hide2/1.5} ERR [err_unablelocate hide2/1.5] 319testouterr_cmd sh {load hide2@default} $ans {} 320testouterr_cmd sh {load hide2@latest} $ans {} 321testouterr_cmd_re sh {load --auto hidereq/3.0} ERR [msg_load hidereq/3.0 [err_unablelocate hide2/1.5] [err_reqlo hide2/1.5]] 322testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.0(1.2:1.4)\nhide2/1.1(@)" 323testouterr_cmd sh {avail -t hide2/1.0} OK $mp:\nhide2/1.0(1.2:1.4) 324testouterr_cmd sh {avail -t hide2/1.5} OK {} 325# symbolic version does not count when looking for a default or latest (highest modulefile or alias is used) 326testouterr_cmd sh {avail -t hide2@default} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.1(@)" 327testouterr_cmd sh {avail -t hide2@latest} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.1(@)" 328set tserr "$modlin $mpre $modlin" 329testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 330testouterr_cmd_re sh {whatis hide2/1.0} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 331testouterr_cmd_re sh {whatis hide2/1.5} ERR [err_unablelocate hide2/1.5] 332testouterr_cmd_re sh {whatis hide2@default} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 333testouterr_cmd_re sh {whatis hide2@latest} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 334unsetenv_var TESTSUITE_HIDE2_HARD_SET6 335 336setenv_var TESTSUITE_HIDE2_HARD_SET7 1 337set ans2 [list] 338lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 339lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 340lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 341testouterr_cmd sh {load hide2} $ans2 {} 342testouterr_cmd sh {load hide2/1.0} ERR [err_unablelocate hide2/1.0] 343set ans3 [list] 344lappend ans3 [list setpath LOADEDMODULES hide2/1.0] 345lappend ans3 [list setpath _LMFILES_ $mp/hide2/1.0] 346lappend ans3 [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.4&hide2/1.1&hide2/1.2] 347testouterr_cmd sh {load hide2/1.1} ERR [err_unablelocate hide2/1.1] 348testouterr_cmd sh {load hide2/1.2} ERR [err_unablelocate hide2/1.0] 349set ans3 [list] 350lappend ans3 [list setpath LOADEDMODULES hide2/1.0] 351lappend ans3 [list setpath _LMFILES_ $mp/hide2/1.0] 352lappend ans3 [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.2] 353testouterr_cmd sh {load hide2/1.3} ERR [err_unablelocate hide2/1.3] 354testouterr_cmd sh {load hide2/1.4} ERR [err_unablelocate hide2/1.0] 355testouterr_cmd_re sh {load --auto hidereq/3.0} ERR [msg_load hidereq/3.0 [err_unablelocate hide2/1.1] [err_reqlo hide2/1.1]] 356testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 357testouterr_cmd sh {avail -t hide2/1.0} OK {} 358testouterr_cmd sh {avail -t hide2/1.1} OK {} 359testouterr_cmd sh {avail -t hide2/1.2} OK {} 360testouterr_cmd sh {avail -t hide2/1.3} OK "global/user modulerc:\nhide2/1.3(@)" 361testouterr_cmd sh {avail -t hide2/1.4} OK {} 362set tserr "$modlin $mpre $modlin" 363testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 364testouterr_cmd_re sh {whatis hide2/1.0} ERR [err_unablelocate hide2/1.0] 365testouterr_cmd_re sh {whatis hide2/1.1} ERR [err_unablelocate hide2/1.1] 366testouterr_cmd_re sh {whatis hide2/1.2} ERR [err_unablelocate hide2/1.0] 367testouterr_cmd_re sh {whatis hide2/1.3} ERR [err_unablelocate hide2/1.3] 368testouterr_cmd_re sh {whatis hide2/1.4} ERR [err_unablelocate hide2/1.0] 369unsetenv_var TESTSUITE_HIDE2_HARD_SET7 370 371setenv_var TESTSUITE_HIDE2_HARD_SET8 1 372set ans [list] 373lappend ans [list setpath LOADEDMODULES hide2/1.0] 374lappend ans [list setpath _LMFILES_ $mp/hide2/1.0] 375lappend ans [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.1&hide2/1.2] 376set ans2 [list] 377lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 378lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 379lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 380testouterr_cmd sh {load hide2} $ans2 {} 381testouterr_cmd sh {load hide2/1.0} $ans {} 382testouterr_cmd sh {load hide2/1.3} ERR [err_unablelocate hide2/1.3] 383testouterr_cmd sh {load hide2/1.4} ERR [err_unablelocate hide2/1.4] 384testouterr_cmd sh {avail -t hide2} OK "$mp:\nhide2/1.0(1.2)\nhide2/1.1(@)\nhide2/1.5" 385testouterr_cmd sh {avail -t hide2/1.0} OK $mp:\nhide2/1.0(1.2) 386testouterr_cmd sh {avail -t hide2/1.3} OK {} 387testouterr_cmd sh {avail -t hide2/1.4} OK {} 388set tserr "$modlin $mpre $modlin" 389testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.0: hide2/1.0\n\\s+hide2/1.5: hide2/1.5" 390testouterr_cmd_re sh {whatis hide2/1.0} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 391testouterr_cmd_re sh {whatis hide2/1.3} ERR [err_unablelocate hide2/1.3] 392testouterr_cmd_re sh {whatis hide2/1.4} ERR [err_unablelocate hide2/1.4] 393unsetenv_var TESTSUITE_HIDE2_HARD_SET8 394 395setenv_var TESTSUITE_HIDE2_HARD_SET9 1 396set ans [list] 397lappend ans [list setpath LOADEDMODULES hide2/1.0] 398lappend ans [list setpath _LMFILES_ $mp/hide2/1.0] 399lappend ans [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.2&hide2/1.6] 400set ans2 [list] 401lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 402lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 403lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 404testouterr_cmd sh {load hide2} $ans2 {} 405testouterr_cmd sh {load hide2/1.0} $ans {} 406testouterr_cmd sh {load hide2/1.1} ERR [err_unablelocate hide2/1.1] 407# hide2/1.1 alias is forbidden, but transitive set of 1.6 symbol to hide2/1.0 is still effective 408testouterr_cmd sh {load hide2/1.6} $ans {} 409testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.0(1.2:1.4:1.6)\nhide2/1.5" 410testouterr_cmd sh {avail -t hide2/1.0} OK $mp:\nhide2/1.0(1.2:1.4:1.6) 411testouterr_cmd sh {avail -t hide2/1.1} OK {} 412# hide2/1.1 alias is forbidden so only the transitive set of 1.6 symbol to hide2/1.0 will be reported 413testouterr_cmd sh {avail -t hide2/1.6} OK $mp:\nhide2/1.0(1.2:1.4:1.6) 414set tserr "$modlin $mpre $modlin" 415testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.0: hide2/1.0\n\\s+hide2/1.5: hide2/1.5" 416testouterr_cmd_re sh {whatis hide2/1.0} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 417testouterr_cmd_re sh {whatis hide2/1.1} ERR [err_unablelocate hide2/1.1] 418testouterr_cmd_re sh {whatis hide2/1.6} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 419unsetenv_var TESTSUITE_HIDE2_HARD_SET9 420 421setenv_var TESTSUITE_HIDE2_HARD_SET10 1 422set ans [list] 423lappend ans [list setpath LOADEDMODULES hide2/1.0] 424lappend ans [list setpath _LMFILES_ $mp/hide2/1.0] 425lappend ans [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1&hide2/1.2] 426set ans2 [list] 427lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 428lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 429lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 430set ans4 [list] 431lappend ans4 [list setpath LOADEDMODULES hide2/1.5:hide2/1.0:hidereq/3.0] 432lappend ans4 [list setpath _LMFILES_ $mp/hide2/1.0:$mp/hide2/1.0:$mp/hidereq/3.0] 433lappend ans4 [list setpath MODULES_LMPREREQ hidereq/3.0&hide2/1.5&hide2/1.1] 434lappend ans4 [list setpath MODULES_LMNOTUASKED hide2/1.5:hide2/1.0] 435lappend ans4 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest:hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1&hide2/1.2] 436# has hide2/default is clearly, stage is set for @default auto-symbol 437testouterr_cmd sh {load hide2} $ans2 {} 438testouterr_cmd sh {load hide2/1.0} $ans {} 439testouterr_cmd sh {load hide2/1.5} $ans2 {} 440testouterr_cmd sh {load hide2@default} $ans2 {} 441testouterr_cmd sh {load hide2@latest} $ans2 {} 442testouterr_cmd_re sh {load --auto hidereq/3.0} $ans4 [msg_top_load hidereq/3.0 {} {hide2/1.5 hide2/1.0} {}] 443testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.0(1.2:1.4)\nhide2/1.1(@)\nhide2/1.5" 444testouterr_cmd sh {avail -t hide2/1.0} OK $mp:\nhide2/1.0(1.2:1.4) 445testouterr_cmd sh {avail -t hide2/1.5} OK $mp:\nhide2/1.5 446testouterr_cmd sh {avail -t hide2@default} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 447testouterr_cmd sh {avail -t hide2@latest} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 448testouterr_cmd sh {avail -t -d hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 449testouterr_cmd sh {avail -t -L hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 450set tserr "$modlin $mpre $modlin" 451testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.0: hide2/1.0\n\\s+hide2/1.5: hide2/1.5" 452testouterr_cmd_re sh {whatis hide2/1.0} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 453testouterr_cmd_re sh {whatis hide2/1.5} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 454testouterr_cmd_re sh {whatis hide2@default} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 455testouterr_cmd_re sh {whatis hide2@latest} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 456unsetenv_var TESTSUITE_HIDE2_HARD_SET10 457 458setenv_var TESTSUITE_HIDE2_HARD_SET11 1 459set ans2 [list] 460lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 461lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 462lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/latest] 463testouterr_cmd sh {load hide2} ERR [err_unablelocate hide2/1.0] 464testouterr_cmd sh {load hide2/1.0} ERR [err_unablelocate hide2/1.0] 465testouterr_cmd sh {load hide2/1.1} ERR [err_unablelocate hide2/1.0] 466testouterr_cmd sh {load hide2/1.2} ERR [err_unablelocate hide2/1.0] 467testouterr_cmd sh {load hide2/1.3} ERR [err_unablelocate hide2/1.0] 468testouterr_cmd sh {load hide2/1.4} ERR [err_unablelocate hide2/1.0] 469testouterr_cmd sh {load hide2/1.5} $ans2 {} 470testouterr_cmd sh {load hide2@default} ERR [err_unablelocate hide2/1.0] 471testouterr_cmd sh {load hide2@latest} $ans2 {} 472testouterr_cmd_re sh {load --auto hidereq/3.0} ERR [msg_load hidereq/3.0 [err_unablelocate hide2/1.0] [err_reqlo hide2/1.1]] 473testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.1(@)\nhide2/1.5" 474testouterr_cmd sh {avail -t hide2/1.0} OK {} 475testouterr_cmd sh {avail -t hide2/1.1} OK $mp:\nhide2/1.1(@) 476testouterr_cmd sh {avail -t hide2/1.2} OK {} 477testouterr_cmd sh {avail -t hide2/1.3} OK "global/user modulerc:\nhide2/1.3(@)" 478testouterr_cmd sh {avail -t hide2/1.4} OK {} 479testouterr_cmd sh {avail -t hide2/1.5} OK $mp:\nhide2/1.5 480testouterr_cmd sh {avail -t hide2@default} OK "global/user modulerc:\nhide2/1.3(@)" 481testouterr_cmd sh {avail -t hide2@latest} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 482testouterr_cmd sh {avail -t -d hide2} OK "global/user modulerc:\nhide2/1.3(@)" 483testouterr_cmd sh {avail -t -L hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 484set tserr "$modlin $mpre $modlin" 485testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 486testouterr_cmd_re sh {whatis hide2/1.0} ERR [err_unablelocate hide2/1.0] 487testouterr_cmd_re sh {whatis hide2/1.1} ERR [err_unablelocate hide2/1.0] 488testouterr_cmd_re sh {whatis hide2/1.2} ERR [err_unablelocate hide2/1.0] 489testouterr_cmd_re sh {whatis hide2/1.3} ERR [err_unablelocate hide2/1.0] 490testouterr_cmd_re sh {whatis hide2/1.4} ERR [err_unablelocate hide2/1.0] 491testouterr_cmd_re sh {whatis hide2/1.5} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 492testouterr_cmd_re sh {whatis hide2@default} ERR [err_unablelocate hide2/1.0] 493testouterr_cmd_re sh {whatis hide2@latest} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 494unsetenv_var TESTSUITE_HIDE2_HARD_SET11 495 496setenv_var TESTSUITE_HIDE2_HARD_SET12 1 497set ans2 [list] 498lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 499lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 500lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 501testouterr_cmd sh {load hide2} $ans2 {} 502testouterr_cmd sh {load hide2/1.0} ERR [err_unablelocate hide2/1.0] 503testouterr_cmd sh {load hide2/1.1} ERR [err_unablelocate hide2/1.0] 504testouterr_cmd sh {load hide2/1.2} ERR [err_unablelocate hide2/1.0] 505testouterr_cmd sh {load hide2/1.3} ERR [err_unablelocate hide2/1.0] 506testouterr_cmd sh {load hide2/1.4} ERR [err_unablelocate hide2/1.0] 507testouterr_cmd sh {load hide2/1.5} $ans2 {} 508testouterr_cmd sh {load hide2@default} $ans2 {} 509testouterr_cmd sh {load hide2@latest} $ans2 {} 510testouterr_cmd_re sh {load --auto hidereq/3.0} ERR [msg_load hidereq/3.0 [err_unablelocate hide2/1.0] [err_reqlo hide2/1.1]] 511testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.1(@)\nhide2/1.5" 512testouterr_cmd sh {avail -t hide2/1.0} OK {} 513testouterr_cmd sh {avail -t hide2/1.1} OK $mp:\nhide2/1.1(@) 514testouterr_cmd sh {avail -t hide2/1.2} OK {} 515testouterr_cmd sh {avail -t hide2/1.3} OK "global/user modulerc:\nhide2/1.3(@)" 516testouterr_cmd sh {avail -t hide2/1.4} OK {} 517testouterr_cmd sh {avail -t hide2/1.5} OK $mp:\nhide2/1.5 518testouterr_cmd sh {avail -t hide2@default} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 519testouterr_cmd sh {avail -t hide2@latest} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 520testouterr_cmd sh {avail -t -d hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 521testouterr_cmd sh {avail -t -L hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 522set tserr "$modlin $mpre $modlin" 523testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 524testouterr_cmd_re sh {whatis hide2/1.0} ERR [err_unablelocate hide2/1.0] 525testouterr_cmd_re sh {whatis hide2/1.1} ERR [err_unablelocate hide2/1.0] 526testouterr_cmd_re sh {whatis hide2/1.2} ERR [err_unablelocate hide2/1.0] 527testouterr_cmd_re sh {whatis hide2/1.3} ERR [err_unablelocate hide2/1.0] 528testouterr_cmd_re sh {whatis hide2/1.4} ERR [err_unablelocate hide2/1.0] 529testouterr_cmd_re sh {whatis hide2/1.5} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 530testouterr_cmd_re sh {whatis hide2@default} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 531testouterr_cmd_re sh {whatis hide2@latest} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 532unsetenv_var TESTSUITE_HIDE2_HARD_SET12 533 534setenv_var TESTSUITE_HIDE2_HARD_SET13 1 535set ans [list] 536lappend ans [list setpath LOADEDMODULES hide2/1.0] 537lappend ans [list setpath _LMFILES_ $mp/hide2/1.0] 538lappend ans [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1&hide2/1.2] 539set ans2 [list] 540lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 541lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 542lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 543set ans4 [list] 544lappend ans4 [list setpath LOADEDMODULES hide2/1.5:hide2/1.0:hidereq/3.0] 545lappend ans4 [list setpath _LMFILES_ $mp/hide2/1.0:$mp/hide2/1.0:$mp/hidereq/3.0] 546lappend ans4 [list setpath MODULES_LMPREREQ hidereq/3.0&hide2/1.5&hide2/1.1] 547lappend ans4 [list setpath MODULES_LMNOTUASKED hide2/1.5:hide2/1.0] 548lappend ans4 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest:hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1&hide2/1.2] 549testouterr_cmd sh {load hide2} $ans2 {} 550testouterr_cmd sh {load hide2/1.0} $ans {} 551testouterr_cmd sh {load hide2/1.5} $ans2 {} 552testouterr_cmd sh {load hide2@default} $ans2 {} 553testouterr_cmd sh {load hide2@latest} $ans2 {} 554testouterr_cmd_re sh {load --auto hidereq/3.0} $ans4 [msg_top_load hidereq/3.0 {} {hide2/1.5 hide2/1.0} {}] 555testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.0(1.2:1.4)\nhide2/1.1(@)\nhide2/1.5" 556testouterr_cmd sh {avail -t hide2/1.0} OK $mp:\nhide2/1.0(1.2:1.4) 557testouterr_cmd sh {avail -t hide2/1.5} OK $mp:\nhide2/1.5 558testouterr_cmd sh {avail -t hide2@default} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 559testouterr_cmd sh {avail -t hide2@latest} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 560testouterr_cmd sh {avail -t -d hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 561testouterr_cmd sh {avail -t -L hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 562set tserr "$modlin $mpre $modlin" 563testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.0: hide2/1.0\n\\s+hide2/1.5: hide2/1.5" 564testouterr_cmd_re sh {whatis hide2/1.0} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 565testouterr_cmd_re sh {whatis hide2/1.5} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 566testouterr_cmd_re sh {whatis hide2@default} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 567testouterr_cmd_re sh {whatis hide2@latest} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 568unsetenv_var TESTSUITE_HIDE2_HARD_SET13 569 570setenv_var TESTSUITE_HIDE2_HARD_SET14 1 571set ans [list] 572lappend ans [list setpath LOADEDMODULES hide2/1.0] 573lappend ans [list setpath _LMFILES_ $mp/hide2/1.0] 574lappend ans [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1&hide2/1.2] 575set ans2 [list] 576lappend ans2 [list setpath LOADEDMODULES hide2/1.5] 577lappend ans2 [list setpath _LMFILES_ $mp/hide2/1.0] 578lappend ans2 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest] 579set ans4 [list] 580lappend ans4 [list setpath LOADEDMODULES hide2/1.5:hide2/1.0:hidereq/3.0] 581lappend ans4 [list setpath _LMFILES_ $mp/hide2/1.0:$mp/hide2/1.0:$mp/hidereq/3.0] 582lappend ans4 [list setpath MODULES_LMPREREQ hidereq/3.0&hide2/1.5&hide2/1.1] 583lappend ans4 [list setpath MODULES_LMNOTUASKED hide2/1.5:hide2/1.0] 584lappend ans4 [list setpath MODULES_LMALTNAME hide2/1.5&as|hide2/default&as|hide2/latest:hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1&hide2/1.2] 585testouterr_cmd sh {load hide2} $ans2 {} 586testouterr_cmd sh {load hide2/1.0} $ans {} 587testouterr_cmd sh {load hide2/1.5} $ans2 {} 588testouterr_cmd sh {load hide2@default} $ans2 {} 589testouterr_cmd sh {load hide2@latest} $ans2 {} 590testouterr_cmd_re sh {load --auto hidereq/3.0} $ans4 [msg_top_load hidereq/3.0 {} {hide2/1.5 hide2/1.0} {}] 591testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.0(1.2:1.4)\nhide2/1.1(@)\nhide2/1.5" 592testouterr_cmd sh {avail -t hide2/1.0} OK $mp:\nhide2/1.0(1.2:1.4) 593testouterr_cmd sh {avail -t hide2/1.5} OK $mp:\nhide2/1.5 594testouterr_cmd sh {avail -t hide2@default} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 595testouterr_cmd sh {avail -t hide2@latest} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 596testouterr_cmd sh {avail -t -d hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 597testouterr_cmd sh {avail -t -L hide2} OK "global/user modulerc:\nhide2/1.3(@)\n\n$mp:\nhide2/1.5" 598set tserr "$modlin $mpre $modlin" 599testouterr_cmd_re sh {whatis hide2} OK "$tserr\n\\s+hide2/1.0: hide2/1.0\n\\s+hide2/1.5: hide2/1.5" 600testouterr_cmd_re sh {whatis hide2/1.0} OK "$tserr\n\\s+hide2/1.0: hide2/1.0" 601testouterr_cmd_re sh {whatis hide2/1.5} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 602testouterr_cmd_re sh {whatis hide2@default} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 603testouterr_cmd_re sh {whatis hide2@latest} OK "$tserr\n\\s+hide2/1.5: hide2/1.5" 604unsetenv_var TESTSUITE_HIDE2_HARD_SET14 605 606# declare 'hide2' globally hidden 607setenv_var TESTSUITE_HIDE2_HARD_SET15 1 608testouterr_cmd sh {load hide2} ERR $err_path'hide2' 609testouterr_cmd sh {load hide2/1.0} ERR [err_unablelocate hide2/1.0] 610testouterr_cmd sh {load hide2/1.1} ERR [err_unablelocate hide2/1.1] 611testouterr_cmd sh {load hide2/1.2} ERR [err_unablelocate hide2/1.2] 612testouterr_cmd sh {load hide2/1.3} ERR [err_unablelocate hide2/1.3] 613testouterr_cmd sh {load hide2/1.4} ERR [err_unablelocate hide2/1.4] 614testouterr_cmd sh {load hide2/1.5} ERR [err_unablelocate hide2/1.5] 615testouterr_cmd sh {load hide2@default} ERR $err_path'hide2@default' 616testouterr_cmd sh {load hide2@latest} ERR $err_path'hide2@latest' 617testouterr_cmd_re sh {load --auto hidereq/3.0} ERR [msg_load hidereq/3.0 [err_unablelocate hide2/1.5] [err_reqlo hide2/1.5]] 618# only hide2 elements declared prior module-forbid rule are visible 619testouterr_cmd sh {avail -t hide2} OK "global/user modulerc:\nhide2/1.3(@)" 620testouterr_cmd sh {avail -t hide2/1.0} OK {} 621testouterr_cmd sh {avail -t hide2/1.1} OK {} 622testouterr_cmd sh {avail -t hide2/1.2} OK {} 623testouterr_cmd sh {avail -t hide2/1.3} OK "global/user modulerc:\nhide2/1.3(@)" 624testouterr_cmd sh {avail -t hide2/1.4} OK {} 625testouterr_cmd sh {avail -t hide2/1.5} OK {} 626testouterr_cmd sh {avail -t hide2@default} OK "global/user modulerc:\nhide2/1.3(@)" 627testouterr_cmd sh {avail -t hide2@latest} OK "global/user modulerc:\nhide2/1.3(@)" 628testouterr_cmd sh {avail -t -d hide2} OK "global/user modulerc:\nhide2/1.3(@)" 629testouterr_cmd sh {avail -t -L hide2} OK "global/user modulerc:\nhide2/1.3(@)" 630set tserr "$modlin $mpre $modlin" 631testouterr_cmd_re sh {whatis hide2} ERR $err_path'hide2' 632testouterr_cmd_re sh {whatis hide2/1.0} ERR [err_unablelocate hide2/1.0] 633testouterr_cmd_re sh {whatis hide2/1.1} ERR [err_unablelocate hide2/1.1] 634testouterr_cmd_re sh {whatis hide2/1.2} ERR [err_unablelocate hide2/1.2] 635testouterr_cmd_re sh {whatis hide2/1.3} ERR [err_unablelocate hide2/1.3] 636testouterr_cmd_re sh {whatis hide2/1.4} ERR [err_unablelocate hide2/1.4] 637testouterr_cmd_re sh {whatis hide2/1.5} ERR [err_unablelocate hide2/1.5] 638testouterr_cmd_re sh {whatis hide2@default} ERR $err_path'hide2@default' 639testouterr_cmd_re sh {whatis hide2@latest} ERR $err_path'hide2@latest' 640unsetenv_var TESTSUITE_HIDE2_HARD_SET15 641 642 643setenv_var TESTSUITE_HIDE3_HARD_SET1 1 644testouterr_cmd sh {load hide3} ERR $err_path'hide3' 645testouterr_cmd sh {load hide3/al1} ERR [err_unablelocate hide3/al1] 646testouterr_cmd sh {load hide3/al2} ERR [err_unablelocate hide3/al2] 647testouterr_cmd sh {load hide3/sym} ERR [err_unablelocate hide3/sym] 648testouterr_cmd sh {load hide3/sub1} ERR $err_path'hide3/sub1' 649testouterr_cmd sh {load hide3/sub2} ERR $err_path'hide3/sub2' 650testouterr_cmd sh {load hide3@latest} ERR $err_path'hide3@latest' 651testouterr_cmd sh {load hide3/sub2@sym} ERR [err_unablelocate hide3/sub2@sym] 652testouterr_cmd sh {load hide3/sub1@3.0} ERR [err_unablelocate hide3/sub1@3.0] 653testouterr_cmd sh {avail -t hide3} OK {} 654testouterr_cmd sh {avail -t hide3/sym} OK {} 655testouterr_cmd sh {avail -t hide3/al2} OK {} 656testouterr_cmd sh {avail -t hide3/sub1} OK {} 657testouterr_cmd sh {avail -t hide3/sub2} OK {} 658testouterr_cmd sh {avail -t hide3@latest} OK {} 659testouterr_cmd sh {avail -t hide3/sub1/2.0} OK {} 660testouterr_cmd sh {avail -t hide3/sub2@new} OK {} 661testouterr_cmd_re sh {whatis hide3} ERR $err_path'hide3' 662testouterr_cmd_re sh {whatis hide3/sym} ERR [err_unablelocate hide3/sym] 663testouterr_cmd_re sh {whatis hide3/al2} ERR [err_unablelocate hide3/al2] 664testouterr_cmd_re sh {whatis hide3/sub1} ERR $err_path'hide3/sub1' 665testouterr_cmd_re sh {whatis hide3/sub2} ERR $err_path'hide3/sub2' 666unsetenv_var TESTSUITE_HIDE3_HARD_SET1 667 668setenv_var TESTSUITE_HIDE3_HARD_SET2 1 669set ans [list] 670lappend ans [list setpath LOADEDMODULES hide3/sub1/3.0] 671lappend ans [list setpath _LMFILES_ $mp/hide3/sub1/3.0] 672lappend ans [list setpath MODULES_LMALTNAME hide3/sub1/3.0&hide3/default&hide3&as|hide3/latest&as|hide3/sub1/default&as|hide3/sub1/latest] 673testouterr_cmd sh {load hide3} $ans {} 674testouterr_cmd sh {load hide3/al1} ERR [err_unablelocate hide3/sub2/4.0] 675testouterr_cmd sh {load hide3/al2} ERR [err_unablelocate hide3/sub2/5.0] 676testouterr_cmd sh {load hide3/sym} ERR [err_unablelocate hide3/sub2/4.0] 677set ans [list] 678lappend ans [list setpath LOADEDMODULES hide3/sub1/3.0] 679lappend ans [list setpath _LMFILES_ $mp/hide3/sub1/3.0] 680lappend ans [list setpath MODULES_LMALTNAME hide3/sub1/3.0&hide3/default&hide3&as|hide3/latest&as|hide3/sub1/default&as|hide3/sub1/latest] 681testouterr_cmd sh {load hide3/sub1} $ans {} 682testouterr_cmd sh {load hide3/sub2} ERR $err_path'hide3/sub2' 683set ans [list] 684lappend ans [list setpath LOADEDMODULES hide3/sub1/3.0] 685lappend ans [list setpath _LMFILES_ $mp/hide3/sub1/3.0] 686lappend ans [list setpath MODULES_LMALTNAME hide3/sub1/3.0&hide3/default&hide3&as|hide3/latest&as|hide3/sub1/default&as|hide3/sub1/latest] 687testouterr_cmd sh {load hide3@latest} $ans {} 688testouterr_cmd sh {load hide3/sub2@sym} ERR [err_unablelocate hide3/sub2@sym] 689set ans [list] 690lappend ans [list setpath LOADEDMODULES hide3/sub1/3.0] 691lappend ans [list setpath _LMFILES_ $mp/hide3/sub1/3.0] 692lappend ans [list setpath MODULES_LMALTNAME hide3/sub1/3.0&hide3/default&hide3&as|hide3/latest&as|hide3/sub1/default&as|hide3/sub1/latest] 693testouterr_cmd sh {load hide3/sub1@3.0} $ans {} 694testouterr_cmd sh {avail -t hide3} OK "$mp:\nhide3/1.0\nhide3/al1(@)\nhide3/al2(@)\nhide3/sub1/(default)\nhide3/sub1/2.0\nhide3/sub1/3.0" 695testouterr_cmd sh {avail -t hide3/sym} OK {} 696testouterr_cmd sh {avail -t hide3/al2} OK "$mp:\nhide3/al2(@)" 697testouterr_cmd sh {avail -t hide3/sub1} OK "$mp:\nhide3/sub1/(default)\nhide3/sub1/2.0\nhide3/sub1/3.0" 698testouterr_cmd sh {avail -t hide3/sub2} OK {} 699testouterr_cmd sh {avail -t hide3@latest} OK "$mp:\nhide3/sub1/(default)\nhide3/sub1/2.0\nhide3/sub1/3.0" 700testouterr_cmd sh {avail -t hide3/sub1/2.0} OK "$mp:\nhide3/sub1/2.0" 701testouterr_cmd sh {avail -t hide3/sub2@new} OK {} 702testouterr_cmd_re sh {whatis hide3} OK "$tserr\n\\s+hide3/1.0: hide3/1.0\n\\s+hide3/sub1/2.0: hide3/sub1/2.0\n\\s+hide3/sub1/3.0: hide3/sub1/3.0" 703testouterr_cmd_re sh {whatis hide3/sym} ERR $err_path'hide3/sub2' 704testouterr_cmd_re sh {whatis hide3/al2} ERR [err_unablelocate hide3/sub2/5.0] 705testouterr_cmd_re sh {whatis hide3/sub1} OK "$tserr\n\\s+hide3/sub1/2.0: hide3/sub1/2.0\n\\s+hide3/sub1/3.0: hide3/sub1/3.0" 706testouterr_cmd_re sh {whatis hide3/sub2} ERR $err_path'hide3/sub2' 707unsetenv_var TESTSUITE_HIDE3_HARD_SET2 708 709setenv_var TESTSUITE_HIDE3_HARD_SET3 1 710set ans [list] 711lappend ans [list setpath LOADEDMODULES hide3/sub1/3.0] 712lappend ans [list setpath _LMFILES_ $mp/hide3/sub1/3.0] 713lappend ans [list setpath MODULES_LMALTNAME hide3/sub1/3.0&hide3/default&hide3&as|hide3/sub1/default&as|hide3/sub1/latest] 714testouterr_cmd sh {load hide3} $ans {} 715set ans [list] 716lappend ans [list setpath LOADEDMODULES hide3/sub2/4.0] 717lappend ans [list setpath _LMFILES_ $mp/hide3/sub2/4.0] 718# transitively set 'sym' symbol is not affected by forbid of 'hide3/sym' 719lappend ans [list setpath MODULES_LMALTNAME hide3/sub2/4.0&hide3/sub2/default&hide3/sub2&hide3/al1&hide3/sub2/sym&as|hide3/latest] 720testouterr_cmd sh {load hide3/al1} $ans {} 721set ans [list] 722lappend ans [list setpath LOADEDMODULES hide3/sub2/5.0] 723lappend ans [list setpath _LMFILES_ $mp/hide3/sub2/5.0] 724lappend ans [list setpath MODULES_LMALTNAME hide3/sub2/5.0&hide3/al2&hide3/sub2/new&as|hide3/sub2/latest] 725testouterr_cmd sh {load hide3/al2} $ans {} 726testouterr_cmd sh {load hide3/sym} ERR [err_unablelocate hide3/sym] 727set ans [list] 728lappend ans [list setpath LOADEDMODULES hide3/sub1/3.0] 729lappend ans [list setpath _LMFILES_ $mp/hide3/sub1/3.0] 730lappend ans [list setpath MODULES_LMALTNAME hide3/sub1/3.0&hide3/default&hide3&as|hide3/sub1/default&as|hide3/sub1/latest] 731testouterr_cmd sh {load hide3/sub1} $ans {} 732set ans [list] 733lappend ans [list setpath LOADEDMODULES hide3/sub2/4.0] 734lappend ans [list setpath _LMFILES_ $mp/hide3/sub2/4.0] 735lappend ans [list setpath MODULES_LMALTNAME hide3/sub2/4.0&hide3/sub2/default&hide3/sub2&hide3/al1&hide3/sub2/sym&as|hide3/latest] 736testouterr_cmd sh {load hide3/sub2} $ans {} 737testouterr_cmd sh {load hide3@latest} $ans {} 738testouterr_cmd sh {load hide3/sub2@sym} $ans {} 739set ans [list] 740lappend ans [list setpath LOADEDMODULES hide3/sub1/3.0] 741lappend ans [list setpath _LMFILES_ $mp/hide3/sub1/3.0] 742lappend ans [list setpath MODULES_LMALTNAME hide3/sub1/3.0&hide3/default&hide3&as|hide3/sub1/default&as|hide3/sub1/latest] 743testouterr_cmd sh {load hide3/sub1@3.0} $ans {} 744testouterr_cmd sh {avail -t hide3} OK "$mp:\nhide3/1.0\nhide3/al1(@)\nhide3/al2(@)\nhide3/sub1/(default)\nhide3/sub1/2.0\nhide3/sub1/3.0\nhide3/sub2/4.0(default:sym)\nhide3/sub2/5.0(new)" 745testouterr_cmd sh {avail -t hide3/sym} OK {} 746testouterr_cmd sh {avail -t hide3/al2} OK "$mp:\nhide3/al2(@)" 747testouterr_cmd sh {avail -t hide3/sub1} OK "$mp:\nhide3/sub1/(default)\nhide3/sub1/2.0\nhide3/sub1/3.0" 748testouterr_cmd sh {avail -t hide3/sub2} OK "$mp:\nhide3/sub2/4.0(default:sym)\nhide3/sub2/5.0(new)" 749testouterr_cmd sh {avail -t hide3@latest} OK "$mp:\nhide3/sub2/4.0(default:sym)\nhide3/sub2/5.0(new)" 750testouterr_cmd sh {avail -t hide3/sub1/2.0} OK "$mp:\nhide3/sub1/2.0" 751testouterr_cmd sh {avail -t hide3/sub2@new} OK "$mp:\nhide3/sub2/5.0(new)" 752testouterr_cmd_re sh {whatis hide3} OK "$tserr\n\\s+hide3/1.0: hide3/1.0\n\\s+hide3/sub1/2.0: hide3/sub1/2.0\n\\s+hide3/sub1/3.0: hide3/sub1/3.0\n\\s+hide3/sub2/4.0: hide3/sub2/4.0\n\\s+hide3/sub2/5.0: hide3/sub2/5.0" 753testouterr_cmd_re sh {whatis hide3/sym} ERR [err_unablelocate hide3/sym] 754testouterr_cmd_re sh {whatis hide3/al2} OK "$tserr\n\\s+hide3/sub2/5.0: hide3/sub2/5.0" 755testouterr_cmd_re sh {whatis hide3/sub1} OK "$tserr\n\\s+hide3/sub1/2.0: hide3/sub1/2.0\n\\s+hide3/sub1/3.0: hide3/sub1/3.0" 756testouterr_cmd_re sh {whatis hide3/sub2} OK "$tserr\n\\s+hide3/sub2/4.0: hide3/sub2/4.0\n\\s+hide3/sub2/5.0: hide3/sub2/5.0" 757unsetenv_var TESTSUITE_HIDE3_HARD_SET3 758 759setenv_var TESTSUITE_HIDE3_HARD_SET4 1 760set ans [list] 761lappend ans [list setpath LOADEDMODULES hide3/sub1/3.0] 762lappend ans [list setpath _LMFILES_ $mp/hide3/sub1/3.0] 763lappend ans [list setpath MODULES_LMALTNAME hide3/sub1/3.0&hide3/default&hide3&as|hide3/sub1/default&as|hide3/sub1/latest] 764testouterr_cmd sh {load hide3} $ans {} 765set ans [list] 766lappend ans [list setpath LOADEDMODULES hide3/sub2/4.0] 767lappend ans [list setpath _LMFILES_ $mp/hide3/sub2/4.0] 768lappend ans [list setpath MODULES_LMALTNAME hide3/sub2/4.0&hide3/al1&hide3/sym&hide3/sub2/sym&as|hide3/latest] 769testouterr_cmd sh {load hide3/al1} $ans {} 770set ans [list] 771lappend ans [list setpath LOADEDMODULES hide3/sub2/5.0] 772lappend ans [list setpath _LMFILES_ $mp/hide3/sub2/5.0] 773lappend ans [list setpath MODULES_LMALTNAME hide3/sub2/5.0&hide3/al2&hide3/sub2/new&as|hide3/sub2/default&as|hide3/sub2/latest] 774testouterr_cmd sh {load hide3/al2} $ans {} 775set ans [list] 776lappend ans [list setpath LOADEDMODULES hide3/sub2/4.0] 777lappend ans [list setpath _LMFILES_ $mp/hide3/sub2/4.0] 778# hide3/sub2/default is used to resolve hide3/sym>hide3/sub2 into hide3/sym>hide3/sub2/4.0 but not recorded in the alternative names 779lappend ans [list setpath MODULES_LMALTNAME hide3/sub2/4.0&hide3/al1&hide3/sym&hide3/sub2/sym&as|hide3/latest] 780testouterr_cmd sh {load hide3/sym} $ans {} 781set ans [list] 782lappend ans [list setpath LOADEDMODULES hide3/sub1/3.0] 783lappend ans [list setpath _LMFILES_ $mp/hide3/sub1/3.0] 784lappend ans [list setpath MODULES_LMALTNAME hide3/sub1/3.0&hide3/default&hide3&as|hide3/sub1/default&as|hide3/sub1/latest] 785testouterr_cmd sh {load hide3/sub1} $ans {} 786set ans [list] 787lappend ans [list setpath LOADEDMODULES hide3/sub2/5.0] 788lappend ans [list setpath _LMFILES_ $mp/hide3/sub2/5.0] 789lappend ans [list setpath MODULES_LMALTNAME hide3/sub2/5.0&hide3/al2&hide3/sub2/new&as|hide3/sub2/default&as|hide3/sub2/latest] 790testouterr_cmd sh {load hide3/sub2} $ans {} 791set ans [list] 792lappend ans [list setpath LOADEDMODULES hide3/sub2/4.0] 793lappend ans [list setpath _LMFILES_ $mp/hide3/sub2/4.0] 794# hide3/sub2/default is used to resolve hide3/sym>hide3/sub2 into hide3/sym>hide3/sub2/4.0 but not recorded in the alternative names 795lappend ans [list setpath MODULES_LMALTNAME hide3/sub2/4.0&hide3/al1&hide3/sym&hide3/sub2/sym&as|hide3/latest] 796testouterr_cmd sh {load hide3@latest} $ans {} 797testouterr_cmd sh {load hide3/sub2@sym} $ans {} 798set ans [list] 799lappend ans [list setpath LOADEDMODULES hide3/sub1/3.0] 800lappend ans [list setpath _LMFILES_ $mp/hide3/sub1/3.0] 801lappend ans [list setpath MODULES_LMALTNAME hide3/sub1/3.0&hide3/default&hide3&as|hide3/sub1/default&as|hide3/sub1/latest] 802testouterr_cmd sh {load hide3/sub1@3.0} $ans {} 803testouterr_cmd sh {avail -t hide3} OK "$mp:\nhide3/1.0\nhide3/al1(@)\nhide3/al2(@)\nhide3/sub1/(default)\nhide3/sub1/3.0\nhide3/sub2/(sym)\nhide3/sub2/4.0(sym)\nhide3/sub2/5.0(new)" 804testouterr_cmd sh {avail -t hide3/sym} OK "$mp:\nhide3/sub2/(sym)\nhide3/sub2/4.0(sym)\nhide3/sub2/5.0(new)" 805testouterr_cmd sh {avail -t hide3/al2} OK "$mp:\nhide3/al2(@)" 806testouterr_cmd sh {avail -t hide3/sub1} OK "$mp:\nhide3/sub1/(default)\nhide3/sub1/3.0" 807testouterr_cmd sh {avail -t hide3/sub2} OK "$mp:\nhide3/sub2/(sym)\nhide3/sub2/4.0(sym)\nhide3/sub2/5.0(new)" 808testouterr_cmd sh {avail -t hide3@latest} OK "$mp:\nhide3/sub2/(sym)\nhide3/sub2/4.0(sym)\nhide3/sub2/5.0(new)" 809testouterr_cmd sh {avail -t hide3/sub1/2.0} OK {} 810testouterr_cmd sh {avail -t hide3/sub2@new} OK "$mp:\nhide3/sub2/5.0(new)" 811testouterr_cmd_re sh {whatis hide3} OK "$tserr\n\\s+hide3/1.0: hide3/1.0\n\\s+hide3/sub1/3.0: hide3/sub1/3.0\n\\s+hide3/sub2/4.0: hide3/sub2/4.0\n\\s+hide3/sub2/5.0: hide3/sub2/5.0" 812testouterr_cmd_re sh {whatis hide3/sym} OK "$tserr\n\\s+hide3/sub2/4.0: hide3/sub2/4.0\n\\s+hide3/sub2/5.0: hide3/sub2/5.0" 813testouterr_cmd_re sh {whatis hide3/al2} OK "$tserr\n\\s+hide3/sub2/5.0: hide3/sub2/5.0" 814testouterr_cmd_re sh {whatis hide3/sub1} OK "$tserr\n\\s+hide3/sub1/3.0: hide3/sub1/3.0" 815testouterr_cmd_re sh {whatis hide3/sub2} OK "$tserr\n\\s+hide3/sub2/4.0: hide3/sub2/4.0\n\\s+hide3/sub2/5.0: hide3/sub2/5.0" 816unsetenv_var TESTSUITE_HIDE3_HARD_SET4 817 818 819# forbidden symbol/module over loaded environment 820setenv_loaded_module [list hide2/1.0] [list $mp/hide2/1.0] 821setenv_path_var MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1 822 823setenv_var TESTSUITE_HIDE2_HARD_SET3 1 824# forbidden symbols not reported even if recorded in env as a specific resolution of each 825# loaded module is currently done 826testouterr_cmd sh {list -t} OK $cur_loaded\nhide2/1.0 827setenv_path_var MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1&hide2/1.2 828testouterr_cmd sh {list -t} OK $cur_loaded\nhide2/1.0 829setenv_path_var MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1 830set ans [list] 831lappend ans [list unsetpath LOADEDMODULES] 832lappend ans [list unsetpath _LMFILES_] 833lappend ans [list unsetpath MODULES_LMALTNAME] 834testouterr_cmd sh {purge} $ans {} 835testouterr_cmd sh {unload hide2} $ans {} 836# will not find 1.2 symbol as not part of loaded definition 837testouterr_cmd sh {unload hide2/1.2} OK {} 838testouterr_cmd sh {unload hide2/1.1} $ans {} 839testouterr_cmd sh {unload hide2/1.0} $ans {} 840set ans [list] 841lappend ans [list setpath LOADEDMODULES hide2/1.0] 842lappend ans [list setpath _LMFILES_ $mp/hide2/1.0] 843lappend ans [list setpath MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1] 844testouterr_cmd sh {reload} $ans {} 845# below reload is loosing hide2/1.2 forbidden symbol as hide2/1.0 is reloaded by this hide2/1.0 name and not hide2/1.2 846setenv_path_var MODULES_LMALTNAME hide2/1.0&hide2/1.3&hide2/1.4&hide2/1.1&hide2/1.2 847testouterr_cmd sh {reload} $ans {} 848unsetenv_var TESTSUITE_HIDE2_HARD_SET3 849 850setenv_var TESTSUITE_HIDE2_HARD_SET1 1 851testouterr_cmd sh {list -t} OK $cur_loaded\nhide2/1.0 852set ans [list] 853lappend ans [list unsetpath LOADEDMODULES] 854lappend ans [list unsetpath _LMFILES_] 855lappend ans [list unsetpath MODULES_LMALTNAME] 856testouterr_cmd sh {purge} $ans {} 857testouterr_cmd sh {unload hide2} $ans {} 858testouterr_cmd sh {unload hide2/1.2} $ans {} 859testouterr_cmd sh {unload hide2/1.1} $ans {} 860testouterr_cmd sh {unload hide2/1.0} $ans {} 861testouterr_cmd sh {reload} ERR [err_unablelocate hide2/1.0] 862unsetenv_var TESTSUITE_HIDE2_HARD_SET1 863 864setenv_var TESTSUITE_HIDE2_HARD_SET15 1 865unsetenv_path_var MODULES_LMALTNAME 866testouterr_cmd sh {list -t} OK $cur_loaded\nhide2/1.0 867set ans [list] 868lappend ans [list unsetpath LOADEDMODULES] 869lappend ans [list unsetpath _LMFILES_] 870testouterr_cmd sh {purge} $ans {} 871testouterr_cmd sh {unload hide2} $ans {} 872# will not find 1.2 symbol nor 1.1 alias as not part of loaded definition 873testouterr_cmd sh {unload hide2/1.2} OK {} 874testouterr_cmd sh {unload hide2/1.1} OK {} 875testouterr_cmd sh {unload hide2/1.0} $ans {} 876testouterr_cmd sh {reload} ERR [err_unablelocate hide2/1.0] 877unsetenv_var TESTSUITE_HIDE2_HARD_SET15 878 879unsetenv_loaded_module 880unsetenv_path_var MODULES_LMALTNAME 881 882 883# module-forbid effect on is-avail used in modulefile 884setenv_var TESTSUITE_HIDE3_HARD_SET1 1 885set ans [list] 886lappend ans [list setpath LOADEDMODULES hidereq/4.0] 887lappend ans [list setpath _LMFILES_ $mp/hidereq/4.0] 888testouterr_cmd sh {load hidereq/4.0} $ans "0\n0\n0\n0\n0\n0\n0\n0\n0" 889unsetenv_var TESTSUITE_HIDE3_HARD_SET1 890 891 892# 893# Cleanup 894# 895 896# restore environment 897setenv_path_var MODULEPATH $modpath 898if {[info exists ORIG_MODULERCFILE]} { 899 setenv_var MODULERCFILE $ORIG_MODULERCFILE 900 unset ORIG_MODULERCFILE 901} else { 902 unsetenv_var MODULERCFILE 903} 904unsetenv_var MODULES_AVAIL_INDEPTH 905unsetenv_var MODULES_IMPLICIT_DEFAULT 906unsetenv_var MODULES_SEARCH_MATCH 907unsetenv_var MODULES_ADVANCED_VERSION_SPEC 908unsetenv_var MODULES_EXTENDED_DEFAULT 909 910unset mp 911unset mpre 912unset ans 913unset ans2 914unset ans3 915unset ans4 916unset tserr 917