File: 641-modulepath-loaded.exp

package info (click to toggle)
modules 5.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 23,036 kB
  • sloc: exp: 79,659; sh: 6,142; tcl: 5,900; makefile: 1,492; ansic: 474; python: 265; csh: 202; perl: 47; ruby: 44; lisp: 13
file content (234 lines) | stat: -rw-r--r-- 9,393 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
##############################################################################
#   Modules Revision 3.0
#   Providing a flexible user environment
#
#   File:		modules.50-cmds/%M%
#   Revision:		%I%
#   First Edition:	2024/10/29
#   Last Mod.:		%U%, %G%
#
#   Authors:		Xavier Delaruelle, xavier.delaruelle@cea.fr
#
#   Description:	Testuite testsequence
#   Command:		load
#   Modulefiles:    modulepath-opt, qux
#   Sub-Command:
#
#   Comment:	%C{
#         Test --modulepath option of prereq, prereq-all and always-load
#         modulefile commands over loaded environment
#		}C%
#
##############################################################################

set mp $modpath.4
set mpre $modpathre.4
setenv_path_var MODULEPATH $mp

skip_if_quick_mode


#
# requirement already loaded but not from required modulepath
#

setenv_var TESTSUITE_MODULEPATH_OPT loaded_from_other_dir
setenv_loaded_module [list qux/1] [list $mp/qux/1]

setenv_var MODULES_CONFLICT_UNLOAD 0
set tserr [msg_load qux/1 $err_modfromdiffpathloaded]\n\n[msg_load modulepath-opt/1 [err_reqlo_path qux/1]]
testouterr_cmd sh {load --auto modulepath-opt/1} ERR $tserr

setenv_var MODULES_CONFLICT_UNLOAD 1
set ans [list]
lappend ans [list set __MODULES_LMPREREQ modulepath-opt/1&qux/1]
lappend ans [list set _LMFILES_ $modpath.3/qux/1:$mp/modulepath-opt/1]
lappend ans [list set LOADEDMODULES qux/1:modulepath-opt/1]
lappend ans [list set __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$modpath.3]
lappend ans [list set __MODULES_LMTAG qux/1&auto-loaded]
set tserr [msg_top_load_conun modulepath-opt/1 {} qux/1 {} qux/1 {}]
testouterr_cmd sh {load --auto modulepath-opt/1} $ans $tserr


#
# requirement already loaded but not from required modulepath
# and not required variant
#

setenv_var MODULES_ADVANCED_VERSION_SPEC 1
setenv_var TESTSUITE_MODULEPATH_OPT loaded_from_other_dir_variant
setenv_loaded_module [list qux/1] [list $mp/qux/1]
setenv_var __MODULES_LMVARIANT qux/1&foo|val2|0|0

setenv_var MODULES_CONFLICT_UNLOAD 0
set tserr [msg_load qux/1{foo=val1} $err_modfromdiffpathloaded]\n\n[msg_load modulepath-opt/1 [err_reqlo_path qux/1{foo=val1}]]
testouterr_cmd sh {load --auto modulepath-opt/1} ERR $tserr

setenv_var MODULES_CONFLICT_UNLOAD 1
set ans [list]
lappend ans [list set __MODULES_LMVARIANT qux/1&foo|val1|0|0]
lappend ans [list set __MODULES_LMPREREQ modulepath-opt/1&qux/1\ foo=val1]
lappend ans [list set _LMFILES_ $modpath.3/qux/1:$mp/modulepath-opt/1]
lappend ans [list set LOADEDMODULES qux/1:modulepath-opt/1]
lappend ans [list set __MODULES_LMPREREQPATH modulepath-opt/1&qux/1\ foo=val1&$modpath.3]
lappend ans [list set __MODULES_LMTAG qux/1&auto-loaded]
set tserr [msg_top_load_conun modulepath-opt/1 {} qux/1{foo=val2} {} qux/1{foo=val1} {}]
testouterr_cmd sh {load --auto modulepath-opt/1} $ans $tserr

unsetenv_var __MODULES_LMVARIANT
unsetenv_var MODULES_ADVANCED_VERSION_SPEC


#
# requirement not loaded, then loaded but not from required modulepath
#

