]> Cypherpunks repositories - gostls13.git/commitdiff
testing/fstest: MapFS: set perm 0555 on synthetized dirs
authorOlivier Mengué <olivier.mengue@gmail.com>
Sun, 8 Oct 2023 15:51:00 +0000 (17:51 +0200)
committerGopher Robot <gobot@golang.org>
Wed, 11 Oct 2023 20:20:55 +0000 (20:20 +0000)
As MapFS ignores filemodes and always grant read and traverse access on
directories, let's make synthetized directory entries to expose filemode
0555 instead of 0000.
Fixes #63468.

Change-Id: I5d64a6bf2f2ac6082ca5dde55b3062669fb50b8d
Reviewed-on: https://go-review.googlesource.com/c/go/+/534075
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

src/testing/fstest/mapfs.go
src/testing/fstest/mapfs_test.go

index a0b1f65668f532c7e8e8fb33a95097a153b88590..b3fc0c8ad76edf5fea955174f02f033af0b3177d 100644 (file)
@@ -98,14 +98,14 @@ func (fsys MapFS) Open(name string) (fs.File, error) {
                delete(need, fi.name)
        }
        for name := range need {
-               list = append(list, mapFileInfo{name, &MapFile{Mode: fs.ModeDir}})
+               list = append(list, mapFileInfo{name, &MapFile{Mode: fs.ModeDir | 0555}})
        }
        sort.Slice(list, func(i, j int) bool {
                return list[i].name < list[j].name
        })
 
        if file == nil {
-               file = &MapFile{Mode: fs.ModeDir}
+               file = &MapFile{Mode: fs.ModeDir | 0555}
        }
        return &mapDir{name, mapFileInfo{elem, file}, list, 0}, nil
 }
index c8d29283b28989c942ac9b00d51c1311717876fa..c64dc8db5a8ed97eab57a37fd9009fe6cc07bd35 100644 (file)
@@ -16,7 +16,7 @@ func TestMapFS(t *testing.T) {
                "hello":             {Data: []byte("hello, world\n")},
                "fortune/k/ken.txt": {Data: []byte("If a program is too slow, it must have a loop.\n")},
        }
-       if err := TestFS(m, "hello", "fortune/k/ken.txt"); err != nil {
+       if err := TestFS(m, "hello", "fortune", "fortune/k", "fortune/k/ken.txt"); err != nil {
                t.Fatal(err)
        }
 }
@@ -37,7 +37,7 @@ func TestMapFSChmodDot(t *testing.T) {
        })
        want := `
 .: drwxrwxrwx
-a: d---------
+a: dr-xr-xr-x
 a/b.txt: -rw-rw-rw-
 `[1:]
        got := buf.String()