Grazvydas Ignotas : ntdll/tests: Test NtQueryDirectoryFile with RestartScan set to FALSE.
Alexandre Julliard
julliard at winehq.org
Tue Jul 19 12:42:56 CDT 2011
Module: wine
Branch: master
Commit: 5ae558bac71ccd9dca3c0b86a825493b834aae3d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5ae558bac71ccd9dca3c0b86a825493b834aae3d
Author: Grazvydas Ignotas <notasas at gmail.com>
Date: Sun Jul 17 02:48:15 2011 +0300
ntdll/tests: Test NtQueryDirectoryFile with RestartScan set to FALSE.
---
dlls/ntdll/tests/directory.c | 26 ++++++++++++++++++--------
1 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/dlls/ntdll/tests/directory.c b/dlls/ntdll/tests/directory.c
index be8dd13..56840b5 100644
--- a/dlls/ntdll/tests/directory.c
+++ b/dlls/ntdll/tests/directory.c
@@ -63,6 +63,8 @@ static struct testfile_s {
{ 1, FILE_ATTRIBUTE_HIDDEN, "h.tmp", NULL, "hidden" },
{ 1, FILE_ATTRIBUTE_SYSTEM, "s.tmp", NULL, "system" },
{ 0, FILE_ATTRIBUTE_DIRECTORY, "d.tmp", NULL, "directory" },
+ { 0, FILE_ATTRIBUTE_DIRECTORY, ".", NULL, ". directory" },
+ { 0, FILE_ATTRIBUTE_DIRECTORY, "..", NULL, ".. directory" },
{ 0, 0, NULL }
};
static const int max_test_dir_size = 20; /* size of above plus some for .. etc */
@@ -80,8 +82,10 @@ static void set_up_attribute_test(const char *testdirA)
char buf[MAX_PATH];
pRtlMultiByteToUnicodeN(testfiles[i].nameW, sizeof(testfiles[i].nameW), NULL, testfiles[i].name, strlen(testfiles[i].name)+1);
- sprintf(buf, "%s\\%s", testdirA, testfiles[i].name);
testfiles[i].nfound = 0;
+ if (strcmp(testfiles[i].name, ".") == 0 || strcmp(testfiles[i].name, "..") == 0)
+ continue;
+ sprintf(buf, "%s\\%s", testdirA, testfiles[i].name);
if (testfiles[i].attr & FILE_ATTRIBUTE_DIRECTORY) {
ret = CreateDirectoryA(buf, NULL);
ok(ret, "couldn't create dir '%s', error %d\n", buf, GetLastError());
@@ -104,6 +108,8 @@ static void tear_down_attribute_test(const char *testdirA)
for (i=0; testfiles[i].name; i++) {
int ret;
char buf[MAX_PATH];
+ if (strcmp(testfiles[i].name, ".") == 0 || strcmp(testfiles[i].name, "..") == 0)
+ continue;
sprintf(buf, "%s\\%s", testdirA, testfiles[i].name);
if (testfiles[i].attr & FILE_ATTRIBUTE_DIRECTORY) {
ret = RemoveDirectory(buf);
@@ -128,9 +134,6 @@ static void tally_test_file(FILE_BOTH_DIRECTORY_INFORMATION *dir_info)
WCHAR *nameW = dir_info->FileName;
int namelen = dir_info->FileNameLength / sizeof(WCHAR);
- if (nameW[0] == '.')
- return;
-
for (i=0; testfiles[i].name; i++) {
int len = strlen(testfiles[i].name);
if (namelen != len || memcmp(nameW, testfiles[i].nameW, len*sizeof(WCHAR)))
@@ -187,7 +190,7 @@ static void test_NtQueryDirectoryFile(void)
}
pNtQueryDirectoryFile( dirh, NULL, NULL, NULL, &io, data, sizeof(data),
- FileBothDirectoryInformation, FALSE, NULL, TRUE );
+ FileBothDirectoryInformation, FALSE, NULL, FALSE );
ok (U(io).Status == STATUS_SUCCESS, "filed to query directory; status %x\n", U(io).Status);
data_len = io.Information;
ok (data_len >= sizeof(FILE_BOTH_DIRECTORY_INFORMATION), "not enough data in directory\n");
@@ -216,9 +219,16 @@ static void test_NtQueryDirectoryFile(void)
}
ok(numfiles < max_test_dir_size, "too many loops\n");
- for (i=0; testfiles[i].name; i++)
- ok(testfiles[i].nfound == 1, "Wrong number %d of %s files found\n",
- testfiles[i].nfound, testfiles[i].description);
+ for (i=0; testfiles[i].name; i++) {
+ if (strcmp(testfiles[i].name, ".") == 0 || strcmp(testfiles[i].name, "..") == 0) {
+ todo_wine
+ ok(testfiles[i].nfound == 1, "Wrong number %d of %s files found\n",
+ testfiles[i].nfound, testfiles[i].description);
+ } else {
+ ok(testfiles[i].nfound == 1, "Wrong number %d of %s files found\n",
+ testfiles[i].nfound, testfiles[i].description);
+ }
+ }
pNtClose(dirh);
done:
More information about the wine-cvs
mailing list