aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/initbind_test.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-08-25 23:24:54 +0900
committerOphestra <cat@gensokyo.uk>2025-08-26 00:44:45 +0900
commit2e0a4795f6a0016832d8fc51884abce4d01a8a58 (patch)
treed899110e4ff3ac1cc65a2f09ee8d99dac97fee8f /container/initbind_test.go
parentc328b584c0449e846f8d49976df65fce657c2a67 (diff)
container/initbind: optional ensure host directory
This is used for ensuring persistent data directories specific to the container. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'container/initbind_test.go')
-rw-r--r--container/initbind_test.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/container/initbind_test.go b/container/initbind_test.go
index 1de47dec..aedbad5e 100644
--- a/container/initbind_test.go
+++ b/container/initbind_test.go
@@ -47,6 +47,27 @@ func TestBindMountOp(t *testing.T) {
{"ensureFile", expectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0700)}, nil, errUnique},
}, errUnique},
+ {"mkdirAll ensure", new(Params), &BindMountOp{
+ Source: MustAbs("/bin/"),
+ Target: MustAbs("/bin/"),
+ Flags: BindEnsure,
+ }, []kexpect{
+ {"mkdirAll", expectArgs{"/bin/", os.FileMode(0700)}, nil, errUnique},
+ }, wrapErrSelf(errUnique), nil, nil},
+
+ {"success ensure", new(Params), &BindMountOp{
+ Source: MustAbs("/bin/"),
+ Target: MustAbs("/usr/bin/"),
+ Flags: BindEnsure,
+ }, []kexpect{
+ {"mkdirAll", expectArgs{"/bin/", os.FileMode(0700)}, nil, nil},
+ {"evalSymlinks", expectArgs{"/bin/"}, "/usr/bin", nil},
+ }, nil, []kexpect{
+ {"stat", expectArgs{"/host/usr/bin"}, isDirFi(true), nil},
+ {"mkdirAll", expectArgs{"/sysroot/usr/bin", os.FileMode(0700)}, nil, nil},
+ {"bindMount", expectArgs{"/host/usr/bin", "/sysroot/usr/bin", uintptr(0x4005), false}, nil, nil},
+ }, nil},
+
{"success device ro", new(Params), &BindMountOp{
Source: MustAbs("/dev/null"),
Target: MustAbs("/dev/null"),
@@ -134,6 +155,7 @@ func TestBindMountOp(t *testing.T) {
{"zero", new(BindMountOp), false},
{"nil source", &BindMountOp{Target: MustAbs("/")}, false},
{"nil target", &BindMountOp{Source: MustAbs("/")}, false},
+ {"flag optional ensure", &BindMountOp{Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindOptional | BindEnsure}, false},
{"valid", &BindMountOp{Source: MustAbs("/"), Target: MustAbs("/")}, true},
})