-
Notifications
You must be signed in to change notification settings - Fork 552
Open
Description
os.Stat("") will return an error, stat : no such file or directory, where as MemMapFs.Stat() does not return an error. Instead it returns a populated FileInfo:
FileInfo.Name() == ""
FileInfo.Size() == 42
FileInfo.Mode() == "drwxr-xr-x"
FileInfo.ModTime() == "2025-07-30 16:15:24.211543491 -0400 EDT m=+0.000353724"
FileInfo.IsDir() == true
This can be worked around by having special case handling for empty strings in the code calling into Stat(), but that kinda defeats the purpose of having an injectable FS for testing.
A test showing this difference in behaviour:
func TestMemMapFsStat(t *testing.T) {
fs := &MemMapFs{}
{
f, err := fs.Stat("")
if err != nil {
fmt.Printf("fs.Stat() err is %s\n", err.Error())
} else {
fmt.Println("fs.Stat() err is nil")
fmt.Println(f.Name())
fmt.Println(f.Size())
fmt.Println(f.Mode())
fmt.Println(f.ModTime())
fmt.Println(f.IsDir())
}
}
{
f, err := os.Stat("")
if err != nil {
fmt.Printf("os.Stat() err is %s\n", err.Error())
} else {
fmt.Println("os.Stat() err is nil")
fmt.Println(f.Name())
fmt.Println(f.Size())
fmt.Println(f.Mode())
fmt.Println(f.ModTime())
fmt.Println(f.IsDir())
}
}
}Metadata
Metadata
Assignees
Labels
No labels