2 * PROJECT: ReactOS kernel-mode tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Test for FindFirstFile's wildcard substitution
5 * PROGRAMMER: Thomas Faber <thfabba@gmx.de>
15 WIN32_FIND_DATAW FindData
;
19 PCWSTR ExpectedExpression
;
22 { L
"Hello", L
"Hello" },
30 { L
"a*a*a", L
"a*a*a" },
33 { L
"a*.*", L
"a<\"*" },
34 { L
"*.*a", L
"<\"*a" },
35 { L
"a*.*a", L
"a<\"*a" },
36 { L
"*.**.*", L
"<\"*<\"*" },
37 { L
"*.*a*.*", L
"<\"*a<\"*" },
38 { L
"a*.*a*.*a", L
"a<\"*a<\"*a" },
43 { L
"a.*a", L
"a\"*a" },
44 { L
".*.*", L
"\"<\"*" },
45 { L
".*a.*", L
"\"*a\"*" },
46 { L
"a.*a.*a", L
"a\"*a\"*a" },
53 { L
"*.a*.", L
"<.a<" },
54 { L
"a*.a*.a", L
"a<.a<.a" },
62 { L
"a?a?a", L
"a>a>a" },
66 { L
"f*.*", L
"f<\"*" },
67 { L
"f*.f*", L
"f<.f*" },
68 { L
"f*f.*", L
"f*f\"*" },
69 { L
"f*.*f", L
"f<\"*f" },
71 /* TODO: add more. Have fun */
73 const INT TestCount
= sizeof(Tests
) / sizeof(Tests
[0]);
75 WCHAR ExpressionBuffer
[MAX_PATH
];
77 KmtLoadDriver(L
"FindFile", FALSE
);
80 for (i
= 0; i
< TestCount
; i
++)
82 trace("[%d] '%ls', '%ls'\n", i
, Tests
[i
].Expression
, Tests
[i
].ExpectedExpression
);
83 KmtSendWStringToDriver(IOCTL_EXPECT
, Tests
[i
].ExpectedExpression
);
84 wcscpy(ExpressionBuffer
, L
"\\\\.\\Global\\GLOBALROOT\\Device\\Kmtest-FindFile\\");
85 wcscat(ExpressionBuffer
, Tests
[i
].Expression
);
86 FindHandle
= FindFirstFileW(ExpressionBuffer
, &FindData
);
87 ok(FindHandle
!= NULL
&& FindHandle
!= INVALID_HANDLE_VALUE
, "Handle: %p, error=%lu\n", (PVOID
)FindHandle
, GetLastError());
88 if (FindHandle
!= INVALID_HANDLE_VALUE
)
89 FindClose(FindHandle
);