aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-03-13 00:00:58 +0900
committerOphestra <cat@gensokyo.uk>2025-03-13 00:00:58 +0900
commitf38ba7e923e9017040c67f290e4d8db29685e3ee (patch)
treecf57ff6b5b39c70e678d274e00379272378a2f81
parentd22145a3926de9710d5bd76ddfde093baca0b51d (diff)
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 <cat@gensokyo.uk>
-rw-r--r--test/sandbox/assert.go2
-rw-r--r--test/sandbox/mount.go12
2 files changed, 13 insertions, 1 deletions
diff --git a/test/sandbox/assert.go b/test/sandbox/assert.go
index 8e446268..fff26047 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 9c279f87..9a3b58c9 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