diff options
Diffstat (limited to 'src/syscall/syscall_windows_test.go')
| -rw-r--r-- | src/syscall/syscall_windows_test.go | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/src/syscall/syscall_windows_test.go b/src/syscall/syscall_windows_test.go index c26c8eac10..9773cfbfa2 100644 --- a/src/syscall/syscall_windows_test.go +++ b/src/syscall/syscall_windows_test.go @@ -16,24 +16,29 @@ import ( ) func TestOpen_Dir(t *testing.T) { - dir := t.TempDir() + t.Parallel() - h, err := syscall.Open(dir, syscall.O_RDONLY, 0) - if err != nil { - t.Fatalf("Open failed: %v", err) - } - syscall.CloseHandle(h) - h, err = syscall.Open(dir, syscall.O_RDONLY|syscall.O_TRUNC, 0) - if err == nil { - t.Error("Open should have failed") - } else { - syscall.CloseHandle(h) + dir := t.TempDir() + tests := []struct { + mode int + err error + }{ + {syscall.O_RDONLY, nil}, + {syscall.O_CREAT, syscall.ERROR_ACCESS_DENIED}, // TODO(qmuntal): should be allowed. + {syscall.O_RDONLY | syscall.O_CREAT, syscall.ERROR_ACCESS_DENIED}, // TODO(qmuntal): should be allowed. + {syscall.O_RDONLY | syscall.O_TRUNC, syscall.ERROR_ACCESS_DENIED}, + {syscall.O_WRONLY | syscall.O_RDWR, syscall.EISDIR}, + {syscall.O_WRONLY, syscall.EISDIR}, + {syscall.O_RDWR, syscall.EISDIR}, } - h, err = syscall.Open(dir, syscall.O_RDONLY|syscall.O_CREAT, 0) - if err == nil { - t.Error("Open should have failed") - } else { - syscall.CloseHandle(h) + for i, tt := range tests { + h, err := syscall.Open(dir, tt.mode, 0) + if err == nil { + syscall.CloseHandle(h) + } + if err != tt.err { + t.Errorf("%d: Open got %v, want %v", i, err, tt.err) + } } } |
