2 * PROJECT: ReactOS kernel-mode tests
3 * LICENSE: LGPLv2+ - See COPYING.LIB in the top level directory
4 * PURPOSE: Kernel-Mode Test Suite FsRtl Test
5 * PROGRAMMER: Pierre Schweitzer <pierre.schweitzer@reactos.org>
8 /* TODO: most of these calls fail the Windows checked build's !islower assertion and others */
15 static VOID
FsRtlIsNameInExpressionTest()
17 UNICODE_STRING Expression
, Name
;
19 /* !Name->Length || !Expression->Length asserts */
20 if (!KmtIsCheckedBuild
)
22 RtlInitUnicodeString(&Expression
, L
"*");
23 RtlInitUnicodeString(&Name
, L
"");
24 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
25 RtlInitUnicodeString(&Expression
, L
"");
26 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
29 RtlInitUnicodeString(&Expression
, L
"**");
30 if (!KmtIsCheckedBuild
)
32 RtlInitUnicodeString(&Name
, L
"");
33 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
35 RtlInitUnicodeString(&Name
, L
"a");
36 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
38 RtlInitUnicodeString(&Expression
, L
"ntdll.dll");
39 RtlInitUnicodeString(&Name
, L
".");
40 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
41 RtlInitUnicodeString(&Name
, L
"~1");
42 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
43 RtlInitUnicodeString(&Name
, L
"..");
44 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
45 RtlInitUnicodeString(&Name
, L
"ntdll.dll");
46 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
48 RtlInitUnicodeString(&Expression
, L
"smss.exe");
49 RtlInitUnicodeString(&Name
, L
".");
50 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
51 RtlInitUnicodeString(&Name
, L
"~1");
52 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
53 RtlInitUnicodeString(&Name
, L
"..");
54 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
55 RtlInitUnicodeString(&Name
, L
"ntdll.dll");
56 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
57 RtlInitUnicodeString(&Name
, L
"NTDLL.dll");
58 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
60 RtlInitUnicodeString(&Expression
, L
"nt??krnl.???");
61 RtlInitUnicodeString(&Name
, L
"ntoskrnl.exe");
62 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
64 RtlInitUnicodeString(&Expression
, L
"he*o");
65 RtlInitUnicodeString(&Name
, L
"hello");
66 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
67 RtlInitUnicodeString(&Name
, L
"helo");
68 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
69 RtlInitUnicodeString(&Name
, L
"hella");
70 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
72 RtlInitUnicodeString(&Expression
, L
"he*");
73 RtlInitUnicodeString(&Name
, L
"hello");
74 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
75 RtlInitUnicodeString(&Name
, L
"helo");
76 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
77 RtlInitUnicodeString(&Name
, L
"hella");
78 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
80 RtlInitUnicodeString(&Expression
, L
"*.cpl");
81 RtlInitUnicodeString(&Name
, L
"kdcom.dll");
82 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
83 RtlInitUnicodeString(&Name
, L
"bootvid.dll");
84 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
85 RtlInitUnicodeString(&Name
, L
"ntoskrnl.exe");
86 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
88 RtlInitUnicodeString(&Expression
, L
".");
89 RtlInitUnicodeString(&Name
, L
"NTDLL.DLL");
90 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
92 RtlInitUnicodeString(&Expression
, L
"F0_*.*");
93 RtlInitUnicodeString(&Name
, L
".");
94 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
95 RtlInitUnicodeString(&Name
, L
"..");
96 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
97 RtlInitUnicodeString(&Name
, L
"SETUP.EXE");
98 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
99 RtlInitUnicodeString(&Name
, L
"f0_");
100 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
101 RtlInitUnicodeString(&Name
, L
"f0_");
102 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
103 RtlInitUnicodeString(&Name
, L
"F0_");
104 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
105 RtlInitUnicodeString(&Name
, L
"f0_.");
106 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
107 RtlInitUnicodeString(&Name
, L
"f0_.");
108 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
109 RtlInitUnicodeString(&Name
, L
"F0_.");
110 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
111 RtlInitUnicodeString(&Name
, L
"F0_001");
112 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
113 RtlInitUnicodeString(&Name
, L
"F0_001");
114 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
115 RtlInitUnicodeString(&Name
, L
"f0_001");
116 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
117 RtlInitUnicodeString(&Name
, L
"f0_001");
118 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
119 RtlInitUnicodeString(&Name
, L
"F0_001.");
120 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
121 RtlInitUnicodeString(&Name
, L
"f0_001.txt");
122 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
123 RtlInitUnicodeString(&Name
, L
"f0_001.txt");
124 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
125 RtlInitUnicodeString(&Name
, L
"F0_001.txt");
126 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
127 RtlInitUnicodeString(&Name
, L
"F0_001.txt");
128 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
129 RtlInitUnicodeString(&Name
, L
"F0_001.txt");
130 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
132 RtlInitUnicodeString(&Expression
, L
"F0_*.");
133 RtlInitUnicodeString(&Name
, L
".");
134 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
135 RtlInitUnicodeString(&Name
, L
"..");
136 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
137 RtlInitUnicodeString(&Name
, L
"SETUP.EXE");
138 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
139 RtlInitUnicodeString(&Name
, L
"f0_");
140 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
141 RtlInitUnicodeString(&Name
, L
"f0_");
142 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
143 RtlInitUnicodeString(&Name
, L
"F0_");
144 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
145 RtlInitUnicodeString(&Name
, L
"f0_.");
146 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
147 RtlInitUnicodeString(&Name
, L
"f0_.");
148 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
149 RtlInitUnicodeString(&Name
, L
"F0_.");
150 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
151 RtlInitUnicodeString(&Name
, L
"F0_001");
152 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
153 RtlInitUnicodeString(&Name
, L
"F0_001");
154 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
155 RtlInitUnicodeString(&Name
, L
"f0_001");
156 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
157 RtlInitUnicodeString(&Name
, L
"f0_001");
158 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
159 RtlInitUnicodeString(&Name
, L
"F0_OO1.");
160 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
161 RtlInitUnicodeString(&Name
, L
"f0_001.txt");
162 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
163 RtlInitUnicodeString(&Name
, L
"f0_001.txt");
164 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
165 RtlInitUnicodeString(&Name
, L
"F0_001.txt");
166 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
167 RtlInitUnicodeString(&Name
, L
"F0_001.txt");
168 ok(FsRtlIsNameInExpression(&Expression
, &Name
, TRUE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
170 RtlInitUnicodeString(&Expression
, L
"*.TTF");
171 RtlInitUnicodeString(&Name
, L
".");
172 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
173 RtlInitUnicodeString(&Name
, L
"..");
174 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
175 RtlInitUnicodeString(&Name
, L
"SETUP.INI");
176 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
178 RtlInitUnicodeString(&Expression
, L
"*");
179 RtlInitUnicodeString(&Name
, L
".");
180 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
181 RtlInitUnicodeString(&Name
, L
"..");
182 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
183 RtlInitUnicodeString(&Name
, L
"SETUP.INI");
184 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
186 RtlInitUnicodeString(&Expression
, L
".*");
187 RtlInitUnicodeString(&Name
, L
"1");
188 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
189 RtlInitUnicodeString(&Name
, L
"01");
190 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
191 RtlInitUnicodeString(&Name
, L
" ");
192 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
193 RtlInitUnicodeString(&Name
, L
"");
194 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
195 RtlInitUnicodeString(&Name
, L
".");
196 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
197 RtlInitUnicodeString(&Name
, L
"1.txt");
198 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
199 RtlInitUnicodeString(&Name
, L
" .txt");
200 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
201 RtlInitUnicodeString(&Name
, L
".txt");
202 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
204 RtlInitUnicodeString(&Expression
, L
"\"ntoskrnl.exe");
205 RtlInitUnicodeString(&Name
, L
"ntoskrnl.exe");
206 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
207 RtlInitUnicodeString(&Expression
, L
"ntoskrnl\"exe");
208 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
209 RtlInitUnicodeString(&Expression
, L
"ntoskrn\".exe");
210 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
211 RtlInitUnicodeString(&Expression
, L
"ntoskrn\"\"exe");
212 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
213 RtlInitUnicodeString(&Expression
, L
"ntoskrnl.\"exe");
214 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
215 RtlInitUnicodeString(&Expression
, L
"ntoskrnl.exe\"");
216 RtlInitUnicodeString(&Name
, L
"ntoskrnl.exe");
217 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
218 RtlInitUnicodeString(&Name
, L
"ntoskrnl.exe.");
219 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
221 RtlInitUnicodeString(&Expression
, L
"*.c.d");
222 RtlInitUnicodeString(&Name
, L
"a.b.c.d");
223 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
224 RtlInitUnicodeString(&Expression
, L
"*.?.c.d");
225 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
226 RtlInitUnicodeString(&Expression
, L
"*?");
227 if (!KmtIsCheckedBuild
)
229 RtlInitUnicodeString(&Name
, L
"");
230 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
232 RtlInitUnicodeString(&Name
, L
"a");
233 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
234 RtlInitUnicodeString(&Name
, L
"aa");
235 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
236 RtlInitUnicodeString(&Name
, L
"aaa");
237 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
238 RtlInitUnicodeString(&Expression
, L
"?*?");
239 if (!KmtIsCheckedBuild
)
241 RtlInitUnicodeString(&Name
, L
"");
242 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
244 RtlInitUnicodeString(&Name
, L
"a");
245 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
246 RtlInitUnicodeString(&Name
, L
"aa");
247 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
248 RtlInitUnicodeString(&Name
, L
"aaa");
249 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
250 RtlInitUnicodeString(&Name
, L
"aaaa");
251 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
253 /* Tests from #5923 */
254 RtlInitUnicodeString(&Expression
, L
"C:\\ReactOS\\**");
255 RtlInitUnicodeString(&Name
, L
"C:\\ReactOS\\dings.bmp");
256 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
257 RtlInitUnicodeString(&Expression
, L
"C:\\ReactOS\\***");
258 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
259 RtlInitUnicodeString(&Expression
, L
"C:\\Windows\\*a*");
260 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
262 RtlInitUnicodeString(&Expression
, L
"C:\\ReactOS\\*.bmp");
263 RtlInitUnicodeString(&Name
, L
"C:\\Windows\\explorer.exe");
264 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
265 RtlInitUnicodeString(&Expression
, L
"*.bmp;*.dib");
266 RtlInitUnicodeString(&Name
, L
"winhlp32.exe");
267 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
269 /* Backtracking tests */
270 RtlInitUnicodeString(&Expression
, L
"*.*.*.*");
271 RtlInitUnicodeString(&Name
, L
"127.0.0.1");
272 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
274 RtlInitUnicodeString(&Expression
, L
"*?*?*?*");
275 RtlInitUnicodeString(&Name
, L
"1.0.0.1");
276 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
277 RtlInitUnicodeString(&Expression
, L
"?*?*?*?");
278 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
279 RtlInitUnicodeString(&Expression
, L
"?.?.?.?");
280 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
282 RtlInitUnicodeString(&Expression
, L
"*a*ab*abc");
283 RtlInitUnicodeString(&Name
, L
"aabaabcdadabdabc");
284 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
286 /* Tests for extra wildcards */
287 RtlInitUnicodeString(&Expression
, L
"ab<exe");
288 RtlInitUnicodeString(&Name
, L
"abcd.exe");
289 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
290 RtlInitUnicodeString(&Name
, L
"ab.exe");
291 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
292 RtlInitUnicodeString(&Name
, L
"abcdexe");
293 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
294 RtlInitUnicodeString(&Name
, L
"acd.exe");
295 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
296 RtlInitUnicodeString(&Expression
, L
"a.b<exe");
297 RtlInitUnicodeString(&Name
, L
"a.bcd.exe");
298 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
299 RtlInitUnicodeString(&Expression
, L
"a<b.exe");
300 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
301 RtlInitUnicodeString(&Name
, L
"a.b.exe");
302 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
304 RtlInitUnicodeString(&Expression
, L
"abc.exe\"");
305 RtlInitUnicodeString(&Name
, L
"abc.exe");
306 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
307 RtlInitUnicodeString(&Name
, L
"abc.exe.");
308 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
309 RtlInitUnicodeString(&Name
, L
"abc.exe.back");
310 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
311 RtlInitUnicodeString(&Name
, L
"abc.exes");
312 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
314 RtlInitUnicodeString(&Expression
, L
"a>c.exe");
315 RtlInitUnicodeString(&Name
, L
"abc.exe");
316 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == TRUE
, "expected TRUE, got FALSE\n");
317 RtlInitUnicodeString(&Name
, L
"ac.exe");
318 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
319 RtlInitUnicodeString(&Expression
, L
"a>>>exe");
320 RtlInitUnicodeString(&Name
, L
"abc.exe");
321 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
322 RtlInitUnicodeString(&Name
, L
"ac.exe");
323 ok(FsRtlIsNameInExpression(&Expression
, &Name
, FALSE
, NULL
) == FALSE
, "expected FALSE, got TRUE\n");
326 static VOID
FsRtlIsDbcsInExpressionTest()
328 ANSI_STRING Expression
, Name
;
330 if (!KmtIsCheckedBuild
)
332 RtlInitAnsiString(&Expression
, "*");
333 RtlInitAnsiString(&Name
, "");
334 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
335 RtlInitAnsiString(&Expression
, "");
336 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
339 RtlInitAnsiString(&Expression
, "**");
340 if (!KmtIsCheckedBuild
)
342 RtlInitAnsiString(&Name
, "");
343 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
345 RtlInitAnsiString(&Name
, "a");
346 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
348 RtlInitAnsiString(&Expression
, "ntdll.dll");
349 RtlInitAnsiString(&Name
, ".");
350 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
351 RtlInitAnsiString(&Name
, "~1");
352 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
353 RtlInitAnsiString(&Name
, "..");
354 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
355 RtlInitAnsiString(&Name
, "ntdll.dll");
356 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
358 RtlInitAnsiString(&Expression
, "smss.exe");
359 RtlInitAnsiString(&Name
, ".");
360 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
361 RtlInitAnsiString(&Name
, "~1");
362 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
363 RtlInitAnsiString(&Name
, "..");
364 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
365 RtlInitAnsiString(&Name
, "ntdll.dll");
366 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
367 RtlInitAnsiString(&Name
, "NTDLL.dll");
368 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
370 RtlInitAnsiString(&Expression
, "nt??krnl.???");
371 RtlInitAnsiString(&Name
, "ntoskrnl.exe");
372 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
374 RtlInitAnsiString(&Expression
, "he*o");
375 RtlInitAnsiString(&Name
, "hello");
376 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
377 RtlInitAnsiString(&Name
, "helo");
378 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
379 RtlInitAnsiString(&Name
, "hella");
380 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
382 RtlInitAnsiString(&Expression
, "he*");
383 RtlInitAnsiString(&Name
, "hello");
384 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
385 RtlInitAnsiString(&Name
, "helo");
386 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
387 RtlInitAnsiString(&Name
, "hella");
388 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
390 RtlInitAnsiString(&Expression
, "*.cpl");
391 RtlInitAnsiString(&Name
, "kdcom.dll");
392 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
393 RtlInitAnsiString(&Name
, "bootvid.dll");
394 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
395 RtlInitAnsiString(&Name
, "ntoskrnl.exe");
396 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
398 RtlInitAnsiString(&Expression
, ".");
399 RtlInitAnsiString(&Name
, "NTDLL.DLL");
400 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
402 RtlInitAnsiString(&Expression
, "F0_*.*");
403 RtlInitAnsiString(&Name
, ".");
404 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
405 RtlInitAnsiString(&Name
, "..");
406 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
407 RtlInitAnsiString(&Name
, "SETUP.EXE");
408 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
409 RtlInitAnsiString(&Name
, "f0_");
410 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
411 RtlInitAnsiString(&Name
, "F0_");
412 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
413 RtlInitAnsiString(&Name
, "f0_.");
414 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
415 RtlInitAnsiString(&Name
, "F0_.");
416 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
417 RtlInitAnsiString(&Name
, "F0_001");
418 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
420 RtlInitAnsiString(&Name
, "f0_001");
421 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
422 RtlInitAnsiString(&Name
, "F0_001.");
423 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
424 RtlInitAnsiString(&Name
, "f0_001.txt");
425 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
426 RtlInitAnsiString(&Name
, "F0_001.txt");
427 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
429 RtlInitAnsiString(&Expression
, "F0_*.");
430 RtlInitAnsiString(&Name
, ".");
431 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
432 RtlInitAnsiString(&Name
, "..");
433 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
434 RtlInitAnsiString(&Name
, "SETUP.EXE");
435 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
436 RtlInitAnsiString(&Name
, "f0_");
437 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
438 RtlInitAnsiString(&Name
, "F0_");
439 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
440 RtlInitAnsiString(&Name
, "f0_.");
441 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
442 RtlInitAnsiString(&Name
, "F0_.");
443 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
444 RtlInitAnsiString(&Name
, "F0_001");
445 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
446 RtlInitAnsiString(&Name
, "f0_001");
447 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
448 RtlInitAnsiString(&Name
, "F0_OO1.");
449 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
450 RtlInitAnsiString(&Name
, "f0_001.txt");
451 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
452 RtlInitAnsiString(&Name
, "F0_001.txt");
453 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
455 RtlInitAnsiString(&Expression
, "*.TTF");
456 RtlInitAnsiString(&Name
, ".");
457 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
458 RtlInitAnsiString(&Name
, "..");
459 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
460 RtlInitAnsiString(&Name
, "SETUP.INI");
461 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
463 RtlInitAnsiString(&Expression
, "*");
464 RtlInitAnsiString(&Name
, ".");
465 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
466 RtlInitAnsiString(&Name
, "..");
467 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
468 RtlInitAnsiString(&Name
, "SETUP.INI");
469 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
471 RtlInitAnsiString(&Expression
, ".*");
472 RtlInitAnsiString(&Name
, "1");
473 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
474 RtlInitAnsiString(&Name
, "01");
475 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
476 RtlInitAnsiString(&Name
, " ");
477 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
478 RtlInitAnsiString(&Name
, "");
479 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
480 RtlInitAnsiString(&Name
, ".");
481 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
482 RtlInitAnsiString(&Name
, "1.txt");
483 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
484 RtlInitAnsiString(&Name
, " .txt");
485 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
486 RtlInitAnsiString(&Name
, ".txt");
487 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
489 RtlInitAnsiString(&Expression
, "\"ntoskrnl.exe");
490 RtlInitAnsiString(&Name
, "ntoskrnl.exe");
491 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
492 RtlInitAnsiString(&Expression
, "ntoskrnl\"exe");
493 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
494 RtlInitAnsiString(&Expression
, "ntoskrn\".exe");
495 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
496 RtlInitAnsiString(&Expression
, "ntoskrn\"\"exe");
497 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
498 RtlInitAnsiString(&Expression
, "ntoskrnl.\"exe");
499 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
500 RtlInitAnsiString(&Expression
, "ntoskrnl.exe\"");
501 RtlInitAnsiString(&Name
, "ntoskrnl.exe");
502 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
503 RtlInitAnsiString(&Name
, "ntoskrnl.exe.");
504 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
506 RtlInitAnsiString(&Expression
, "*.c.d");
507 RtlInitAnsiString(&Name
, "a.b.c.d");
508 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
509 RtlInitAnsiString(&Expression
, "*.?.c.d");
510 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
511 RtlInitAnsiString(&Expression
, "*?");
512 if (!KmtIsCheckedBuild
)
514 RtlInitAnsiString(&Name
, "");
515 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
517 RtlInitAnsiString(&Name
, "a");
518 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
519 RtlInitAnsiString(&Name
, "aa");
520 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
521 RtlInitAnsiString(&Name
, "aaa");
522 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
523 RtlInitAnsiString(&Expression
, "?*?");
524 if (!KmtIsCheckedBuild
)
526 RtlInitAnsiString(&Name
, "");
527 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
529 RtlInitAnsiString(&Name
, "a");
530 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
531 RtlInitAnsiString(&Name
, "aa");
532 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
533 RtlInitAnsiString(&Name
, "aaa");
534 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
535 RtlInitAnsiString(&Name
, "aaaa");
536 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
538 /* Tests from #5923 */
539 RtlInitAnsiString(&Expression
, "C:\\ReactOS\\**");
540 RtlInitAnsiString(&Name
, "C:\\ReactOS\\dings.bmp");
541 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
542 RtlInitAnsiString(&Expression
, "C:\\ReactOS\\***");
543 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
544 RtlInitAnsiString(&Expression
, "C:\\Windows\\*a*");
545 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
547 RtlInitAnsiString(&Expression
, "C:\\ReactOS\\*.bmp");
548 RtlInitAnsiString(&Name
, "C:\\Windows\\explorer.exe");
549 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
550 RtlInitAnsiString(&Expression
, "*.bmp;*.dib");
551 RtlInitAnsiString(&Name
, "winhlp32.exe");
552 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
554 /* Backtracking tests */
555 RtlInitAnsiString(&Expression
, "*.*.*.*");
556 RtlInitAnsiString(&Name
, "127.0.0.1");
557 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
559 RtlInitAnsiString(&Expression
, "*?*?*?*");
560 RtlInitAnsiString(&Name
, "1.0.0.1");
561 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
562 RtlInitAnsiString(&Expression
, "?*?*?*?");
563 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
564 RtlInitAnsiString(&Expression
, "?.?.?.?");
565 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
567 RtlInitAnsiString(&Expression
, "*a*ab*abc");
568 RtlInitAnsiString(&Name
, "aabaabcdadabdabc");
569 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
571 /* Tests for extra wildcards */
572 RtlInitAnsiString(&Expression
, "ab<exe");
573 RtlInitAnsiString(&Name
, "abcd.exe");
574 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
575 RtlInitAnsiString(&Name
, "ab.exe");
576 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
577 RtlInitAnsiString(&Name
, "abcdexe");
578 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
579 RtlInitAnsiString(&Name
, "acd.exe");
580 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
581 RtlInitAnsiString(&Expression
, "a.b<exe");
582 RtlInitAnsiString(&Name
, "a.bcd.exe");
583 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
584 RtlInitAnsiString(&Expression
, "a<b.exe");
585 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
586 RtlInitAnsiString(&Name
, "a.b.exe");
587 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
589 RtlInitAnsiString(&Expression
, "abc.exe\"");
590 RtlInitAnsiString(&Name
, "abc.exe");
591 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
592 RtlInitAnsiString(&Name
, "abc.exe.");
593 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
594 RtlInitAnsiString(&Name
, "abc.exe.back");
595 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
596 RtlInitAnsiString(&Name
, "abc.exes");
597 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
599 RtlInitAnsiString(&Expression
, "a>c.exe");
600 RtlInitAnsiString(&Name
, "abc.exe");
601 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == TRUE
, "expected TRUE, got FALSE\n");
602 RtlInitAnsiString(&Name
, "ac.exe");
603 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
604 RtlInitAnsiString(&Expression
, "a>>>exe");
605 RtlInitAnsiString(&Name
, "abc.exe");
606 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
607 RtlInitAnsiString(&Name
, "ac.exe");
608 ok(FsRtlIsDbcsInExpression(&Expression
, &Name
) == FALSE
, "expected FALSE, got TRUE\n");
611 START_TEST(FsRtlExpression
)
613 FsRtlIsNameInExpressionTest();
614 FsRtlIsDbcsInExpressionTest();