2018-01-03 15:53:45 -05:00
|
|
|
package fs
|
|
|
|
|
|
|
|
|
|
import (
|
2022-12-02 13:36:43 -05:00
|
|
|
"os"
|
2018-01-03 15:53:45 -05:00
|
|
|
"path/filepath"
|
|
|
|
|
"testing"
|
|
|
|
|
|
2024-03-28 19:24:03 -04:00
|
|
|
rtest "github.com/restic/restic/internal/test"
|
2018-01-03 15:53:45 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestExtendedStat(t *testing.T) {
|
2024-03-28 19:24:03 -04:00
|
|
|
tempdir := rtest.TempDir(t)
|
2018-01-03 15:53:45 -05:00
|
|
|
filename := filepath.Join(tempdir, "file")
|
2022-12-02 13:36:43 -05:00
|
|
|
err := os.WriteFile(filename, []byte("foobar"), 0640)
|
2018-01-03 15:53:45 -05:00
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fi, err := Lstat(filename)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
extFI := ExtendedStat(fi)
|
|
|
|
|
|
|
|
|
|
if !extFI.ModTime.Equal(fi.ModTime()) {
|
|
|
|
|
t.Errorf("extFI.ModTime does not match, want %v, got %v", fi.ModTime(), extFI.ModTime)
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-04-20 09:33:42 -04:00
|
|
|
|
|
|
|
|
func TestNilExtendPanic(t *testing.T) {
|
|
|
|
|
defer func() {
|
|
|
|
|
if r := recover(); r != nil {
|
|
|
|
|
rtest.Assert(t, r == "os.FileInfo is nil", "Panic message does not match, want %v, got %v", "os.FileInfo is nil", r)
|
|
|
|
|
} else {
|
|
|
|
|
rtest.Assert(t, false, "Expected panic, but no panic occurred")
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
_ = ExtendedStat(nil)
|
|
|
|
|
}
|