From f38ba7e923e9017040c67f290e4d8db29685e3ee Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 13 Mar 2025 00:00:58 +0900 Subject: [PATCH] test/sandbox: bypass fields A field is bypassed if it contains a single null byte. This will never appear in the text format so is safe to use. Signed-off-by: Ophestra --- test/sandbox/assert.go | 2 +- test/sandbox/mount.go | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/test/sandbox/assert.go b/test/sandbox/assert.go index 8e44626..fff2604 100644 --- a/test/sandbox/assert.go +++ b/test/sandbox/assert.go @@ -60,7 +60,7 @@ func MustAssertMounts(name, hostMountsFile, wantFile string) { if i == len(want) { fatalf("got more than %d entries", i) } - if *e != want[i] { + if !e.Is(&want[i]) { fatalf("entry %d\n got: %s\nwant: %s", i, e, &want[i]) } diff --git a/test/sandbox/mount.go b/test/sandbox/mount.go index 9c279f8..9a3b58c 100644 --- a/test/sandbox/mount.go +++ b/test/sandbox/mount.go @@ -37,6 +37,18 @@ func (e *Mntent) String() string { e.FSName, e.Dir, e.Type, e.Opts, e.Freq, e.Passno) } +func (e *Mntent) Is(want *Mntent) bool { + if want == nil { + return e == nil + } + return (e.FSName == want.FSName || want.FSName == "\x00") && + (e.Dir == want.Dir || want.Dir == "\x00") && + (e.Type == want.Type || want.Type == "\x00") && + (e.Opts == want.Opts || want.Opts == "\x00") && + (e.Freq == want.Freq || want.Freq == -1) && + (e.Passno == want.Passno || want.Passno == -1) +} + func IterMounts(name string, f func(e *Mntent)) error { m := new(mounts) m.p = name