Windows: alter nmtest CreateFile modes
authorJeffrey Altman <jaltman@your-file-system.com>
Mon, 21 Dec 2009 17:29:10 +0000 (12:29 -0500)
committerJeffrey Altman <jaltman|account-1000011@unknown>
Wed, 13 Jan 2010 05:55:47 +0000 (21:55 -0800)
Change -r to open the file for FILE_SHARE_READ

Change -w to open the file for FILE_SHARE_WRITE

Change -w to open the file twice.  Once for sequential access
and once for random access.

LICENSE MIT

Change-Id: I295a7e7408e7e7eac06901108a726fe9e94bf18f
Reviewed-on: http://gerrit.openafs.org/1016
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Asanka Herath <asanka@secure-endpoints.com>
Tested-by: Asanka Herath <asanka@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

src/WINNT/tests/nmtest/nmtest.c

index d7604a4..f85e3d4 100644 (file)
@@ -370,7 +370,7 @@ int do_verify_test(void)
 
     printf("Verifying test data file [%s]\n", filename);
 
-    h_file = CreateFile(filename, GENERIC_READ, FILE_SHARE_WRITE, NULL,
+    h_file = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
                         OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
     if (h_file == INVALID_HANDLE_VALUE) {
         fprintf(stderr, "Can't open file [%s] GLE=%d\n", filename, GetLastError());
@@ -460,8 +460,8 @@ int do_write_test(void)
 
     printf("Using N = %I64d and M = %I64d\n", N, M);
 
-    h_file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_WRITE, NULL,
-                        CREATE_ALWAYS, FILE_FLAG_RANDOM_ACCESS, NULL);
+    h_file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
+                        CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
     if (h_file == INVALID_HANDLE_VALUE) {
         fprintf(stderr, "Can't create file [%s] GLE=%d\n", filename, GetLastError());
         goto done;
@@ -527,6 +527,15 @@ int do_write_test(void)
         goto done;
     }
 
+    CloseHandle(h_file);
+
+    h_file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
+                        OPEN_ALWAYS, FILE_FLAG_RANDOM_ACCESS, NULL);
+    if (h_file == INVALID_HANDLE_VALUE) {
+        fprintf(stderr, "Can't create file [%s] GLE=%d\n", filename, GetLastError());
+        goto done;
+    }
+
     printf("Phase 2: Overwriting test data ... \n");
 
     for (offset = 0; offset < M; offset += BLOCKSIZE) {