aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/os
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2020-07-10 10:51:40 -0700
committerIan Lance Taylor <iant@golang.org>2020-07-10 11:30:23 -0700
commit2b6d99468d4d988fd5f5ea3e9be41a3dc95a1291 (patch)
treecb989c3bca6130c4649a3cd44041adc4f4b1c2c2 /libgo/go/os
parent510125d2272175f47b26227fbe9b8c8c5abfd988 (diff)
downloadgcc-2b6d99468d4d988fd5f5ea3e9be41a3dc95a1291.zip
gcc-2b6d99468d4d988fd5f5ea3e9be41a3dc95a1291.tar.gz
gcc-2b6d99468d4d988fd5f5ea3e9be41a3dc95a1291.tar.bz2
libgo: update to Go 1.14.4 release
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/241999
Diffstat (limited to 'libgo/go/os')
-rw-r--r--libgo/go/os/os_test.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/libgo/go/os/os_test.go b/libgo/go/os/os_test.go
index a19b46d..8ec6de7 100644
--- a/libgo/go/os/os_test.go
+++ b/libgo/go/os/os_test.go
@@ -2450,3 +2450,38 @@ func TestDirSeek(t *testing.T) {
}
}
}
+
+// Test that opening a file does not change its permissions. Issue 38225.
+func TestOpenFileKeepsPermissions(t *testing.T) {
+ t.Parallel()
+ dir, err := ioutil.TempDir("", "TestOpenFileKeepsPermissions")
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer RemoveAll(dir)
+ name := filepath.Join(dir, "x")
+ f, err := Create(name)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if err := f.Close(); err != nil {
+ t.Error(err)
+ }
+ f, err = OpenFile(name, O_WRONLY|O_CREATE|O_TRUNC, 0)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if fi, err := f.Stat(); err != nil {
+ t.Error(err)
+ } else if fi.Mode()&0222 == 0 {
+ t.Errorf("f.Stat.Mode after OpenFile is %v, should be writable", fi.Mode())
+ }
+ if err := f.Close(); err != nil {
+ t.Error(err)
+ }
+ if fi, err := Stat(name); err != nil {
+ t.Error(err)
+ } else if fi.Mode()&0222 == 0 {
+ t.Errorf("Stat after OpenFile is %v, should be writable", fi.Mode())
+ }
+}