]> Cypherpunks repositories - gostls13.git/commitdiff
os: make IsExist report true on ERROR_DIR_NOT_EMPTY on Windows
authorKale Blankenship <kale@lemnisys.com>
Sat, 24 Sep 2016 23:39:36 +0000 (16:39 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Sun, 25 Sep 2016 02:38:11 +0000 (02:38 +0000)
Fixes #17164

Change-Id: I3e626d92293c1379e2922276f033fdee6f48dda3
Reviewed-on: https://go-review.googlesource.com/29753
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/os/error_windows.go
src/os/error_windows_test.go
src/syscall/ztypes_windows.go

index 5a57c0d1e681cf8f3db2b02b69ebd015b52bc478..02593b53fe4f605f3194769276d28d08b3b0331c 100644 (file)
@@ -9,6 +9,7 @@ import "syscall"
 func isExist(err error) bool {
        err = underlyingError(err)
        return err == syscall.ERROR_ALREADY_EXISTS ||
+               err == syscall.ERROR_DIR_NOT_EMPTY ||
                err == syscall.ERROR_FILE_EXISTS || err == ErrExist
 }
 
index 427dfdb962ca192369d985cb0198b48ab45cceab..1635c1088e65be388bf29952d52cf10aaeeb4c86 100644 (file)
@@ -26,6 +26,10 @@ func init() {
                isExistTest{err: &os.PathError{Err: syscall.ERROR_PATH_NOT_FOUND}, is: false, isnot: true},
                isExistTest{err: &os.LinkError{Err: syscall.ERROR_PATH_NOT_FOUND}, is: false, isnot: true},
                isExistTest{err: &os.SyscallError{Err: syscall.ERROR_PATH_NOT_FOUND}, is: false, isnot: true},
+
+               isExistTest{err: &os.PathError{Err: syscall.ERROR_DIR_NOT_EMPTY}, is: true, isnot: false},
+               isExistTest{err: &os.LinkError{Err: syscall.ERROR_DIR_NOT_EMPTY}, is: true, isnot: false},
+               isExistTest{err: &os.SyscallError{Err: syscall.ERROR_DIR_NOT_EMPTY}, is: true, isnot: false},
        )
        isPermissionTests = append(isPermissionTests,
                isPermissionTest{err: &os.PathError{Err: syscall.ERROR_ACCESS_DENIED}, want: true},
index 191c6e602a3338fb493f935e24c0aa5919da924a..8c2e19653aadbc317b09e1009cc3946c8ebd4243 100644 (file)
@@ -18,6 +18,7 @@ const (
        ERROR_INSUFFICIENT_BUFFER Errno = 122
        ERROR_MOD_NOT_FOUND       Errno = 126
        ERROR_PROC_NOT_FOUND      Errno = 127
+       ERROR_DIR_NOT_EMPTY       Errno = 145
        ERROR_ALREADY_EXISTS      Errno = 183
        ERROR_ENVVAR_NOT_FOUND    Errno = 203
        ERROR_MORE_DATA           Errno = 234