patch for -Werror -Wall by jonathan wilson
[reactos.git] / reactos / regtests / win32base / file-1.c
1 #include <windows.h>
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <string.h>
5
6 #include "regtests.h"
7
8 static int RunTest(char *Buffer)
9 {
10 char buffer[4096];
11 HANDLE file;
12 DWORD wrote;
13 int c;
14
15 file = CreateFile("test.dat",
16 GENERIC_READ | GENERIC_WRITE,
17 0,
18 NULL,
19 CREATE_ALWAYS,
20 0,
21 0);
22
23 if (file == INVALID_HANDLE_VALUE)
24 {
25 sprintf(Buffer, "Error opening file (Status %lx)", GetLastError());
26 return TS_FAILED;
27 }
28
29 for (c = 0; c < sizeof(buffer); c++)
30 buffer[c] = (char)c;
31
32 if (WriteFile( file, buffer, 4096, &wrote, NULL) == FALSE)
33 {
34 sprintf(Buffer, "Error writing file (Status %lx)", GetLastError());
35 return TS_FAILED;
36 }
37
38 SetFilePointer(file, 0, 0, FILE_BEGIN);
39
40 if (ReadFile( file, buffer, 4096, &wrote, NULL) == FALSE)
41 {
42 sprintf(Buffer, "Error reading file (Status %lx)", GetLastError());
43 return TS_FAILED;
44 }
45 for (c = 0; c < sizeof(buffer); c++)
46 {
47 if (buffer[c] != (char)c)
48 {
49 strcpy(Buffer, "Error: data read back is not what was written");
50 CloseHandle(file);
51 return TS_FAILED;
52 }
53 }
54
55 CloseHandle(file);
56 return TS_OK;
57 }
58
59 int
60 File_1Test(int Command, char *Buffer)
61 {
62 switch (Command)
63 {
64 case TESTCMD_RUN:
65 return RunTest(Buffer);
66 case TESTCMD_TESTNAME:
67 strcpy(Buffer, "File read/write");
68 return TS_OK;
69 default:
70 break;
71 }
72 return TS_FAILED;
73 }