-
Notifications
You must be signed in to change notification settings - Fork 100
/
117-forbid-user-group.exp
214 lines (162 loc) · 6.91 KB
/
117-forbid-user-group.exp
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
##############################################################################
# Modules Revision 3.0
# Providing a flexible user environment
#
# File: modules.20-locate/%M%
# Revision: %I%
# First Edition: 2020/08/14
# Last Mod.: %U%, %G%
#
# Authors: Xavier Delaruelle, xavier.delaruelle@cea.fr
#
# Description: Testuite testsequence
# Command: avail, load, list, unload, whatis, purge, reload,
# is-avail
# Modulefiles:
# Sub-Command:
#
# Comment: %C{
# Disable forbidding with '--not-user' or '--not-group' options of
# 'module-forbid' command
# }C%
#
##############################################################################
# ensure avail tests are made using in depth mode
setenv_var MODULES_AVAIL_INDEPTH 1
# ensure avail tests have implicit default enabled
setenv_var MODULES_IMPLICIT_DEFAULT 1
# ensure regular avail search match is set for these tests
setenv_var MODULES_SEARCH_MATCH starts_with
# ensure extended default and advanced version specifiers are enabled for these tests
setenv_var MODULES_ADVANCED_VERSION_SPEC 1
setenv_var MODULES_EXTENDED_DEFAULT 1
# ensure default tag abbreviation is defined
setenv_var MODULES_TAG_ABBREV {auto-loaded=aL:loaded=L:hidden=H:hidden-loaded=H:forbidden=F:nearly-forbidden=nF}
set mp $modpath.2
set mpre $modpathre.2
setenv_path_var MODULEPATH $mp
setenv_var MODULERCFILE $env(TESTSUITEDIR)/etc/modulerc.hide
if {$group_name_fetch_failed} {
send_user "\tSkip user group tests, as group name fetch failed\n"
} else {
set ans [list]
lappend ans [list set __MODULES_LMALTNAME hide1/5.0&as|hide1/latest]
lappend ans [list set _LMFILES_ $mp/hide1/5.0]
lappend ans [list set LOADEDMODULES hide1/5.0]
set ans2 [list]
lappend ans2 [list set __MODULES_LMALTNAME hide1/5.0&as|hide1/latest]
lappend ans2 [list set _LMFILES_ $mp/hide1/5.0]
lappend ans2 [list set LOADEDMODULES hide1/5.0]
lappend ans2 [list ERR]
set tserr1 "$mp:\nhide1/5.0 <F>"
set tserr2 $err_path'hide1@5:'
set tserr3 [err_accessdenied hide1/5.0]
# test --not-user option
setenv_var TESTSUITE_FORBID_ALLOW_USER_SET1 1
testouterr_cmd sh {load hide1@5:} $ans {}
unsetenv_var TESTSUITE_FORBID_ALLOW_USER_SET1
skip_if_quick_mode
setenv_var TESTSUITE_FORBID_ALLOW_USER_SET2 1
testouterr_cmd sh {load hide1@5:} ERR $tserr3
testouterr_cmd sh {load hide1/5.0} ERR $tserr3
testouterr_cmd sh {avail -t hide1@5:} OK $tserr1
# fake Windows platform if expected siteconfig file is installed
if {[siteconfig_isStderrTty]} {
setenv_var TESTSUITE_ENABLE_SITECONFIG_WINDOWS_PLATFORM 1
if {[cmpversion $tclsh_version 8.6] == -1} {
set custom " invoked from within
\"if \{\[info exists env(TESTSUITE_FORBID_ALLOW_USER_SET2)\]\} \{
module-forbid --not-user unknown hide1/5.0
\}\""
set linenum 224
} else {
set custom {}
set linenum 225
}
set tserr4 [escre [msg_moderr {Option '--not-user' not supported on Windows platform} {module-forbid --not-user unknown hide1/5.0} $mp/hide1/.modulerc $linenum { } {} {} $custom]]
testouterr_cmd_re sh {load hide1@5:} $ans2 $tserr4
testouterr_cmd sh {avail -t hide1@5:} OK $mp:\nhide1/5.0
unsetenv_var TESTSUITE_ENABLE_SITECONFIG_WINDOWS_PLATFORM
}
unsetenv_var TESTSUITE_FORBID_ALLOW_USER_SET2
# test --not-group option
set tserr1 $mp:\nhide1/5.0
setenv_var TESTSUITE_FORBID_ALLOW_GROUP_SET5 1
testouterr_cmd sh {load hide1@5:} $ans {}
testouterr_cmd sh {avail -t hide1@5:} OK $tserr1
unsetenv_var TESTSUITE_FORBID_ALLOW_GROUP_SET5
# test cumulative use of --not-user and --not-group options
setenv_var TESTSUITE_FORBID_ALLOW_USER_GROUP_SET1 1
testouterr_cmd sh {load hide1@5.0} $ans {}
unsetenv_var TESTSUITE_FORBID_ALLOW_USER_GROUP_SET1
set ans [list]
lappend ans [list set __MODULES_LMALTNAME hide1/5.0&as|hide1/latest]
lappend ans [list set _LMFILES_ $mp/hide1/5.0]
lappend ans [list set LOADEDMODULES hide1/5.0]
lappend ans [list ERR]
if {[cmpversion $tclsh_version 8.6] == -1} {
set custom " invoked from within
\"if \{\[info exists env(TESTSUITE_FORBID_ALLOW_USER_GROUP_ERR_SET2)\]\} \{
module-forbid --not-group hide1/5.0 --not-user
\}\""
set linenum 236
} else {
set custom {}
set linenum 237
}
set tserr3 [msg_moderr {Missing value for '--not-user' option} {module-forbid --not-group hide1/5.0 --not-user} $mp/hide1/.modulerc $linenum { } {} {} $custom]
# test erroneous specification of --not-user and --not-group options
setenv_var TESTSUITE_FORBID_ALLOW_USER_GROUP_ERR_SET2 1
testouterr_cmd sh {load hide1@5:} $ans $tserr3
testouterr_cmd sh {avail -t hide1@5:} OK $tserr1
unsetenv_var TESTSUITE_FORBID_ALLOW_USER_GROUP_ERR_SET2
}
#
# --user/--group options test
#
setenv_var MODULES_NEARLY_FORBIDDEN_DAYS 2
set tserr_forbidden "$mp:\nhide1/5.0 <F>"
set tserr_not_forbidden $mp:\nhide1/5.0
set tserr_nearly_forbidden "$mp:\nhide1/5.0 <nF>"
setenv_var TESTSUITE_FORBID_USER_GROUP user2
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP user3
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_not_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP user_time1
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_nearly_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP user_time2
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP user_time3
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_not_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP user_time4
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_not_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP user_notgroup3
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP user_notgroup4
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_not_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP group2
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP group3
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_not_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP group_time1
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_nearly_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP group_time2
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP group_time3
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_not_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP group_time4
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_not_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP group_notuser1
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP group_notuser2
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_not_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP group_user1
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP group_user2
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_forbidden
setenv_var TESTSUITE_FORBID_USER_GROUP group_user_notuser_notgroup2
testouterr_cmd sh {avail -t hide1/5.0} OK $tserr_not_forbidden
#
# Cleanup
#
reset_test_env