/
tests.cmd
211 lines (163 loc) · 8.23 KB
/
tests.cmd
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
@echo off
setlocal
set TEST_EXE=release\test.exe
set UNLOCK_GROUP=aucun-unlock
set FORCE_LOGOFF_GROUP=aucun-logoff
set EXCLUDED_GROUP=aucun-excluded
set eLetMSGINAHandleIt=1
set eUnlock=2
set eForceLogoff=3
if "%1" == "" goto TESTS_HELP
echo Setting up tests....
echo.
rem *------------------------------------------------------------*
rem * Clean the old groups *
rem *------------------------------------------------------------*
net localgroup %UNLOCK_GROUP% /delete 1> nul
net localgroup %FORCE_LOGOFF_GROUP% /delete 1> nul
net localgroup %EXCLUDED_GROUP% /delete 1> nul
net localgroup %UNLOCK_GROUP% /add 1> nul
net localgroup %FORCE_LOGOFF_GROUP% /add 1> nul
net localgroup %EXCLUDED_GROUP% /add 1> nul
rem *------------------------------------------------------------*
rem * Removing the registry settings *
rem *------------------------------------------------------------*
reg delete HKLM\Software\Paralint.com\Aucun\Groups /va /f 1> nul
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Unlock" 1> nul
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Force logoff" 1> nul
set /p TEST_USER_PASSWORD="Enter the password of %1 : "
echo.
rem The tests are ordered so that the hamming distance between
rem any two tests is one. In other words, if we add the user to
rem a group, we don't touch the registry, and we never add or
rem remove more than one user or group at a time.
rem
rem More on this on
rem http://www.paralint.com/blog/2008/08/21/easy-test-coverage-with-constant-hamming-distance-of-1/
echo %d User Registry
echo U F U F
rem *------------------------------------------------------------*
echo Running test : 0 0 0 0 0 Expected result : eLetMSGINAHandleIt
rem *------------------------------------------------------------*
echo %TEST_EXE% %1
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eLetMSGINAHandleIt% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 1 0 0 0 1 Expected result : eLetMSGINAHandleIt
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Force logoff" /f /d %FORCE_LOGOFF_GROUP% 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eLetMSGINAHandleIt% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 3 0 0 1 1 Expected result : eLetMSGINAHandleIt
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Unlock" /f /d %UNLOCK_GROUP% 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eLetMSGINAHandleIt% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 2 0 0 1 0 Expected result : eLetMSGINAHandleIt
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Force logoff" /f 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eLetMSGINAHandleIt% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 6 0 1 1 0 Expected result : eLetMSGINAHandleIt
rem *------------------------------------------------------------*
net localgroup %FORCE_LOGOFF_GROUP% %1 /add 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eLetMSGINAHandleIt% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 7 0 1 1 1 Expected result : eForceLogoff
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Force logoff" /f /d %FORCE_LOGOFF_GROUP% 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eForceLogoff% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 5 0 1 0 1 Expected result : eForceLogoff
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Unlock" /f 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eForceLogoff% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 4 0 1 0 0 Expected result : eLetMSGINAHandleIt
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Force logoff" /f 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eLetMSGINAHandleIt% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 12 1 1 0 0 Expected result : eLetMSGINAHandleIt
rem *------------------------------------------------------------*
net localgroup %UNLOCK_GROUP% %1 /add 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eLetMSGINAHandleIt% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 13 1 1 0 1 Expected result : eForceLogoff
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Force logoff" /f /d %FORCE_LOGOFF_GROUP% 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eForceLogoff% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 15 1 1 1 1 Expected result : eUnlock
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Unlock" /f /d %UNLOCK_GROUP% 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eUnlock% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 14 1 1 1 0 Expected result : eUnlock
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Force logoff" /f 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eUnlock% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 10 1 0 1 0 Expected result : eUnlock
rem *------------------------------------------------------------*
net localgroup %FORCE_LOGOFF_GROUP% %1 /delete 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eUnlock% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 11 1 0 1 1 Expected result : eUnlock
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Force logoff" /f /d %FORCE_LOGOFF_GROUP% 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eUnlock% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 9 1 0 0 1 Expected result : eLetMSGINAHandleIt
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Unlock" /f 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eLetMSGINAHandleIt% goto TEST_FAILED
echo.
rem *------------------------------------------------------------*
echo Running test : 8 1 0 0 0 Expected result : eLetMSGINAHandleIt
rem *------------------------------------------------------------*
reg add HKLM\Software\Paralint.com\Aucun\Groups /v "Force logoff" /f 1> nul
echo %TEST_USER_PASSWORD%| %TEST_EXE% %1
if NOT ERRORLEVEL %eLetMSGINAHandleIt% goto TEST_FAILED
echo.
goto TEST_FINISHED
:TEST_FAILED
echo ***FAILED*** (return code %ERRORLEVEL%)
net localgroup %UNLOCK_GROUP%
net localgroup %FORCE_LOGOFF_GROUP%
reg query HKLM\Software\Paralint.com\Aucun\Groups
:TEST_FINISHED
echo TEST FINISHED !!!
goto END
:TESTS_HELP
echo Pass the username to use for tests
:END
endlocal