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