diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2019-09-12 23:22:53 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2019-09-12 23:22:53 +0000 |
commit | 656297e1fec9a127ff742df16958ee279ccacec5 (patch) | |
tree | 24347a35dacea36ce742c32c17420f3e31f17e3d /libgo/go/os | |
parent | d6ecb707cc5a58816d27908a7aa324c4b0bc67bb (diff) | |
download | gcc-656297e1fec9a127ff742df16958ee279ccacec5.zip gcc-656297e1fec9a127ff742df16958ee279ccacec5.tar.gz gcc-656297e1fec9a127ff742df16958ee279ccacec5.tar.bz2 |
libgo: update to Go1.13
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194698
From-SVN: r275691
Diffstat (limited to 'libgo/go/os')
-rw-r--r-- | libgo/go/os/dir.go | 5 | ||||
-rw-r--r-- | libgo/go/os/error.go | 7 | ||||
-rw-r--r-- | libgo/go/os/error_errno.go | 11 | ||||
-rw-r--r-- | libgo/go/os/error_plan9.go | 9 | ||||
-rw-r--r-- | libgo/go/os/error_test.go | 10 | ||||
-rw-r--r-- | libgo/go/os/file.go | 4 | ||||
-rw-r--r-- | libgo/go/os/os_test.go | 2 | ||||
-rw-r--r-- | libgo/go/os/removeall_at.go | 2 | ||||
-rw-r--r-- | libgo/go/os/signal/signal_cgo_test.go | 11 |
9 files changed, 43 insertions, 18 deletions
diff --git a/libgo/go/os/dir.go b/libgo/go/os/dir.go index 6c54456..1d7ced8 100644 --- a/libgo/go/os/dir.go +++ b/libgo/go/os/dir.go @@ -26,7 +26,10 @@ func (f *File) Readdir(n int) ([]FileInfo, error) { return f.readdir(n) } -// Readdirnames reads and returns a slice of names from the directory f. +// Readdirnames reads the contents of the directory associated with file +// and returns a slice of up to n names of files in the directory, +// in directory order. Subsequent calls on the same file will yield +// further names. // // If n > 0, Readdirnames returns at most n names. In this case, if // Readdirnames returns an empty slice, it will return a non-nil error diff --git a/libgo/go/os/error.go b/libgo/go/os/error.go index 0c2e6a7..0e8e2d4 100644 --- a/libgo/go/os/error.go +++ b/libgo/go/os/error.go @@ -22,8 +22,6 @@ var ( ErrExist = errExist() // "file already exists" ErrNotExist = errNotExist() // "file does not exist" ErrClosed = errClosed() // "file already closed" - ErrTimeout = errTimeout() // "deadline exceeded" - ErrTemporary = errTemporary() // "temporary error" ErrNoDeadline = errNoDeadline() // "file type does not support deadline" ) @@ -32,8 +30,6 @@ func errPermission() error { return oserror.ErrPermission } func errExist() error { return oserror.ErrExist } func errNotExist() error { return oserror.ErrNotExist } func errClosed() error { return oserror.ErrClosed } -func errTimeout() error { return oserror.ErrTimeout } -func errTemporary() error { return oserror.ErrTemporary } func errNoDeadline() error { return poll.ErrNoDeadline } type timeout interface { @@ -119,7 +115,8 @@ func underlyingErrorIs(err, target error) bool { if err == target { return true } - e, ok := err.(interface{ Is(error) bool }) + // To preserve prior behavior, only examine syscall errors. + e, ok := err.(syscallErrorType) return ok && e.Is(target) } diff --git a/libgo/go/os/error_errno.go b/libgo/go/os/error_errno.go new file mode 100644 index 0000000..31ae05a --- /dev/null +++ b/libgo/go/os/error_errno.go @@ -0,0 +1,11 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !plan9 + +package os + +import "syscall" + +type syscallErrorType = syscall.Errno diff --git a/libgo/go/os/error_plan9.go b/libgo/go/os/error_plan9.go new file mode 100644 index 0000000..af6065d --- /dev/null +++ b/libgo/go/os/error_plan9.go @@ -0,0 +1,9 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package os + +import "syscall" + +type syscallErrorType = syscall.ErrorString diff --git a/libgo/go/os/error_test.go b/libgo/go/os/error_test.go index a03bd28..3d92157 100644 --- a/libgo/go/os/error_test.go +++ b/libgo/go/os/error_test.go @@ -175,3 +175,13 @@ func TestPathErrorUnwrap(t *testing.T) { t.Error("errors.Is failed, wanted success") } } + +type myErrorIs struct{ error } + +func (e myErrorIs) Is(target error) bool { return target == e.error } + +func TestErrorIsMethods(t *testing.T) { + if os.IsPermission(myErrorIs{os.ErrPermission}) { + t.Error("os.IsPermission(err) = true when err.Is(os.ErrPermission), wanted false") + } +} diff --git a/libgo/go/os/file.go b/libgo/go/os/file.go index 96df3fb..c13babe 100644 --- a/libgo/go/os/file.go +++ b/libgo/go/os/file.go @@ -34,6 +34,10 @@ // } // fmt.Printf("read %d bytes: %q\n", count, data[:count]) // +// Note: The maximum number of concurrent operations on a File may be limited by +// the OS or the system. The number should be high, but exceeding it may degrade +// performance or cause other issues. +// package os import ( diff --git a/libgo/go/os/os_test.go b/libgo/go/os/os_test.go index b6430d3..c27432f 100644 --- a/libgo/go/os/os_test.go +++ b/libgo/go/os/os_test.go @@ -2253,6 +2253,8 @@ func TestPipeThreads(t *testing.T) { t.Skip("skipping on Plan 9; does not support runtime poller") case "js": t.Skip("skipping on js; no support for os.Pipe") + case "darwin": + t.Skip("skipping on Darwin; issue 33953") } threads := 100 diff --git a/libgo/go/os/removeall_at.go b/libgo/go/os/removeall_at.go index f3ecf57..377aa49 100644 --- a/libgo/go/os/removeall_at.go +++ b/libgo/go/os/removeall_at.go @@ -173,7 +173,7 @@ func openFdAt(dirfd int, name string) (*File, error) { var r int for { var e error - r, e = unix.Openat(dirfd, name, O_RDONLY, 0) + r, e = unix.Openat(dirfd, name, O_RDONLY|syscall.O_CLOEXEC, 0) if e == nil { break } diff --git a/libgo/go/os/signal/signal_cgo_test.go b/libgo/go/os/signal/signal_cgo_test.go index 075e8c1..3c23090 100644 --- a/libgo/go/os/signal/signal_cgo_test.go +++ b/libgo/go/os/signal/signal_cgo_test.go @@ -101,17 +101,6 @@ func TestTerminalSignal(t *testing.T) { Ctty: int(slave.Fd()), } - // Test ctty management by sending enough child fd to overlap the - // parent's fd intended for child's ctty. - for 2+len(cmd.ExtraFiles) < cmd.SysProcAttr.Ctty { - dummy, err := os.Open(os.DevNull) - if err != nil { - t.Fatal(err) - } - defer dummy.Close() - cmd.ExtraFiles = append(cmd.ExtraFiles, dummy) - } - if err := cmd.Start(); err != nil { t.Fatal(err) } |