diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-08-20 02:03:18 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-08-20 02:14:39 +0900 |
| commit | 375acb476d36cac8e122ae8c45628bd8e7e0f0ca (patch) | |
| tree | 59899fe31c847724ac1a0d4055420a0a751c3ab0 /container/mount_test.go | |
| parent | c81c9a9d75f179988cf858b85fe2de71bf9c2ff4 (diff) | |
container/autoroot: check host path equivalence by value
This will never return true otherwise unless the equivalent paths happen to be interned by the caller.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'container/mount_test.go')
| -rw-r--r-- | container/mount_test.go | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/container/mount_test.go b/container/mount_test.go index eb904774..4c598b3f 100644 --- a/container/mount_test.go +++ b/container/mount_test.go @@ -2,6 +2,7 @@ package container import ( "os" + "slices" "testing" ) @@ -47,3 +48,67 @@ func TestEscapeOverlayDataSegment(t *testing.T) { }) } } + +type opsBuilderTestCase struct { + name string + ops *Ops + want Ops +} + +func checkOpsBuilder(t *testing.T, testCases []opsBuilderTestCase) { + t.Run("build", func(t *testing.T) { + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + if !slices.EqualFunc(*tc.ops, tc.want, func(op Op, v Op) bool { return op.Is(v) }) { + t.Errorf("Ops: %#v, want %#v", tc.ops, tc.want) + } + }) + } + }) +} + +type opIsTestCase struct { + name string + op, v Op + want bool +} + +func checkOpIs(t *testing.T, testCases []opIsTestCase) { + t.Run("is", func(t *testing.T) { + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + if got := tc.op.Is(tc.v); got != tc.want { + t.Errorf("Is: %v, want %v", got, tc.want) + } + }) + } + }) +} + +type opMetaTestCase struct { + name string + op Op + + wantPrefix string + wantString string +} + +func checkOpMeta(t *testing.T, testCases []opMetaTestCase) { + t.Run("meta", func(t *testing.T) { + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + t.Run("prefix", func(t *testing.T) { + if got := tc.op.prefix(); got != tc.wantPrefix { + t.Errorf("prefix: %q, want %q", got, tc.wantPrefix) + } + }) + + t.Run("string", func(t *testing.T) { + if got := tc.op.String(); got != tc.wantString { + t.Errorf("String: %s, want %s", got, tc.wantString) + } + }) + }) + } + }) +} |
