2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Tests for Tunnel Cache
5 * PROGRAMMER: Pierre Schweitzer <pierre.schweitzer@reactos.org>
10 #define WIN32_NO_STATUS
12 #include <ndk/rtlfuncs.h>
16 Test_VeryLongTests(void)
20 CHAR TestDir
[] = "XTestDirTunnelCache";
21 CHAR OldDir
[MAX_PATH
];
22 FILETIME FileTime
, File1Time
;
24 win_skip("Too long, see: ROSTESTS-177");
27 /* Create a blank test directory */
28 if (GetCurrentDirectory(MAX_PATH
, OldDir
) == 0)
30 win_skip("No test directory available\n");
34 /* Create a blank test directory */
38 if (CreateDirectory(TestDir
, NULL
))
40 if (SetCurrentDirectory(TestDir
) == 0)
42 RemoveDirectory(TestDir
);
43 win_skip("No test directory available\n");
53 win_skip("No test directory available\n");
57 hFile
= CreateFile("file1",
58 GENERIC_READ
| GENERIC_WRITE
,
61 FILE_ATTRIBUTE_NORMAL
,
63 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
64 ok(GetFileTime(hFile
, &FileTime
, NULL
, NULL
) != FALSE
, "GetFileTime() failed\n");
67 /* Wait a least 10ms (resolution of FAT) */
68 /* XXX: Increased to 1s for ReactOS... */
71 hFile
= CreateFile("file2",
72 GENERIC_READ
| GENERIC_WRITE
,
75 FILE_ATTRIBUTE_NORMAL
,
77 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
80 ok(MoveFile("file1", "file") != FALSE
, "MoveFile() failed\n");
81 /* Sleep over cache expiry */
82 /* FIXME: Query correct value from registry if it exists:
83 * \HKLM\System\CurrentControlSet\Control\FileSystem\MaximumTunnelEntryAgeInSeconds */
85 ok(MoveFile("file2", "file1") != FALSE
, "MoveFile() failed\n");
87 hFile
= CreateFile("file1",
91 FILE_ATTRIBUTE_NORMAL
,
93 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
94 ok(GetFileTime(hFile
, &File1Time
, NULL
, NULL
) != FALSE
, "GetFileTime() failed\n");
97 ok(RtlCompareMemory(&FileTime
, &File1Time
, sizeof(FILETIME
)) != sizeof(FILETIME
), "Tunnel cache still in action?\n");
103 SetCurrentDirectory(OldDir
);
104 RemoveDirectory(TestDir
);
113 CHAR TestDir
[] = "XTestDirTunnelCache";
114 CHAR OldDir
[MAX_PATH
];
115 FILETIME FileTime
, File1Time
;
117 /* Create a blank test directory */
118 if (GetCurrentDirectory(MAX_PATH
, OldDir
) == 0)
120 win_skip("No test directory available\n");
124 /* Create a blank test directory */
127 TestDir
[0] = '0' + i
;
128 if (CreateDirectory(TestDir
, NULL
))
130 if (SetCurrentDirectory(TestDir
) == 0)
132 RemoveDirectory(TestDir
);
133 win_skip("No test directory available\n");
143 win_skip("No test directory available\n");
147 hFile
= CreateFile("file1",
148 GENERIC_READ
| GENERIC_WRITE
,
151 FILE_ATTRIBUTE_NORMAL
,
153 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
154 ok(GetFileTime(hFile
, &FileTime
, NULL
, NULL
) != FALSE
, "GetFileTime() failed\n");
157 /* Wait a least 10ms (resolution of FAT) */
158 /* XXX: Increased to 1s for ReactOS... */
161 hFile
= CreateFile("file2",
162 GENERIC_READ
| GENERIC_WRITE
,
165 FILE_ATTRIBUTE_NORMAL
,
167 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
170 ok(MoveFile("file1", "file") != FALSE
, "MoveFile() failed\n");
171 ok(MoveFile("file2", "file1") != FALSE
, "MoveFile() failed\n");
173 hFile
= CreateFile("file1",
177 FILE_ATTRIBUTE_NORMAL
,
179 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
180 ok(GetFileTime(hFile
, &File1Time
, NULL
, NULL
) != FALSE
, "GetFileTime() failed\n");
183 ok(RtlCompareMemory(&FileTime
, &File1Time
, sizeof(FILETIME
)) == sizeof(FILETIME
), "Tunnel cache failed\n");
189 SetCurrentDirectory(OldDir
);
190 RemoveDirectory(TestDir
);
195 Test_ShortTests(void)
200 WIN32_FIND_DATA FileInfo
;
201 CHAR TestDir
[] = "XTestDirTunnelCache";
202 CHAR OldDir
[MAX_PATH
];
204 /* Create a blank test directory */
205 if (GetCurrentDirectory(MAX_PATH
, OldDir
) == 0)
207 win_skip("No test directory available\n");
211 /* Create a blank test directory */
214 TestDir
[0] = '0' + i
;
215 if (CreateDirectory(TestDir
, NULL
))
217 if (SetCurrentDirectory(TestDir
) == 0)
219 RemoveDirectory(TestDir
);
220 win_skip("No test directory available\n");
230 win_skip("No test directory available\n");
234 hFile
= CreateFile("verylongfilename",
235 GENERIC_READ
| GENERIC_WRITE
,
238 FILE_ATTRIBUTE_NORMAL
,
240 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
243 hFind
= FindFirstFile("verylongfilename", &FileInfo
);
244 ok(hFind
!= INVALID_HANDLE_VALUE
, "FindFirstFile() failed\n");
246 RtlCopyMemory(ShortName
, FileInfo
.cAlternateFileName
, sizeof(ShortName
));
248 ok(MoveFile("verylongfilename", "verylongfilename2") != FALSE
, "MoveFile() failed\n");
249 hFind
= FindFirstFile("verylongfilename2", &FileInfo
);
250 ok(hFind
!= INVALID_HANDLE_VALUE
, "FindFirstFile() failed\n");
252 ok(strcmp(FileInfo
.cAlternateFileName
, ShortName
) == 0, "strcmp() failed\n");
254 hFile
= CreateFile("randomfilename",
255 GENERIC_READ
| GENERIC_WRITE
,
258 FILE_ATTRIBUTE_NORMAL
,
260 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
263 ok(MoveFileEx("randomfilename", "verylongfilename2", MOVEFILE_REPLACE_EXISTING
) != FALSE
, "MoveFile() failed\n");
264 hFind
= FindFirstFile("verylongfilename2", &FileInfo
);
265 ok(hFind
!= INVALID_HANDLE_VALUE
, "FindFirstFile() failed\n");
267 ok(strcmp(FileInfo
.cAlternateFileName
, ShortName
) == 0, "strcmp() failed\n");
269 DeleteFile("randomfilename");
270 DeleteFile("verylongfilename");
271 DeleteFile("verylongfilename2");
273 SetCurrentDirectory(OldDir
);
274 RemoveDirectory(TestDir
);
277 START_TEST(TunnelCache
)
281 Test_VeryLongTests();