123456789101112131415161718192021222324252627282930313233343536 |
- // Copyright 2020 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 fs_test
- import (
- "fmt"
- . "io/fs"
- "testing"
- )
- type statOnly struct{ StatFS }
- func (statOnly) Open(name string) (File, error) { return nil, ErrNotExist }
- func TestStat(t *testing.T) {
- check := func(desc string, info FileInfo, err error) {
- t.Helper()
- if err != nil || info == nil || info.Mode() != 0456 {
- infoStr := "<nil>"
- if info != nil {
- infoStr = fmt.Sprintf("FileInfo(Mode: %#o)", info.Mode())
- }
- t.Fatalf("Stat(%s) = %v, %v, want Mode:0456, nil", desc, infoStr, err)
- }
- }
- // Test that Stat uses the method when present.
- info, err := Stat(statOnly{testFsys}, "hello.txt")
- check("statOnly", info, err)
- // Test that Stat uses Open when the method is not present.
- info, err = Stat(openOnly{testFsys}, "hello.txt")
- check("openOnly", info, err)
- }
|