setenv_var TESTSUITE_MODULEPATH_OPT loaded_after_from_other_dir
setenv_loaded_module [list modulepath-opt/1] [list $mp/modulepath-opt/1]
setenv_var __MODULES_LMPREREQ modulepath-opt/1&qux/1
setenv_var __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$modpath.3

set ans [list]
lappend ans [list set _LMFILES_ $mp/modulepath-opt/1:$mp/qux/1]
lappend ans [list set LOADEDMODULES modulepath-opt/1:qux/1]
testouterr_cmd sh {load --auto qux/1} $ans {}


#
# requirement not loaded, then loaded but from required modulepath
#

setenv_var TESTSUITE_MODULEPATH_OPT loaded_after_from_correct_dir
setenv_loaded_module [list modulepath-opt/1] [list $mp/modulepath-opt/1]
setenv_var __MODULES_LMPREREQ modulepath-opt/1&qux/1
setenv_var __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$mp

set ans [list]
lappend ans [list set __MODULES_LMPREREQ modulepath-opt/1&qux/1]
lappend ans [list set _LMFILES_ $mp/qux/1:$mp/modulepath-opt/1]
lappend ans [list set LOADEDMODULES qux/1:modulepath-opt/1]
lappend ans [list set __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$mp]
set tserr [msg_top_load qux/1 {} {} modulepath-opt/1]
testouterr_cmd sh {load --auto qux/1} $ans $tserr


#
# dependent reload trigger with requirement chain specific to modulepath
#

setenv_var TESTSUITE_MODULEPATH_OPT depre_trigger

# dependency from bad modulepath is loaded
setenv_loaded_module [list qux/1 modulepath-opt/1] [list $mp/qux/1 $mp/modulepath-opt/1]
setenv_var __MODULES_LMPREREQ qux/1&qux/1|foo/1.0:modulepath-opt/1&qux/1
setenv_var __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$modpath.3

set ans [list]
lappend ans [list set __MODULES_LMPREREQ modulepath-opt/1&qux/1:qux/1&qux/1|foo/1.0]
lappend ans [list set _LMFILES_ $mp/modulepath-opt/1:$mp/foo/1.0:$mp/qux/1]
lappend ans [list set LOADEDMODULES modulepath-opt/1:foo/1.0:qux/1]
set tserr [msg_top_load foo/1.0 {} {} qux/1]
testouterr_cmd sh {load --auto foo/1.0} $ans $tserr

setenv_var MODULEPATH $mp:$modpath.3
testouterr_cmd sh {load --auto foo/1.0} $ans $tserr

# FIXME: qux/1 is reloaded from mp3 as it is the priority enabled modulepath
#   it should be kept from its initial modulepath
#   or modulepath-opt/1 should get reloaded as modpath.3/qux/1 is dependency
setenv_var MODULEPATH $modpath.3:$mp
set ans [list]
lappend ans [list set __MODULES_LMPREREQ modulepath-opt/1&qux/1:qux/1&qux/1|foo/1.0]
lappend ans [list set _LMFILES_ $mp/modulepath-opt/1:$modpath.3/foo/1.0:$modpath.3/qux/1]
lappend ans [list set LOADEDMODULES modulepath-opt/1:foo/1.0:qux/1]
set tserr [msg_top_load foo/1.0 {} {} {qux/1}]
testouterr_cmd sh {load --auto foo/1.0} $ans $tserr
setenv_var MODULEPATH $mp


# dependency from expected modulepath is loaded
setenv_loaded_module [list qux/1 modulepath-opt/1] [list $modpath.3/qux/1 $mp/modulepath-opt/1]
setenv_var __MODULES_LMPREREQ qux/1&qux/1|foo/1.0:modulepath-opt/1&qux/1
setenv_var __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$modpath.3

# FIXME: qux/1 is reloaded from mp4 as it is the enabled modulepath
#   it should be kept from its initial modulepath
#   or modulepath-opt/1 should not get reloaded as mp4/qux/1 is not a dependency
set ans [list]
lappend ans [list set __MODULES_LMPREREQ qux/1&qux/1|foo/1.0]
lappend ans [list set _LMFILES_ $mp/foo/1.0:$mp/qux/1]
lappend ans [list set LOADEDMODULES foo/1.0:qux/1]
lappend ans [list unset __MODULES_LMPREREQPATH]
set tserr [msg_top_load foo/1.0 {} {} {{modulepath-opt/1 qux/1} {qux/1}}]
testouterr_cmd sh {load --auto foo/1.0} $ans $tserr

