FreeRDP
TestFileDeleteFile.c
1 
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <winpr/crt.h>
5 #include <winpr/file.h>
6 #include <winpr/windows.h>
7 
8 int TestFileDeleteFile(int argc, char* argv[])
9 {
10  BOOL rc = FALSE;
11  int fd = 0;
12  char validA[] = "/tmp/valid-test-file-XXXXXX";
13  char validW[] = "/tmp/valid-test-file-XXXXXX";
14  WCHAR* validWW = NULL;
15  const char invalidA[] = "/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
16  WCHAR invalidW[sizeof(invalidA)] = { 0 };
17 
18  (void)ConvertUtf8NToWChar(invalidA, ARRAYSIZE(invalidA), invalidW, ARRAYSIZE(invalidW));
19 
20  WINPR_UNUSED(argc);
21  WINPR_UNUSED(argv);
22 
23  rc = DeleteFileA(invalidA);
24  if (rc)
25  return -1;
26 
27  rc = DeleteFileW(invalidW);
28  if (rc)
29  return -1;
30 
31  fd = mkstemp(validA);
32  if (fd < 0)
33  return -1;
34 
35  rc = DeleteFileA(validA);
36  if (!rc)
37  return -1;
38 
39  fd = mkstemp(validW);
40  if (fd < 0)
41  return -1;
42 
43  validWW = ConvertUtf8NToWCharAlloc(validW, ARRAYSIZE(validW), NULL);
44  if (validWW)
45  rc = DeleteFileW(validWW);
46  free(validWW);
47  if (!rc)
48  return -1;
49  return 0;
50 }