From 47a796d4deaf73ec2ef0e3cb33d177b92599e20d Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Wed, 20 Nov 2024 09:00:26 +0100 Subject: [PATCH] fs: clear Statx_t according to mask On GH runners, Btime is available in one of the two results. Change-Id: I1ba8ee528b0e2663b20c1881844a0a1fa41b19ba --- fs/simple_test.go | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/fs/simple_test.go b/fs/simple_test.go index 3b2c50b2..e0f89b91 100644 --- a/fs/simple_test.go +++ b/fs/simple_test.go @@ -779,7 +779,30 @@ func lstatxPath(p string) (*unix.Statx_t, error) { return &r, err } -func clearStatx(st *unix.Statx_t) { +func clearStatx(st *unix.Statx_t, mask uint32) { + st.Mask = mask + if mask&(unix.STATX_TYPE|unix.STATX_MODE) == 0 { + st.Mode = 0 + } + if mask&(unix.STATX_NLINK) == 0 { + st.Nlink = 0 + } + if mask&(unix.STATX_INO) == 0 { + st.Ino = 0 + } + if mask&(unix.STATX_ATIME) == 0 { + st.Atime = unix.StatxTimestamp{} + } + if mask&(unix.STATX_BTIME) == 0 { + st.Btime = unix.StatxTimestamp{} + } + if mask&(unix.STATX_CTIME) == 0 { + st.Ctime = unix.StatxTimestamp{} + } + if mask&(unix.STATX_MTIME) == 0 { + st.Mtime = unix.StatxTimestamp{} + } + st.Dev_minor = 0 st.Dev_major = 0 st.Mnt_id = 0 @@ -802,8 +825,9 @@ func TestStatx(t *testing.T) { if err != nil { t.Fatal(err) } - clearStatx(got) - clearStatx(want) + mask := got.Mask & want.Mask + clearStatx(got, mask) + clearStatx(want, mask) if diff := pretty.Compare(got, want); diff != "" { t.Errorf("got, want: %s", diff) } @@ -834,8 +858,9 @@ func TestStatx(t *testing.T) { t.Fatal(err) } - clearStatx(&msx) - clearStatx(&osx) + mask = msx.Mask & osx.Mask + clearStatx(&msx, mask) + clearStatx(&osx, mask) if diff := pretty.Compare(msx, osx); diff != "" { t.Errorf("got, want: %s", diff) }