Zebediah Figura : kernel32/tests: Add some more tests for FILE_ATTRIBUTE_REPARSE_POINT.

Alexandre Julliard julliard at winehq.org
Tue Dec 8 15:38:14 CST 2020


Module: wine
Branch: master
Commit: ea5249feae8233295f89fad75e081d9e9043735d
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=ea5249feae8233295f89fad75e081d9e9043735d

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Tue Dec  8 10:20:01 2020 -0600

kernel32/tests: Add some more tests for FILE_ATTRIBUTE_REPARSE_POINT.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/tests/volume.c | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/dlls/kernel32/tests/volume.c b/dlls/kernel32/tests/volume.c
index ead06764a11..5199a4992d8 100644
--- a/dlls/kernel32/tests/volume.c
+++ b/dlls/kernel32/tests/volume.c
@@ -1268,6 +1268,33 @@ static void test_mounted_folder(void)
     HANDLE file;
     DWORD size;
 
+    file = CreateFileA( "C:\\", 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+            OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT, NULL );
+    ok(file != INVALID_HANDLE_VALUE, "got error %u\n", GetLastError());
+
+    status = NtQueryInformationFile( file, &io, &info, sizeof(info), FileAttributeTagInformation );
+    ok(!status, "got status %#x\n", status);
+    ok(!(info.FileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
+            && (info.FileAttributes & FILE_ATTRIBUTE_DIRECTORY), "got attributes %#x\n", info.FileAttributes);
+    ok(!info.ReparseTag, "got reparse tag %#x\n", info.ReparseTag);
+
+    CloseHandle( file );
+
+    file = CreateFileA( "C:\\", 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+            OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL );
+    ok(file != INVALID_HANDLE_VALUE, "got error %u\n", GetLastError());
+
+    status = NtQueryInformationFile( file, &io, &info, sizeof(info), FileAttributeTagInformation );
+    ok(!status, "got status %#x\n", status);
+    ok(!(info.FileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
+            && (info.FileAttributes & FILE_ATTRIBUTE_DIRECTORY), "got attributes %#x\n", info.FileAttributes);
+    ok(!info.ReparseTag, "got reparse tag %#x\n", info.ReparseTag);
+
+    CloseHandle( file );
+
+    ret = GetFileAttributesA( "C:\\" );
+    ok(!(ret & FILE_ATTRIBUTE_REPARSE_POINT) && (ret & FILE_ATTRIBUTE_DIRECTORY), "got attributes %#x\n", ret);
+
     ret = CreateDirectoryA("C:\\winetest_mnt", NULL);
     if (!ret && GetLastError() == ERROR_ACCESS_DENIED)
     {
@@ -1324,6 +1351,10 @@ static void test_mounted_folder(void)
 
     CloseHandle( file );
 
+    ret = GetFileAttributesA( "C:\\winetest_mnt" );
+    ok(ret != INVALID_FILE_ATTRIBUTES, "got error %u\n", GetLastError());
+    ok((ret & FILE_ATTRIBUTE_REPARSE_POINT) && (ret & FILE_ATTRIBUTE_DIRECTORY), "got attributes %#x\n", ret);
+
     file = CreateFileA( "C:\\winetest_mnt\\windows", 0, FILE_SHARE_READ | FILE_SHARE_WRITE,
             NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL );
     ok(file != INVALID_HANDLE_VALUE, "got error %u\n", GetLastError());




More information about the wine-cvs mailing list