From 31f0dd36df3ad5574ac4e9cab19b943f5c129ea2 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Wed, 20 Aug 2025 17:06:38 +0900 Subject: absolute: efficient equivalence check method This is more efficient and makes the call site cleaner. Signed-off-by: Ophestra --- container/absolute_test.go | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'container/absolute_test.go') diff --git a/container/absolute_test.go b/container/absolute_test.go index b3682516..e04ad5ca 100644 --- a/container/absolute_test.go +++ b/container/absolute_test.go @@ -69,7 +69,7 @@ func TestNewAbs(t *testing.T) { wantPanic := `path "etc" is not absolute` if r := recover(); r != wantPanic { - t.Errorf("MustAbsolute: panic = %v; want %v", r, wantPanic) + t.Errorf("MustAbs: panic = %v; want %v", r, wantPanic) } }() @@ -98,6 +98,29 @@ func TestAbsoluteString(t *testing.T) { }) } +func TestAbsoluteIs(t *testing.T) { + testCases := []struct { + name string + a, v *Absolute + want bool + }{ + {"nil", (*Absolute)(nil), (*Absolute)(nil), true}, + {"nil a", (*Absolute)(nil), MustAbs("/"), false}, + {"nil v", MustAbs("/"), (*Absolute)(nil), false}, + {"zero", new(Absolute), new(Absolute), false}, + {"zero a", new(Absolute), MustAbs("/"), false}, + {"zero v", MustAbs("/"), new(Absolute), false}, + {"equals", MustAbs("/"), MustAbs("/"), true}, + } + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + if got := tc.a.Is(tc.v); got != tc.want { + t.Errorf("Is: %v, want %v", got, tc.want) + } + }) + } +} + type sCheck struct { Pathname *Absolute `json:"val"` Magic int `json:"magic"` -- cgit v1.3.1