aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/initproc_test.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-08-21 21:59:07 +0900
committerOphestra <cat@gensokyo.uk>2025-08-22 19:27:31 +0900
commit09d284498109b847da0da1e2c5f883268a7f2d46 (patch)
tree3784dee4b4e4ec97a95cb222c70d05463ae640ef /container/initproc_test.go
parentd500d6e55917e12a3f98b39cf0d29b6c96de9667 (diff)
container/init: wrap syscall helper functions
This allows tests to stub all kernel behaviour, enabling measurement of all function call arguments and error injection. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'container/initproc_test.go')
-rw-r--r--container/initproc_test.go22
1 files changed, 21 insertions, 1 deletions
diff --git a/container/initproc_test.go b/container/initproc_test.go
index eb55e4ec..2d72bd72 100644
--- a/container/initproc_test.go
+++ b/container/initproc_test.go
@@ -1,8 +1,28 @@
package container
-import "testing"
+import (
+ "os"
+ "testing"
+)
func TestMountProcOp(t *testing.T) {
+ checkOpBehaviour(t, []opBehaviourTestCase{
+ {"mkdir", &Params{ParentPerm: 0755},
+ &MountProcOp{
+ Target: MustAbs("/proc/"),
+ }, nil, nil, []kexpect{
+ {"mkdirAll", expectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, errUnique},
+ }, wrapErrSelf(errUnique)},
+
+ {"success", &Params{ParentPerm: 0700},
+ &MountProcOp{
+ Target: MustAbs("/proc/"),
+ }, nil, nil, []kexpect{
+ {"mkdirAll", expectArgs{"/sysroot/proc", os.FileMode(0700)}, nil, nil},
+ {"mount", expectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ }, nil},
+ })
+
checkOpsValid(t, []opValidTestCase{
{"nil", (*MountProcOp)(nil), false},
{"zero", new(MountProcOp), false},