53"en larvig liten text dx \033 gx hej 84 hej 4484 ! \001\033 bla bl\na.. bla bla."
54"1234 43 4kljf lf &%%%&&&&&& 34 4 34 3############# 33 3 3 3 # 3## 3"
55"1234 43 4kljf lf &%%%&&&&&& 34 4 34 3############# 33 3 3 3 # 3## 3"
56"1234 43 4kljf lf &%%%&&&&&& 34 4 34 3############# 33 3 3 3 # 3## 3"
57"1234 43 4kljf lf &%%%&&&&&& 34 4 34 3############# 33 3 3 3 # 3## 3"
58"1234 43 4kljf lf &%%%&&&&&& 34 4 34 3############# 33 3 3 3 # 3## 3"
59"1234 43 4kljf lf &%%%&&&&&& 34 4 34 3############# 33 3 3 3 # 3## 3"
60"1234 43 4kljf lf &%%%&&&&&& 34 4 34 3############# 33 3 3 3 # 3## 3"
61"1234 43 4kljf lf &%%%&&&&&& 34 4 34 3############# 33 3 3 3 # 3## 3"
62"sdlkfjasdlkfj a dslkj adsklf \n \nasdklf askldfa sdlkf \nsadklf asdklf asdf ";
132 ok(
_hread( filehandle,
buffer, bytes_wanted ) == bytes_wanted,
"erratic _hread return value\n" );
133 for (
i = 0;
i < bytes_wanted;
i++)
174 ok( 0 == bytes_read,
"file read size error\n" );
191 bytes_written = bytes_written +
sizeof(
buffer );
201 ok( 0 != memory_object,
"LocalAlloc fails. (Could be out of memory.)\n" );
211 ok( bytes_written ==
_hread( filehandle,
contents, bytes_written),
"read length differ from write length\n" );
220 while (
i < bytes_written - 1);
261 pRtlInitAnsiString( &
str,
name );
264 ok( !
status,
"RtlAnsiStringToUnicodeString failed with %08x\n",
status );
267 ok(
ret,
"RtlDosPathNameToNtPathName_U failed\n" );
269 pRtlFreeUnicodeString( &
strW );
280 char slashname[] =
"testfi/";
330 "_hwrite shouldn't be able to write never the less\n" );
339 attr.RootDirectory = 0;
343 attr.SecurityQualityOfService =
NULL;
413 filehandle=
_lcreat (slashname, 0);
417 "creating file \"%s\" failed with error %d\n", slashname,
err);
425 slashname[
strlen(slashname)-1]=0;
426 ok (!
strcmp (slashname, search_results.cFileName),
427 "found unexpected name \"%s\"\n", search_results.cFileName);
429 "attributes of file \"%s\" are 0x%04x\n", search_results.cFileName,
430 search_results.dwFileAttributes);
438 ok (0,
"couldn't create volume label \"%s\"\n",
filename);
453 "expected \"%s\", got \"%s\"\n",
name, search_results.cFileName);
454 search_results.dwFileAttributes &= ~FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
455 search_results.dwFileAttributes &= ~FILE_ATTRIBUTE_COMPRESSED;
457 "attributes of file \"%s\" are 0x%04x\n", search_results.cFileName,
458 search_results.dwFileAttributes);
481 for (
i = 0;
i < 400;
i++)
489 ok( 1 == bytes_read,
"file read size error\n" );
494 ok( 1 == bytes_read,
"file read size error\n" );
496 ok(
_llseek( filehandle, 1000000,
FILE_END ) != -1,
"should be able to seek past file; poor, poor Windows programmers\n" );
572 for (bytes_wanted = 0; bytes_wanted <
strlen(
sillytext ); bytes_wanted++)
575 ok(
_lread( filehandle,
buffer, bytes_wanted ) == bytes_wanted,
"erratic _hread return value\n" );
576 for (
i = 0;
i < bytes_wanted;
i++)
617 ok( 0 == bytes_read,
"file read size error\n" );
634 bytes_written = bytes_written +
sizeof(
buffer );
644 ok( 0 != memory_object,
"LocalAlloc fails, could be out of memory\n" );
654 ok( bytes_written ==
_hread( filehandle,
contents, bytes_written),
"read length differ from write length\n" );
663 while (
i < bytes_written - 1);
679 static const char prefix[] =
"pfx";
697 "copying a file to itself didn't fail (ret=%d, err=%d)\n", retok,
GetLastError());
703 ok( retok &&
ret ==
sizeof(prefix),
731 "copying from a read-locked file succeeded when it shouldn't have\n");
735 "copying from a file that doesn't exist failed in an unexpected way (ret=%d, err=%d)\n", retok,
GetLastError());
743 "copying from an r+w opened and r shared file failed (ret=%d, err=%d)\n", retok,
GetLastError());
751 "copying from a delete-locked file failed (ret=%d, err=%d)\n", retok,
GetLastError());
759 "copying to a write-locked file didn't fail (ret=%d, err=%d)\n", retok,
GetLastError());
767 "copying to a r+w opened and w shared file failed (ret=%d, err=%d)\n", retok,
GetLastError());
773 "failed to open destination file, error %d\n",
GetLastError());
778 "copying to a delete-locked shared file didn't fail (ret=%d, err=%d)\n", retok,
GetLastError());
787 "copying to a file opened the way Wine opens the source failed (ret=%d, err=%d)\n", retok,
GetLastError());
794 ok(
ret ==
sizeof(prefix),
"destination file has wrong size %d\n",
ret);
808 ok(
ret ==
sizeof(prefix),
"destination file has wrong size %d\n",
ret);
810 ok( retok &&
ret ==
sizeof(prefix),
812 ok(!
memcmp(prefix,
buf,
sizeof(prefix)),
"buffer contents mismatch\n");
820 "CopyFileA with mapped dest file: expected ERROR_SHARING_VIOLATION, got %d\n",
GetLastError());
833 ok(!
ret,
"CopyFileA: expected failure\n");
836 "CopyFileA with mapped dest file: expected ERROR_USER_MAPPED_FILE, got %d\n",
GetLastError());
851 static const WCHAR prefix[] = {
'p',
'f',
'x',0};
857 win_skip(
"GetTempPathW is not available\n");
884 static const WCHAR doesntexistW[] = {
'd',
'o',
'e',
's',
'n',
't',
'e',
'x',
'i',
's',
't',0};
885 static const WCHAR prefix[] = {
'p',
'f',
'x',0};
887 COPYFILE2_EXTENDED_PARAMETERS
params;
896 skip(
"CopyFile2 is not available\n");
925 ok(
hr ==
S_OK,
"CopyFile2: error 0x%08x\n",
hr);
966 ok(
ret,
"CopyFile2: error 0x%08x\n",
hr);
1056 ok(
ret ==
sizeof(prefix),
"destination file has wrong size %d\n",
ret);
1072 ok(
ret ==
sizeof(prefix),
"destination file has wrong size %d\n",
ret);
1075 ok(!
memcmp(prefix,
buf,
sizeof(prefix)),
"buffer contents mismatch\n");
1124 static const char prefix[] =
"pfx";
1143 ok(!retok,
"CopyFileExA unexpectedly succeeded\n");
1152 ok(!retok,
"CopyFileExA unexpectedly succeeded\n");
1159 ok(!
ret,
"DeleteFileA unexpectedly succeeded\n");
1178 }
while (++
x % 16 &&
x <
len);
1180 trace(
"%04x: %-48s- %s\n",
x,
hex, txt);
1189 static const char prefix[] =
"pfx";
1192 unsigned char buffer[512];
1194 static const char nt_drive[] =
"\\\\?\\A:";
1227 "CREATE_NEW should fail if file exists and last error value should be ERROR_FILE_EXISTS\n");
1264 "LastError should have been ERROR_INVALID_NAME or ERROR_FILE_NOT_FOUND but got %u\n",
GetLastError());
1268 ok(
ret <
sizeof(windowsdir),
"windowsdir is abnormally long!\n");
1316 skip(
"Do not have authority to access volumes. Test for %s skipped\n",
filename);
1325 "CreateFileA failed on %s, hFile %p, err=%u, should be %u\n",
1345 "CreateFileA did not work, last error %u on volume <%s>\n",
1354 "CreateFileA probably did not open temp directory %s correctly\n file information does not include FILE_ATTRIBUTE_DIRECTORY, actual=0x%08x\n",
1361 skip(
"Probable Win9x, got ERROR_PATH_NOT_FOUND w/ FILE_FLAG_BACKUP_SEMANTICS or %s\n",
temp_path);
1387 todo_wine ok(
ret,
"Failed to read volume, last error %u, %u, for %s\n",
1391 trace(
"buffer is\n");
1408 "CreateFileA should have returned ERROR_PATH_NOT_FOUND on %s, but got %u\n",
1423 "CreateFileA should have worked on %s, but got %u\n",
1444 skip(
"Probable Win9x, got ERROR_BAD_NETPATH (53)\n");
1446 skip(
"Do not have authority to access volumes. Tests skipped\n");
1451 if (pGetVolumeNameForVolumeMountPointA)
1459 ok(
strlen(Volume_1) == 49,
"GetVolumeNameForVolumeMountPointA returned wrong length name <%s>\n", Volume_1);
1472 "CreateFileA should not have opened %s, hFile %p\n",
1476 "CreateFileA should have returned ERROR_PATH_NOT_FOUND on %s, but got %u\n",
1493 "CreateFileA should have opened %s, but got %u\n",
1521 todo_wine ok(
ret,
"Failed to read volume, last error %u, %u, for %s\n",
1525 trace(
"buffer is\n");
1532 skip(
"Do not have authority to access volumes. Tests skipped\n");
1535 win_skip(
"GetVolumeNameForVolumeMountPointA not functioning\n");
1538 win_skip(
"GetVolumeNameForVolumeMountPointA not found\n");
1547 static const WCHAR prefix[] = {
'p',
'f',
'x',0};
1548 static const WCHAR bogus[] = {
'\\',
'\\',
'.',
'\\',
'B',
'O',
'G',
'U',
'S', 0 };
1554 win_skip(
"GetTempPathW is not available\n");
1567 "CREATE_NEW should fail if file exists and last error value should be ERROR_FILE_EXISTS\n");
1617 "CreateFileW on invalid VxD name returned ret=%p error=%d\n",
hFile,
GetLastError());
1620 ok(
ret ==
TRUE,
"couldn't create temporary directory\n");
1624 "expected CreateFile to succeed on existing directory, error: %d\n",
GetLastError());
1637 static const WCHAR prefix[] = {
'p',
'f',
'x',0};
1638 static const WCHAR bogus[] = {
'\\',
'\\',
'.',
'\\',
'B',
'O',
'G',
'U',
'S', 0 };
1643 win_skip(
"CreateFile2 is missing\n");
1655 exparams.
dwSize =
sizeof(exparams);
1663 "CREATE_NEW should fail if file exists and last error value should be ERROR_FILE_EXISTS\n");
1697 "CreateFile2 on invalid VxD name returned ret=%p error=%d\n",
hFile,
GetLastError());
1700 ok(
ret ==
TRUE,
"couldn't create temporary directory\n");
1705 "expected CreateFile2 to fail on existing directory, error: %d\n",
GetLastError());
1717 char windowsdrive[3];
1720 ok(
result <
sizeof(windowsdir),
"windowsdir is abnormally long!\n");
1724 if (
strlen(windowsdir) != 3)
1726 strcat(windowsdir,
"\\");
1729 windowsdrive[0] = windowsdir[0];
1730 windowsdrive[1] = windowsdir[1];
1731 windowsdrive[2] =
'\0';
1735 ok(((
out[0] == windowsdrive[0]) && (
out[1] ==
':')) && (
out[2] ==
'\\'),
1736 "GetTempFileNameA: first three characters should be %c:\\, string was actually %s\n",
1737 windowsdrive[0],
out);
1769 "DeleteFileA(\"nul\") returned ret=%d error=%d\n",
ret,
GetLastError());
1789 ok(!
ret,
"DeleteFile should fail\n");
1796 "Expected ERROR_ACCESS_DENIED, got error %d\n",
GetLastError());
1806 static const WCHAR dirW[] = {
'd',
'e',
'l',
'e',
't',
'e',
'f',
'i',
'l',
'e',0};
1807 static const WCHAR subdirW[] = {
'\\',
's',
'u',
'b',0};
1813 win_skip(
"DeleteFileW is not available\n");
1827 ok(0,
"MAX_PATH exceeded in constructing paths\n");
1834 ok(
ret ==
TRUE,
"couldn't create directory deletefile\n");
1836 ok(
ret ==
FALSE,
"DeleteFile should fail for empty directories\n");
1838 ok(
ret ==
TRUE,
"expected to remove directory deletefile\n");
1842 ok(
ret ==
TRUE,
"couldn't create directory deletefile\n");
1844 ok(
ret ==
TRUE,
"couldn't create directory deletefile\\sub\n");
1846 ok(
ret ==
FALSE,
"DeleteFile should fail for non-empty directories\n");
1848 ok(
ret ==
TRUE,
"expected to remove directory deletefile\\sub\n");
1850 ok(
ret ==
TRUE,
"expected to remove directory deletefile\n");
1853#define IsDotDir(x) ((x[0] == '.') && ((x[1] == 0) || ((x[1] == '.') && (x[2] == 0))))
1859 static const char prefix[] =
"pfx";
1889 ok( retok &&
ret ==
sizeof(prefix),
1896 ok(!
ret,
"MoveFileA: expected failure\n");
1899 "MoveFileA: expected ERROR_SHARING_VIOLATION, got %d\n",
GetLastError());
1914 ok(!
ret,
"MoveFileA: expected failure\n");
1917 "MoveFileA: expected ERROR_SHARING_VIOLATION, got %d\n",
GetLastError());
1930 ok(
ret ==
TRUE,
"CreateDirectoryA failed\n");
1937 ok(!
ret,
"MoveFileA: shouldn't move to wildcard file\n");
1940 "MoveFileA: with wildcards, unexpected error %d\n",
GetLastError());
1976 static const WCHAR prefix[] = {
'p',
'f',
'x',0};
1982 win_skip(
"GetTempPathW is not available\n");
2004#define PATTERN_OFFSET 0x10
2030 ok(done ==
sizeof(
buf),
"expected number of bytes written %u\n", done);
2032 memset(&ov, 0,
sizeof(ov));
2034 S(
U(ov)).OffsetHigh = 0;
2039 ok(done ==
sizeof(
pattern),
"expected number of bytes written %u\n", done);
2043 S(
U(ov)).Offset =
sizeof(
buf) * 2;
2044 S(
U(ov)).OffsetHigh = 0;
2047 ok(done ==
sizeof(
pattern),
"expected number of bytes written %u\n", done);
2060 memset(&ov, 0,
sizeof(ov));
2062 S(
U(ov)).OffsetHigh = 0;
2067 ok(done ==
sizeof(
pattern),
"expected number of bytes read %u\n", done);
2084 int limited_LockFile;
2085 int limited_UnLockFile;
2109 limited_UnLockFile = 0;
2112 limited_UnLockFile = 1;
2136 "LockFileEx 100,100 failed\n" );
2146 "LockFileEx exclusive 150,50 succeeded\n" );
2151 "UnlockFileEx 150,100 again succeeded\n" );
2157 "LockFileEx exclusive 300,100 failed\n" );
2159 "LockFileEx handle2 300,100 succeeded\n" );
2161 ok(
ret,
"LockFileEx 300,100 failed\n" );
2165 "LockFileEx handle2 300,100 failed\n" );
2174 ok( !
LockFile(
handle, 0, 0x20000000, 20, 0 ),
"LockFile 0x20000000,20 succeeded\n" );
2184 limited_LockFile = 0;
2187 limited_LockFile = 1;
2190 limited_UnLockFile ||
ok(
UnlockFile(
handle, ~0, ~0, 1, 0 ),
"Unlockfile ~0,1 failed\n" );
2194 if (!limited_LockFile)
ok( !
LockFile(
handle, 98, 0, 4, 0 ),
"LockFile 98,4 succeeded\n" );
2196 if (!limited_LockFile)
ok( !
LockFile(
handle, 100, 0, 10, 0 ),
"LockFile 100,10 failed\n" );
2215 DWORD lfanew =
sizeof(*dos);
2216 DWORD size = lfanew +
sizeof(*nt) +
sizeof(*sec);
2241#elif defined __x86_64__
2243#elif defined __powerpc__
2245#elif defined __arm__
2247#elif defined __aarch64__
2250# error You must specify the machine type
2273 memcpy( sec->
Name,
".rodata",
sizeof(
".rodata") );
2326#define M(x) {x, # x}
2335 static const struct mode sharing_modes[] =
2340 static const struct mode mapping_modes[] =
2356 for (
s1 = 0;
s1 <
sizeof(sharing_modes)/
sizeof(sharing_modes[0]);
s1++)
2368 for (
s2 = 0;
s2 <
sizeof(sharing_modes)/
sizeof(sharing_modes[0]);
s2++)
2378 "open failed for modes %s / %s / %s / %s\n",
2381 ok(
ret == 0,
"wrong error code %d\n",
ret );
2386 "open succeeded for modes %s / %s / %s / %s\n",
2390 "wrong error code %d\n",
ret );
2399 for (
a1 = 0;
a1 <
sizeof(mapping_modes)/
sizeof(mapping_modes[0]);
a1++)
2418 for (
s2 = 0;
s2 <
sizeof(sharing_modes)/
sizeof(sharing_modes[0]);
s2++)
2428 "open failed for modes map %s / %s / %s\n",
2431 "wrong error code %d\n",
ret );
2437 "open succeeded for modes map %s / %s / %s\n",
2439 ok(
ret == 0xdeadbeef ||
2441 "wrong error code %d\n",
ret );
2505 return windowsdir[0];
2515 {
"./test-dir",
TRUE },
2516 {
"./test-dir/",
FALSE },
2517 {
".\\test-dir",
TRUE },
2518 {
".\\test-dir\\",
FALSE },
2519 {
"/>test-dir",
FALSE },
2520 {
"<\"test->dir",
FALSE },
2521 {
"<test->dir",
FALSE },
2522 {
"><test->dir",
FALSE },
2523 {
">>test-dir",
FALSE },
2524 {
">test->dir",
FALSE },
2525 {
">test-dir",
FALSE },
2526 {
"\"test-dir\"",
FALSE },
2527 {
"\"test-file\"",
FALSE },
2528 {
"test-/>dir",
FALSE },
2529 {
"test-dir/",
FALSE },
2530 {
"test-dir//",
FALSE },
2531 {
"test-dir/:",
FALSE },
2532 {
"test-dir/<",
TRUE },
2533 {
"test-dir/>",
TRUE },
2534 {
"test-dir/\"",
TRUE },
2535 {
"test-dir/\\",
FALSE },
2536 {
"test-dir/|",
FALSE },
2537 {
"test-dir<",
TRUE },
2538 {
"test-dir</",
FALSE },
2539 {
"test-dir<<",
TRUE },
2540 {
"test-dir<<<><><>\"\"\"\"<<<>",
TRUE },
2541 {
"test-dir<>",
TRUE },
2542 {
"test-dir<\"",
TRUE },
2543 {
"test-dir>",
TRUE },
2544 {
"test-dir>/",
FALSE },
2545 {
"test-dir><",
TRUE },
2546 {
"test-dir>>",
TRUE },
2547 {
"test-dir>\"",
TRUE },
2548 {
"test-dir\"",
TRUE },
2549 {
"test-dir\"/",
FALSE },
2550 {
"test-dir\"<",
TRUE },
2551 {
"test-dir\">",
TRUE },
2552 {
"test-dir\"\"",
TRUE },
2553 {
"test-dir\"\"\"\"\"",
TRUE },
2554 {
"test-dir\\",
FALSE },
2555 {
"test-dir\\/",
FALSE },
2556 {
"test-dir\\<",
TRUE },
2557 {
"test-dir\\>",
TRUE },
2558 {
"test-dir\\\"",
TRUE },
2559 {
"test-dir\\\\",
FALSE },
2560 {
"test-file/",
FALSE },
2561 {
"test-file/<",
FALSE },
2562 {
"test-file/>",
FALSE },
2563 {
"test-file/\"",
FALSE },
2564 {
"test-file<",
TRUE },
2565 {
"test-file<<",
TRUE },
2566 {
"test-file<>",
TRUE },
2567 {
"test-file<\"",
TRUE },
2568 {
"test-file>",
TRUE },
2569 {
"test-file><",
TRUE },
2570 {
"test-file>>",
TRUE },
2571 {
"test-file>\"",
TRUE },
2572 {
"test-file\"",
TRUE },
2573 {
"test-file\"<",
TRUE },
2574 {
"test-file\">",
TRUE },
2575 {
"test-file\"\"",
TRUE },
2576 {
"test-file\\",
FALSE },
2577 {
"test-file\\<",
FALSE },
2578 {
"test-file\\>",
FALSE },
2579 {
"test-file\\\"",
FALSE },
2606 "FindFirstFile shouldn't return '%s' in drive root\n",
data.cFileName );
2609 "FindNextFile shouldn't return '%s' in drive root\n",
data.cFileName );
2617 ok( !
strcmp(
data.cFileName,
"." ),
"FindFirstFile should return '.' first\n" );
2619 ok( !
strcmp(
data.cFileName,
".." ),
"FindNextFile should return '..' as second entry\n" );
2622 "FindNextFile shouldn't return '%s'\n",
data.cFileName );
2654 strcat(buffer2,
"\\bar.txt");
2663 strcat(buffer2,
"\\*.*");
2672 strcat(buffer2,
"\\bar.txt");
2688 "wrong attributes %x\n",
data.dwFileAttributes );
2691 ok( 0 ==
data.nFileSizeHigh,
"wrong size %d\n",
data.nFileSizeHigh );
2692 ok( 0 ==
data.nFileSizeLow,
"wrong size %d\n",
data.nFileSizeLow );
2708 "wrong attributes %x\n",
data.dwFileAttributes );
2711 ok( 0 ==
data.nFileSizeHigh,
"wrong size %d\n",
data.nFileSizeHigh );
2712 ok( 0 ==
data.nFileSizeLow,
"wrong size %d\n",
data.nFileSizeLow );
2722 strcat(buffer2,
"nul\\*");
2740 strcat(buffer2,
"foo\\bar\\nul");
2749 strcat(buffer2,
"foo\\nul\\bar");
2785 char buffer[5] =
"C:\\*";
2805 if (!pFindFirstFileExA)
2807 win_skip(
"FindFirstFileExA() is missing\n");
2811 trace(
"Running FindFirstFileExA tests with level=%d, search_ops=%d, flags=%u\n",
2822 win_skip(
"FindFirstFileExA is not implemented\n");
2827 win_skip(
"FindFirstFileExA flag FIND_FIRST_EX_LARGE_FETCH not supported, skipping test\n");
2832 win_skip(
"FindFirstFileExA level FindExInfoBasic not supported, skipping test\n");
2836#define CHECK_NAME(fn) (strcmp((fn), "file1") == 0 || strcmp((fn), "file2") == 0 || strcmp((fn), "dir1") == 0)
2837#define CHECK_LEVEL(fn) (level != FindExInfoBasic || !(fn)[0])
2840 ok(
strcmp(search_results.cFileName,
".") == 0,
"First entry should be '.', is %s\n", search_results.cFileName);
2841 ok(
CHECK_LEVEL(search_results.cAlternateFileName),
"FindFirstFile unexpectedly returned an alternate filename\n");
2844 ok(
strcmp(search_results.cFileName,
"..") == 0,
"Second entry should be '..' is %s\n", search_results.cFileName);
2845 ok(
CHECK_LEVEL(search_results.cAlternateFileName),
"FindFirstFile unexpectedly returned an alternate filename\n");
2848 ok(
CHECK_NAME(search_results.cFileName),
"Invalid third entry - %s\n", search_results.cFileName);
2849 ok(
CHECK_LEVEL(search_results.cAlternateFileName),
"FindFirstFile unexpectedly returned an alternate filename\n");
2855 skip(
"File system supports directory filtering\n");
2857 ok(
strcmp(search_results.cFileName,
"dir1") == 0,
"Third entry should be 'dir1' is %s\n", search_results.cFileName);
2858 ok(
CHECK_LEVEL(search_results.cAlternateFileName),
"FindFirstFile unexpectedly returned an alternate filename\n");
2863 ok(
ret,
"Fetching fourth file failed\n");
2864 ok(
CHECK_NAME(search_results.cFileName),
"Invalid fourth entry - %s\n", search_results.cFileName);
2865 ok(
CHECK_LEVEL(search_results.cAlternateFileName),
"FindFirstFile unexpectedly returned an alternate filename\n");
2868 ok(
CHECK_NAME(search_results.cFileName),
"Invalid fifth entry - %s\n", search_results.cFileName);
2869 ok(
CHECK_LEVEL(search_results.cAlternateFileName),
"FindFirstFile unexpectedly returned an alternate filename\n");
2886 "Unexpected error %x, expected valid handle or ERROR_PATH_NOT_FOUND\n",
GetLastError());
2887 trace(
"FindFirstFileExA flag FIND_FIRST_EX_CASE_SENSITIVE is %signored\n",
2907 static const char* files[] = {
2908 "..a",
"..a.a",
".a",
".a..a",
".a.a",
".aaa",
2909 "a",
"a..a",
"a.a",
"a.a.a",
"aa",
"aaa",
"aaaa"
2911 static const struct {
2915 {0,
"*.*.*",
", '.', '..', '..a', '..a.a', '.a', '.a..a', '.a.a', '.aaa', 'a', 'a..a', 'a.a', 'a.a.a', 'aa', 'aaa', 'aaaa'"},
2916 {0,
"*.*.",
", '.', '..', '..a', '..a.a', '.a', '.a..a', '.a.a', '.aaa', 'a', 'a..a', 'a.a', 'a.a.a', 'aa', 'aaa', 'aaaa'"},
2917 {0,
".*.*",
", '.', '..', '..a', '..a.a', '.a', '.a..a', '.a.a', '.aaa'"},
2918 {0,
"*.*",
", '.', '..', '..a', '..a.a', '.a', '.a..a', '.a.a', '.aaa', 'a', 'a..a', 'a.a', 'a.a.a', 'aa', 'aaa', 'aaaa'"},
2919 {0,
".*",
", '.', '..', '..a', '..a.a', '.a', '.a..a', '.a.a', '.aaa'"},
2920 {1,
"*.",
", '.', '..', 'a', '.a', '..a', 'aa', 'aaa', 'aaaa', '.aaa'"},
2921 {0,
"*",
", '.', '..', '..a', '..a.a', '.a', '.a..a', '.a.a', '.aaa', 'a', 'a..a', 'a.a', 'a.a.a', 'aa', 'aaa', 'aaaa'"},
2922 {1,
"*..*",
", '.', '..', '..a', '..a.a', '.a..a', 'a..a'"},
2923 {1,
"*..",
", '.', '..', 'a', '.a', '..a', 'aa', 'aaa', 'aaaa', '.aaa'"},
2924 {1,
".*.",
", '.', '..', '.a', '.aaa'"},
2925 {0,
"..*",
", '.', '..', '..a', '..a.a'"},
2926 {0,
"**",
", '.', '..', '..a', '..a.a', '.a', '.a..a', '.a.a', '.aaa', 'a', 'a..a', 'a.a', 'a.a.a', 'aa', 'aaa', 'aaaa'"},
2927 {0,
"**.",
", '.', '..', '..a', '..a.a', '.a', '.a..a', '.a.a', '.aaa', 'a', 'a..a', 'a.a', 'a.a.a', 'aa', 'aaa', 'aaaa'"},
2928 {0,
"*. ",
", '.', '..', '..a', '..a.a', '.a', '.a..a', '.a.a', '.aaa', 'a', 'a..a', 'a.a', 'a.a.a', 'aa', 'aaa', 'aaaa'"},
2929 {1,
"* .",
", '.', '..', 'a', '.a', '..a', 'aa', 'aaa', 'aaaa', '.aaa'"},
2930 {0,
"* . ",
", '.', '..', '..a', '..a.a', '.a', '.a..a', '.a.a', '.aaa', 'a', 'a..a', 'a.a', 'a.a.a', 'aa', 'aaa', 'aaaa'"},
2931 {0,
"*.. ",
", '.', '..', '..a', '..a.a', '.a', '.a..a', '.a.a', '.aaa', 'a', 'a..a', 'a.a', 'a.a.a', 'aa', 'aaa', 'aaaa'"},
2932 {1,
"*. .",
", '.', '..', 'a', '.a', '..a', 'aa', 'aaa', 'aaaa', '.aaa'"},
2933 {1,
"* ..",
", '.', '..', 'a', '.a', '..a', 'aa', 'aaa', 'aaaa', '.aaa'"},
2934 {1,
" *..",
", '.aaa'"},