setenv_var MODULEPATH $mp:$modpath.3
# qux/1 is reloaded from mp4 as it is the priority enabled modulepath
testouterr_cmd sh {load --auto foo/1.0} $ans $tserr

# qux/1 is reloaded from mp3 as it is the priority enabled modulepath
setenv_var MODULEPATH $modpath.3:$mp
set ans [list]
lappend ans [list set __MODULES_LMPREREQ qux/1&qux/1|foo/1.0:modulepath-opt/1&qux/1]
lappend ans [list set _LMFILES_ $modpath.3/foo/1.0:$modpath.3/qux/1:$mp/modulepath-opt/1]
lappend ans [list set LOADEDMODULES foo/1.0:qux/1:modulepath-opt/1]
lappend ans [list set __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$modpath.3]
set tserr [msg_top_load foo/1.0 {} {} {qux/1 modulepath-opt/1}]
testouterr_cmd sh {load --auto foo/1.0} $ans $tserr
setenv_var MODULEPATH $mp


#
# dependent reload trigger with requirement chain specific to modulepath or not
#

setenv_var TESTSUITE_MODULEPATH_OPT depre_trigger2_no_specific_path

setenv_loaded_module [list qux/1 modulepath-opt/1] [list $mp/qux/1 $mp/modulepath-opt/1]
setenv_var __MODULES_LMPREREQ modulepath-opt/1&qux/1
unsetenv_var __MODULES_LMPREREQPATH

set ans [list]
lappend ans [list set __MODULES_LMPREREQ foo/1.0&qux/1:modulepath-opt/1&qux/1]
lappend ans [list set _LMFILES_ $modpath.3/qux/1:$mp/foo/1.0:$mp/modulepath-opt/1]
lappend ans [list set LOADEDMODULES qux/1:foo/1.0:modulepath-opt/1]
lappend ans [list set __MODULES_LMPREREQPATH foo/1.0&qux/1&$modpath.3]
lappend ans [list set __MODULES_LMTAG qux/1&auto-loaded]
set tserr [msg_top_load_conun foo/1.0 {} qux/1 {} qux/1 {modulepath-opt/1}]
testouterr_cmd sh {load --auto foo/1.0} $ans $tserr
testouterr_cmd sh {load --force --auto foo/1.0} $ans $tserr


setenv_var TESTSUITE_MODULEPATH_OPT depre_trigger2_with_specific_same_path

setenv_loaded_module [list qux/1 modulepath-opt/1] [list $mp/qux/1 $mp/modulepath-opt/1]
setenv_var __MODULES_LMPREREQ modulepath-opt/1&qux/1
setenv_var __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$mp

set ans [list]
lappend ans [list set __MODULES_LMPREREQ modulepath-opt/1&qux/1:foo/1.0&qux/1]
lappend ans [list set _LMFILES_ $mp/qux/1:$mp/modulepath-opt/1:$mp/foo/1.0]
lappend ans [list set LOADEDMODULES qux/1:modulepath-opt/1:foo/1.0]
lappend ans [list set __MODULES_LMPREREQPATH modulepath-opt/1&qux/1&$mp:foo/1.0&qux/1&$mp]
testouterr_cmd sh {load --auto foo/1.0} $ans {}
testouterr_cmd sh {load --force --auto foo/1.0} $ans {}


setenv_var TESTSUITE_MODULEPATH_OPT depre_trigger2_with_specific_other_path

set ans [list]
lappend ans [list set __MODULES_LMPREREQ foo/1.0&qux/1]
lappend ans [list set _LMFILES_ $modpath.3/qux/1:$mp/foo/1.0]
lappend ans [list set LOADEDMODULES qux/1:foo/1.0]
lappend ans [list set __MODULES_LMTAG qux/1&auto-loaded]
lappend ans [list set __MODULES_LMPREREQPATH foo/1.0&qux/1&$modpath.3]
set tserr [msg_top_load_conun foo/1.0 {} qux/1 {} qux/1 {modulepath-opt/1 {}}]
testouterr_cmd sh {load --auto foo/1.0} $ans $tserr
testouterr_cmd sh {load --force --auto foo/1.0} $ans $tserr


#
#  Cleanup
#

reset_test_env