[PATCH 1/2] ntdll/tests: Test NtQueryDirectoryFile with different ReturnSingleEntry and RestartScan flags. (try 3)
Grazvydas Ignotas
notasas at gmail.com
Wed Jul 27 16:31:50 CDT 2011
changed since try 1: improved fail message a little.
---
dlls/ntdll/tests/directory.c | 21 ++++++++++++---------
1 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/dlls/ntdll/tests/directory.c b/dlls/ntdll/tests/directory.c
index 56840b5..40ca0ac 100644
--- a/dlls/ntdll/tests/directory.c
+++ b/dlls/ntdll/tests/directory.c
@@ -150,7 +150,7 @@ static void tally_test_file(FILE_BOTH_DIRECTORY_INFORMATION *dir_info)
ok(testfiles[i].name != NULL, "unexpected file found\n");
}
-static void test_NtQueryDirectoryFile(void)
+static void test_NtQueryDirectoryFile(BOOLEAN single_entry, BOOLEAN restart_flag)
{
OBJECT_ATTRIBUTES attr;
UNICODE_STRING ntdirname;
@@ -190,7 +190,7 @@ static void test_NtQueryDirectoryFile(void)
}
pNtQueryDirectoryFile( dirh, NULL, NULL, NULL, &io, data, sizeof(data),
- FileBothDirectoryInformation, FALSE, NULL, FALSE );
+ FileBothDirectoryInformation, single_entry, NULL, restart_flag );
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");
@@ -204,7 +204,7 @@ static void test_NtQueryDirectoryFile(void)
if (dir_info->NextEntryOffset == 0) {
pNtQueryDirectoryFile( dirh, 0, NULL, NULL, &io, data, sizeof(data),
- FileBothDirectoryInformation, FALSE, NULL, FALSE );
+ FileBothDirectoryInformation, single_entry, NULL, FALSE );
if (U(io).Status == STATUS_NO_MORE_FILES)
break;
ok (U(io).Status == STATUS_SUCCESS, "filed to query directory; status %x\n", U(io).Status);
@@ -220,13 +220,13 @@ static void test_NtQueryDirectoryFile(void)
ok(numfiles < max_test_dir_size, "too many loops\n");
for (i=0; testfiles[i].name; i++) {
- if (strcmp(testfiles[i].name, ".") == 0 || strcmp(testfiles[i].name, "..") == 0) {
+ if ((strcmp(testfiles[i].name, ".") == 0 || strcmp(testfiles[i].name, "..") == 0) && (single_entry || !restart_flag)) {
todo_wine
- ok(testfiles[i].nfound == 1, "Wrong number %d of %s files found\n",
- testfiles[i].nfound, testfiles[i].description);
+ ok(testfiles[i].nfound == 1, "Wrong number %d of %s files found (ReturnSingleEntry=%d,RestartScan=%d)\n",
+ testfiles[i].nfound, testfiles[i].description, single_entry, restart_flag);
} else {
- ok(testfiles[i].nfound == 1, "Wrong number %d of %s files found\n",
- testfiles[i].nfound, testfiles[i].description);
+ ok(testfiles[i].nfound == 1, "Wrong number %d of %s files found (ReturnSingleEntry=%d,RestartScan=%d)\n",
+ testfiles[i].nfound, testfiles[i].description, single_entry, restart_flag);
}
}
@@ -299,6 +299,9 @@ START_TEST(directory)
pRtlWow64EnableFsRedirection = (void *)GetProcAddress(hntdll,"RtlWow64EnableFsRedirection");
pRtlWow64EnableFsRedirectionEx = (void *)GetProcAddress(hntdll,"RtlWow64EnableFsRedirectionEx");
- test_NtQueryDirectoryFile();
+ test_NtQueryDirectoryFile(FALSE, TRUE);
+ test_NtQueryDirectoryFile(FALSE, FALSE);
+ test_NtQueryDirectoryFile(TRUE, TRUE);
+ test_NtQueryDirectoryFile(TRUE, FALSE);
test_redirection();
}
--
1.7.0.4
More information about the wine-patches
mailing list