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>
12 Test_VeryLongTests(void)
16 CHAR TestDir
[] = "XTestDirTunnelCache";
17 CHAR OldDir
[MAX_PATH
];
18 FILETIME FileTime
, File1Time
;
20 win_skip("Too long, see: ROSTESTS-177");
23 /* Create a blank test directory */
24 if (GetCurrentDirectory(MAX_PATH
, OldDir
) == 0)
26 win_skip("No test directory available\n");
30 /* Create a blank test directory */
34 if (CreateDirectory(TestDir
, NULL
))
36 if (SetCurrentDirectory(TestDir
) == 0)
38 RemoveDirectory(TestDir
);
39 win_skip("No test directory available\n");
49 win_skip("No test directory available\n");
53 hFile
= CreateFile("file1",
54 GENERIC_READ
| GENERIC_WRITE
,
57 FILE_ATTRIBUTE_NORMAL
,
59 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
60 ok(GetFileTime(hFile
, &FileTime
, NULL
, NULL
) != FALSE
, "GetFileTime() failed\n");
63 /* Wait a least 10ms (resolution of FAT) */
64 /* XXX: Increased to 1s for ReactOS... */
67 hFile
= CreateFile("file2",
68 GENERIC_READ
| GENERIC_WRITE
,
71 FILE_ATTRIBUTE_NORMAL
,
73 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
76 ok(MoveFile("file1", "file") != FALSE
, "MoveFile() failed\n");
77 /* Sleep over cache expiry */
78 /* FIXME: Query correct value from registry if it exists:
79 * \HKLM\System\CurrentControlSet\Control\FileSystem\MaximumTunnelEntryAgeInSeconds */
81 ok(MoveFile("file2", "file1") != FALSE
, "MoveFile() failed\n");
83 hFile
= CreateFile("file1",
87 FILE_ATTRIBUTE_NORMAL
,
89 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
90 ok(GetFileTime(hFile
, &File1Time
, NULL
, NULL
) != FALSE
, "GetFileTime() failed\n");
93 ok(RtlCompareMemory(&FileTime
, &File1Time
, sizeof(FILETIME
)) != sizeof(FILETIME
), "Tunnel cache still in action?\n");
99 SetCurrentDirectory(OldDir
);
100 RemoveDirectory(TestDir
);
109 CHAR TestDir
[] = "XTestDirTunnelCache";
110 CHAR OldDir
[MAX_PATH
];
111 FILETIME FileTime
, File1Time
;
113 /* Create a blank test directory */
114 if (GetCurrentDirectory(MAX_PATH
, OldDir
) == 0)
116 win_skip("No test directory available\n");
120 /* Create a blank test directory */
123 TestDir
[0] = '0' + i
;
124 if (CreateDirectory(TestDir
, NULL
))
126 if (SetCurrentDirectory(TestDir
) == 0)
128 RemoveDirectory(TestDir
);
129 win_skip("No test directory available\n");
139 win_skip("No test directory available\n");
143 hFile
= CreateFile("file1",
144 GENERIC_READ
| GENERIC_WRITE
,
147 FILE_ATTRIBUTE_NORMAL
,
149 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
150 ok(GetFileTime(hFile
, &FileTime
, NULL
, NULL
) != FALSE
, "GetFileTime() failed\n");
153 /* Wait a least 10ms (resolution of FAT) */
154 /* XXX: Increased to 1s for ReactOS... */
157 hFile
= CreateFile("file2",
158 GENERIC_READ
| GENERIC_WRITE
,
161 FILE_ATTRIBUTE_NORMAL
,
163 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
166 ok(MoveFile("file1", "file") != FALSE
, "MoveFile() failed\n");
167 ok(MoveFile("file2", "file1") != FALSE
, "MoveFile() failed\n");
169 hFile
= CreateFile("file1",
173 FILE_ATTRIBUTE_NORMAL
,
175 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
176 ok(GetFileTime(hFile
, &File1Time
, NULL
, NULL
) != FALSE
, "GetFileTime() failed\n");
179 ok(RtlCompareMemory(&FileTime
, &File1Time
, sizeof(FILETIME
)) == sizeof(FILETIME
), "Tunnel cache failed\n");
185 SetCurrentDirectory(OldDir
);
186 RemoveDirectory(TestDir
);
191 Test_ShortTests(void)
196 WIN32_FIND_DATA FileInfo
;
197 CHAR TestDir
[] = "XTestDirTunnelCache";
198 CHAR OldDir
[MAX_PATH
];
200 /* Create a blank test directory */
201 if (GetCurrentDirectory(MAX_PATH
, OldDir
) == 0)
203 win_skip("No test directory available\n");
207 /* Create a blank test directory */
210 TestDir
[0] = '0' + i
;
211 if (CreateDirectory(TestDir
, NULL
))
213 if (SetCurrentDirectory(TestDir
) == 0)
215 RemoveDirectory(TestDir
);
216 win_skip("No test directory available\n");
226 win_skip("No test directory available\n");
230 hFile
= CreateFile("verylongfilename",
231 GENERIC_READ
| GENERIC_WRITE
,
234 FILE_ATTRIBUTE_NORMAL
,
236 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
239 hFind
= FindFirstFile("verylongfilename", &FileInfo
);
240 ok(hFind
!= INVALID_HANDLE_VALUE
, "FindFirstFile() failed\n");
242 RtlCopyMemory(ShortName
, FileInfo
.cAlternateFileName
, sizeof(ShortName
));
244 ok(MoveFile("verylongfilename", "verylongfilename2") != FALSE
, "MoveFile() failed\n");
245 hFind
= FindFirstFile("verylongfilename2", &FileInfo
);
246 ok(hFind
!= INVALID_HANDLE_VALUE
, "FindFirstFile() failed\n");
248 ok(strcmp(FileInfo
.cAlternateFileName
, ShortName
) == 0, "strcmp() failed\n");
250 hFile
= CreateFile("randomfilename",
251 GENERIC_READ
| GENERIC_WRITE
,
254 FILE_ATTRIBUTE_NORMAL
,
256 ok(hFile
!= INVALID_HANDLE_VALUE
, "CreateFile() failed\n");
259 ok(MoveFileEx("randomfilename", "verylongfilename2", MOVEFILE_REPLACE_EXISTING
) != FALSE
, "MoveFile() failed\n");
260 hFind
= FindFirstFile("verylongfilename2", &FileInfo
);
261 ok(hFind
!= INVALID_HANDLE_VALUE
, "FindFirstFile() failed\n");
263 ok(strcmp(FileInfo
.cAlternateFileName
, ShortName
) == 0, "strcmp() failed\n");
265 DeleteFile("randomfilename");
266 DeleteFile("verylongfilename");
267 DeleteFile("verylongfilename2");
269 SetCurrentDirectory(OldDir
);
270 RemoveDirectory(TestDir
);
273 START_TEST(TunnelCache
)
277 Test_VeryLongTests();