[uxtheme]
[reactos.git] / rostests / kmtests / ntos_fsrtl / FsRtlExpression.c
1 /*
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>
6 */
7
8 /* TODO: most of these calls fail the Windows checked build's !islower assertion and others */
9
10 #include <kmt_test.h>
11
12 #define NDEBUG
13 #include <debug.h>
14
15 static VOID FsRtlIsNameInExpressionTest()
16 {
17 UNICODE_STRING Expression, Name;
18
19 /* !Name->Length || !Expression->Length asserts */
20 if (!KmtIsCheckedBuild)
21 {
22 RtlInitUnicodeString(&Expression, L"*");
23 RtlInitUnicodeString(&Name, L"");
24 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
25 RtlInitUnicodeString(&Expression, L"");
26 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
27 }
28
29 RtlInitUnicodeString(&Expression, L"ntdll.dll");
30 RtlInitUnicodeString(&Name, L".");
31 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
32 RtlInitUnicodeString(&Name, L"~1");
33 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
34 RtlInitUnicodeString(&Name, L"..");
35 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
36 RtlInitUnicodeString(&Name, L"ntdll.dll");
37 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
38
39 RtlInitUnicodeString(&Expression, L"smss.exe");
40 RtlInitUnicodeString(&Name, L".");
41 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
42 RtlInitUnicodeString(&Name, L"~1");
43 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
44 RtlInitUnicodeString(&Name, L"..");
45 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
46 RtlInitUnicodeString(&Name, L"ntdll.dll");
47 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
48 RtlInitUnicodeString(&Name, L"NTDLL.dll");
49 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
50
51 RtlInitUnicodeString(&Expression, L"nt??krnl.???");
52 RtlInitUnicodeString(&Name, L"ntoskrnl.exe");
53 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
54
55 RtlInitUnicodeString(&Expression, L"he*o");
56 RtlInitUnicodeString(&Name, L"hello");
57 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
58 RtlInitUnicodeString(&Name, L"helo");
59 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
60 RtlInitUnicodeString(&Name, L"hella");
61 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
62
63 RtlInitUnicodeString(&Expression, L"he*");
64 RtlInitUnicodeString(&Name, L"hello");
65 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
66 RtlInitUnicodeString(&Name, L"helo");
67 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
68 RtlInitUnicodeString(&Name, L"hella");
69 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
70
71 RtlInitUnicodeString(&Expression, L"*.cpl");
72 RtlInitUnicodeString(&Name, L"kdcom.dll");
73 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
74 RtlInitUnicodeString(&Name, L"bootvid.dll");
75 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
76 RtlInitUnicodeString(&Name, L"ntoskrnl.exe");
77 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
78
79 RtlInitUnicodeString(&Expression, L".");
80 RtlInitUnicodeString(&Name, L"NTDLL.DLL");
81 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
82
83 RtlInitUnicodeString(&Expression, L"F0_*.*");
84 RtlInitUnicodeString(&Name, L".");
85 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
86 RtlInitUnicodeString(&Name, L"..");
87 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
88 RtlInitUnicodeString(&Name, L"SETUP.EXE");
89 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
90 RtlInitUnicodeString(&Name, L"F0_001");
91 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
92
93 RtlInitUnicodeString(&Expression, L"*.TTF");
94 RtlInitUnicodeString(&Name, L".");
95 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
96 RtlInitUnicodeString(&Name, L"..");
97 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
98 RtlInitUnicodeString(&Name, L"SETUP.INI");
99 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
100
101 RtlInitUnicodeString(&Expression, L"*");
102 RtlInitUnicodeString(&Name, L".");
103 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
104 RtlInitUnicodeString(&Name, L"..");
105 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
106 RtlInitUnicodeString(&Name, L"SETUP.INI");
107 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
108
109 RtlInitUnicodeString(&Expression, L"\"ntoskrnl.exe");
110 RtlInitUnicodeString(&Name, L"ntoskrnl.exe");
111 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
112 RtlInitUnicodeString(&Expression, L"ntoskrnl\"exe");
113 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
114 RtlInitUnicodeString(&Expression, L"ntoskrn\".exe");
115 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
116 RtlInitUnicodeString(&Expression, L"ntoskrn\"\"exe");
117 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
118 RtlInitUnicodeString(&Expression, L"ntoskrnl.\"exe");
119 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
120 RtlInitUnicodeString(&Expression, L"ntoskrnl.exe\"");
121 RtlInitUnicodeString(&Name, L"ntoskrnl.exe");
122 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
123 RtlInitUnicodeString(&Name, L"ntoskrnl.exe.");
124 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
125
126 RtlInitUnicodeString(&Expression, L"*.c.d");
127 RtlInitUnicodeString(&Name, L"a.b.c.d");
128 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
129 RtlInitUnicodeString(&Expression, L"*.?.c.d");
130 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
131 RtlInitUnicodeString(&Expression, L"*?");
132 if (!KmtIsCheckedBuild)
133 {
134 RtlInitUnicodeString(&Name, L"");
135 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
136 }
137 RtlInitUnicodeString(&Name, L"a");
138 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
139 RtlInitUnicodeString(&Name, L"aa");
140 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
141 RtlInitUnicodeString(&Name, L"aaa");
142 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
143 RtlInitUnicodeString(&Expression, L"?*?");
144 if (!KmtIsCheckedBuild)
145 {
146 RtlInitUnicodeString(&Name, L"");
147 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
148 }
149 RtlInitUnicodeString(&Name, L"a");
150 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
151 RtlInitUnicodeString(&Name, L"aa");
152 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
153 RtlInitUnicodeString(&Name, L"aaa");
154 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
155 RtlInitUnicodeString(&Name, L"aaaa");
156 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
157
158 /* Tests from #5923 */
159 RtlInitUnicodeString(&Expression, L"C:\\ReactOS\\**");
160 RtlInitUnicodeString(&Name, L"C:\\ReactOS\\dings.bmp");
161 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
162 RtlInitUnicodeString(&Expression, L"C:\\ReactOS\\***");
163 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
164 RtlInitUnicodeString(&Expression, L"C:\\Windows\\*a*");
165 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
166
167 RtlInitUnicodeString(&Expression, L"C:\\ReactOS\\*.bmp");
168 RtlInitUnicodeString(&Name, L"C:\\Windows\\explorer.exe");
169 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
170 RtlInitUnicodeString(&Expression, L"*.bmp;*.dib");
171 RtlInitUnicodeString(&Name, L"winhlp32.exe");
172 ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
173 }
174
175 static VOID FsRtlIsDbcsInExpressionTest()
176 {
177 ANSI_STRING Expression, Name;
178
179 if (!KmtIsCheckedBuild)
180 {
181 RtlInitAnsiString(&Expression, "*");
182 RtlInitAnsiString(&Name, "");
183 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
184 RtlInitAnsiString(&Expression, "");
185 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
186 }
187
188 RtlInitAnsiString(&Expression, "ntdll.dll");
189 RtlInitAnsiString(&Name, ".");
190 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
191 RtlInitAnsiString(&Name, "~1");
192 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
193 RtlInitAnsiString(&Name, "..");
194 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
195 RtlInitAnsiString(&Name, "ntdll.dll");
196 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
197
198 RtlInitAnsiString(&Expression, "smss.exe");
199 RtlInitAnsiString(&Name, ".");
200 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
201 RtlInitAnsiString(&Name, "~1");
202 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
203 RtlInitAnsiString(&Name, "..");
204 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
205 RtlInitAnsiString(&Name, "ntdll.dll");
206 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
207 RtlInitAnsiString(&Name, "NTDLL.dll");
208 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
209
210 RtlInitAnsiString(&Expression, "nt??krnl.???");
211 RtlInitAnsiString(&Name, "ntoskrnl.exe");
212 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
213
214 RtlInitAnsiString(&Expression, "he*o");
215 RtlInitAnsiString(&Name, "hello");
216 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
217 RtlInitAnsiString(&Name, "helo");
218 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
219 RtlInitAnsiString(&Name, "hella");
220 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
221
222 RtlInitAnsiString(&Expression, "he*");
223 RtlInitAnsiString(&Name, "hello");
224 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
225 RtlInitAnsiString(&Name, "helo");
226 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
227 RtlInitAnsiString(&Name, "hella");
228 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
229
230 RtlInitAnsiString(&Expression, "*.cpl");
231 RtlInitAnsiString(&Name, "kdcom.dll");
232 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
233 RtlInitAnsiString(&Name, "bootvid.dll");
234 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
235 RtlInitAnsiString(&Name, "ntoskrnl.exe");
236 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
237
238 RtlInitAnsiString(&Expression, ".");
239 RtlInitAnsiString(&Name, "NTDLL.DLL");
240 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
241
242 RtlInitAnsiString(&Expression, "F0_*.*");
243 RtlInitAnsiString(&Name, ".");
244 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
245 RtlInitAnsiString(&Name, "..");
246 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
247 RtlInitAnsiString(&Name, "SETUP.EXE");
248 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
249 RtlInitAnsiString(&Name, "F0_001");
250 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
251
252 RtlInitAnsiString(&Expression, "*.TTF");
253 RtlInitAnsiString(&Name, ".");
254 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
255 RtlInitAnsiString(&Name, "..");
256 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
257 RtlInitAnsiString(&Name, "SETUP.INI");
258 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
259
260 RtlInitAnsiString(&Expression, "*");
261 RtlInitAnsiString(&Name, ".");
262 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
263 RtlInitAnsiString(&Name, "..");
264 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
265 RtlInitAnsiString(&Name, "SETUP.INI");
266 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
267
268 RtlInitAnsiString(&Expression, "\"ntoskrnl.exe");
269 RtlInitAnsiString(&Name, "ntoskrnl.exe");
270 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
271 RtlInitAnsiString(&Expression, "ntoskrnl\"exe");
272 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
273 RtlInitAnsiString(&Expression, "ntoskrn\".exe");
274 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
275 RtlInitAnsiString(&Expression, "ntoskrn\"\"exe");
276 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
277 RtlInitAnsiString(&Expression, "ntoskrnl.\"exe");
278 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
279 RtlInitAnsiString(&Expression, "ntoskrnl.exe\"");
280 RtlInitAnsiString(&Name, "ntoskrnl.exe");
281 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
282 RtlInitAnsiString(&Name, "ntoskrnl.exe.");
283 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
284
285 RtlInitAnsiString(&Expression, "*.c.d");
286 RtlInitAnsiString(&Name, "a.b.c.d");
287 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
288 RtlInitAnsiString(&Expression, "*.?.c.d");
289 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
290 RtlInitAnsiString(&Expression, "*?");
291 if (!KmtIsCheckedBuild)
292 {
293 RtlInitAnsiString(&Name, "");
294 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
295 }
296 RtlInitAnsiString(&Name, "a");
297 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
298 RtlInitAnsiString(&Name, "aa");
299 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
300 RtlInitAnsiString(&Name, "aaa");
301 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
302 RtlInitAnsiString(&Expression, "?*?");
303 if (!KmtIsCheckedBuild)
304 {
305 RtlInitAnsiString(&Name, "");
306 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
307 }
308 RtlInitAnsiString(&Name, "a");
309 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
310 RtlInitAnsiString(&Name, "aa");
311 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
312 RtlInitAnsiString(&Name, "aaa");
313 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
314 RtlInitAnsiString(&Name, "aaaa");
315 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
316
317 /* Tests from #5923 */
318 RtlInitAnsiString(&Expression, "C:\\ReactOS\\**");
319 RtlInitAnsiString(&Name, "C:\\ReactOS\\dings.bmp");
320 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
321 RtlInitAnsiString(&Expression, "C:\\ReactOS\\***");
322 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == TRUE, "expected TRUE, got FALSE");
323 RtlInitAnsiString(&Expression, "C:\\Windows\\*a*");
324 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
325
326 RtlInitAnsiString(&Expression, "C:\\ReactOS\\*.bmp");
327 RtlInitAnsiString(&Name, "C:\\Windows\\explorer.exe");
328 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
329 RtlInitAnsiString(&Expression, "*.bmp;*.dib");
330 RtlInitAnsiString(&Name, "winhlp32.exe");
331 ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE");
332 }
333
334 START_TEST(FsRtlExpression)
335 {
336 FsRtlIsNameInExpressionTest();
337 FsRtlIsDbcsInExpressionTest();
338 }