github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/pkg/system/stat_unix_test.go (about) 1 //go:build linux || freebsd 2 3 package system // import "github.com/Prakhar-Agarwal-byte/moby/pkg/system" 4 5 import ( 6 "os" 7 "path/filepath" 8 "syscall" 9 "testing" 10 11 "gotest.tools/v3/assert" 12 ) 13 14 // TestFromStatT tests fromStatT for a tempfile 15 func TestFromStatT(t *testing.T) { 16 file := filepath.Join(t.TempDir(), "exist") 17 if err := os.WriteFile(file, []byte("hello"), 0o644); err != nil { 18 t.Fatal(err) 19 } 20 21 stat := &syscall.Stat_t{} 22 err := syscall.Lstat(file, stat) 23 assert.NilError(t, err) 24 25 s, err := fromStatT(stat) 26 assert.NilError(t, err) 27 28 if stat.Mode != s.Mode() { 29 t.Fatal("got invalid mode") 30 } 31 if stat.Uid != s.UID() { 32 t.Fatal("got invalid uid") 33 } 34 if stat.Gid != s.GID() { 35 t.Fatal("got invalid gid") 36 } 37 //nolint:unconvert // conversion needed to fix mismatch types on mips64el 38 if uint64(stat.Rdev) != s.Rdev() { 39 t.Fatal("got invalid rdev") 40 } 41 if stat.Mtim != s.Mtim() { 42 t.Fatal("got invalid mtim") 43 } 44 }