aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-09-02 04:44:08 +0900
committerOphestra <cat@gensokyo.uk>2025-09-02 04:44:08 +0900
commit1b5d20a39b2c5720d83a8eaf3d2227deb46a7c0d (patch)
tree230a5de997b6a7216f697a06f8f18bd552d96e77
parent49600a6f46d99ff35d883381670548de1f01846e (diff)
container/dispatcher: stub.Call initialisation helper function
This keeps composites analysis happy without making the test cases (too) bloated. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--container/autoetc_test.go346
-rw-r--r--container/autoroot_test.go134
-rw-r--r--container/container_test.go2
-rw-r--r--container/dispatcher_test.go6
-rw-r--r--container/init_test.go3272
-rw-r--r--container/initbind_test.go74
-rw-r--r--container/initdev_test.go1090
-rw-r--r--container/initmkdir_test.go2
-rw-r--r--container/initoverlay_test.go124
-rw-r--r--container/initplace_test.go32
-rw-r--r--container/initproc_test.go6
-rw-r--r--container/initremount_test.go2
-rw-r--r--container/initsymlink_test.go14
-rw-r--r--container/inittmpfs_test.go4
-rw-r--r--container/mount_test.go172
-rw-r--r--internal/app/seal.go2
16 files changed, 2644 insertions, 2638 deletions
diff --git a/container/autoetc_test.go b/container/autoetc_test.go
index f337f2f4..58ef99b1 100644
--- a/container/autoetc_test.go
+++ b/container/autoetc_test.go
@@ -20,21 +20,21 @@ func TestAutoEtcOp(t *testing.T) {
{"mkdirAll", new(Params), &AutoEtcOp{
Prefix: "81ceabb30d37bbdb3868004629cb84e9",
}, nil, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, stub.UniqueError(3)},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, stub.UniqueError(3)),
}, stub.UniqueError(3)},
{"readdir", new(Params), &AutoEtcOp{
Prefix: "81ceabb30d37bbdb3868004629cb84e9",
}, nil, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, nil},
- {"readdir", stub.ExpectArgs{"/sysroot/etc/.host/81ceabb30d37bbdb3868004629cb84e9"}, stubDir(), stub.UniqueError(2)},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, nil),
+ call("readdir", stub.ExpectArgs{"/sysroot/etc/.host/81ceabb30d37bbdb3868004629cb84e9"}, stubDir(), stub.UniqueError(2)),
}, stub.UniqueError(2)},
{"symlink", new(Params), &AutoEtcOp{
Prefix: "81ceabb30d37bbdb3868004629cb84e9",
}, nil, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, nil},
- {"readdir", stub.ExpectArgs{"/sysroot/etc/.host/81ceabb30d37bbdb3868004629cb84e9"}, stubDir(".host",
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, nil),
+ call("readdir", stub.ExpectArgs{"/sysroot/etc/.host/81ceabb30d37bbdb3868004629cb84e9"}, stubDir(".host",
"alsa", "bash_logout", "bashrc", "binfmt.d", "dbus-1", "default", "dhcpcd.exit-hook", "fonts",
"fstab", "fuse.conf", "group", "host.conf", "hostname", "hosts", "hsurc", "inputrc", "issue", "kbd",
"locale.conf", "login.defs", "lsb-release", "lvm", "machine-id", "man_db.conf", "mdadm.conf",
@@ -42,15 +42,15 @@ func TestAutoEtcOp(t *testing.T) {
"nsswitch.conf", "os-release", "pam", "pam.d", "passwd", "pipewire", "pki", "polkit-1", "profile",
"protocols", "resolv.conf", "resolvconf.conf", "rpc", "services", "set-environment", "shadow", "shells",
"ssh", "ssl", "static", "subgid", "subuid", "sudoers", "sway", "sysctl.d", "systemd", "terminfo",
- "tmpfiles.d", "udev", "vconsole.conf", "X11", "xdg", "zoneinfo"), nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/alsa", "/sysroot/etc/alsa"}, nil, stub.UniqueError(1)},
+ "tmpfiles.d", "udev", "vconsole.conf", "X11", "xdg", "zoneinfo"), nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/alsa", "/sysroot/etc/alsa"}, nil, stub.UniqueError(1)),
}, stub.UniqueError(1)},
{"symlink mtab", new(Params), &AutoEtcOp{
Prefix: "81ceabb30d37bbdb3868004629cb84e9",
}, nil, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, nil},
- {"readdir", stub.ExpectArgs{"/sysroot/etc/.host/81ceabb30d37bbdb3868004629cb84e9"}, stubDir(".host",
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, nil),
+ call("readdir", stub.ExpectArgs{"/sysroot/etc/.host/81ceabb30d37bbdb3868004629cb84e9"}, stubDir(".host",
"alsa", "bash_logout", "bashrc", "binfmt.d", "dbus-1", "default", "dhcpcd.exit-hook", "fonts",
"fstab", "fuse.conf", "group", "host.conf", "hostname", "hosts", "hsurc", "inputrc", "issue", "kbd",
"locale.conf", "login.defs", "lsb-release", "lvm", "machine-id", "man_db.conf", "mdadm.conf",
@@ -58,41 +58,41 @@ func TestAutoEtcOp(t *testing.T) {
"nsswitch.conf", "os-release", "pam", "pam.d", "passwd", "pipewire", "pki", "polkit-1", "profile",
"protocols", "resolv.conf", "resolvconf.conf", "rpc", "services", "set-environment", "shadow", "shells",
"ssh", "ssl", "static", "subgid", "subuid", "sudoers", "sway", "sysctl.d", "systemd", "terminfo",
- "tmpfiles.d", "udev", "vconsole.conf", "X11", "xdg", "zoneinfo"), nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/alsa", "/sysroot/etc/alsa"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bash_logout", "/sysroot/etc/bash_logout"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bashrc", "/sysroot/etc/bashrc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/binfmt.d", "/sysroot/etc/binfmt.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dbus-1", "/sysroot/etc/dbus-1"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/default", "/sysroot/etc/default"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dhcpcd.exit-hook", "/sysroot/etc/dhcpcd.exit-hook"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fonts", "/sysroot/etc/fonts"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fstab", "/sysroot/etc/fstab"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fuse.conf", "/sysroot/etc/fuse.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/host.conf", "/sysroot/etc/host.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hostname", "/sysroot/etc/hostname"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hosts", "/sysroot/etc/hosts"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hsurc", "/sysroot/etc/hsurc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/inputrc", "/sysroot/etc/inputrc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/issue", "/sysroot/etc/issue"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/kbd", "/sysroot/etc/kbd"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/locale.conf", "/sysroot/etc/locale.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/login.defs", "/sysroot/etc/login.defs"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lsb-release", "/sysroot/etc/lsb-release"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lvm", "/sysroot/etc/lvm"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/machine-id", "/sysroot/etc/machine-id"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/man_db.conf", "/sysroot/etc/man_db.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/mdadm.conf", "/sysroot/etc/mdadm.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modprobe.d", "/sysroot/etc/modprobe.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modules-load.d", "/sysroot/etc/modules-load.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/mounts", "/sysroot/etc/mtab"}, nil, stub.UniqueError(0)},
+ "tmpfiles.d", "udev", "vconsole.conf", "X11", "xdg", "zoneinfo"), nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/alsa", "/sysroot/etc/alsa"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bash_logout", "/sysroot/etc/bash_logout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bashrc", "/sysroot/etc/bashrc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/binfmt.d", "/sysroot/etc/binfmt.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dbus-1", "/sysroot/etc/dbus-1"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/default", "/sysroot/etc/default"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dhcpcd.exit-hook", "/sysroot/etc/dhcpcd.exit-hook"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fonts", "/sysroot/etc/fonts"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fstab", "/sysroot/etc/fstab"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fuse.conf", "/sysroot/etc/fuse.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/host.conf", "/sysroot/etc/host.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hostname", "/sysroot/etc/hostname"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hosts", "/sysroot/etc/hosts"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hsurc", "/sysroot/etc/hsurc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/inputrc", "/sysroot/etc/inputrc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/issue", "/sysroot/etc/issue"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/kbd", "/sysroot/etc/kbd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/locale.conf", "/sysroot/etc/locale.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/login.defs", "/sysroot/etc/login.defs"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lsb-release", "/sysroot/etc/lsb-release"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lvm", "/sysroot/etc/lvm"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/machine-id", "/sysroot/etc/machine-id"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/man_db.conf", "/sysroot/etc/man_db.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/mdadm.conf", "/sysroot/etc/mdadm.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modprobe.d", "/sysroot/etc/modprobe.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modules-load.d", "/sysroot/etc/modules-load.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/mounts", "/sysroot/etc/mtab"}, nil, stub.UniqueError(0)),
}, stub.UniqueError(0)},
{"success nested", new(Params), &AutoEtcOp{
Prefix: "81ceabb30d37bbdb3868004629cb84e9",
}, nil, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, nil},
- {"readdir", stub.ExpectArgs{"/sysroot/etc/.host/81ceabb30d37bbdb3868004629cb84e9"}, stubDir(".host",
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, nil),
+ call("readdir", stub.ExpectArgs{"/sysroot/etc/.host/81ceabb30d37bbdb3868004629cb84e9"}, stubDir(".host",
"alsa", "bash_logout", "bashrc", "binfmt.d", "dbus-1", "default", "dhcpcd.exit-hook", "fonts",
"fstab", "fuse.conf", "group", "host.conf", "hostname", "hosts", "hsurc", "inputrc", "issue", "kbd",
"locale.conf", "login.defs", "lsb-release", "lvm", "machine-id", "man_db.conf", "mdadm.conf",
@@ -100,79 +100,79 @@ func TestAutoEtcOp(t *testing.T) {
"nsswitch.conf", "os-release", "pam", "pam.d", "passwd", "pipewire", "pki", "polkit-1", "profile",
"protocols", "resolv.conf", "resolvconf.conf", "rpc", "services", "set-environment", "shadow", "shells",
"ssh", "ssl", "static", "subgid", "subuid", "sudoers", "sway", "sysctl.d", "systemd", "terminfo",
- "tmpfiles.d", "udev", "vconsole.conf", "X11", "xdg", "zoneinfo"), nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/alsa", "/sysroot/etc/alsa"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bash_logout", "/sysroot/etc/bash_logout"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bashrc", "/sysroot/etc/bashrc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/binfmt.d", "/sysroot/etc/binfmt.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dbus-1", "/sysroot/etc/dbus-1"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/default", "/sysroot/etc/default"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dhcpcd.exit-hook", "/sysroot/etc/dhcpcd.exit-hook"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fonts", "/sysroot/etc/fonts"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fstab", "/sysroot/etc/fstab"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fuse.conf", "/sysroot/etc/fuse.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/host.conf", "/sysroot/etc/host.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hostname", "/sysroot/etc/hostname"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hosts", "/sysroot/etc/hosts"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hsurc", "/sysroot/etc/hsurc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/inputrc", "/sysroot/etc/inputrc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/issue", "/sysroot/etc/issue"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/kbd", "/sysroot/etc/kbd"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/locale.conf", "/sysroot/etc/locale.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/login.defs", "/sysroot/etc/login.defs"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lsb-release", "/sysroot/etc/lsb-release"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lvm", "/sysroot/etc/lvm"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/machine-id", "/sysroot/etc/machine-id"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/man_db.conf", "/sysroot/etc/man_db.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/mdadm.conf", "/sysroot/etc/mdadm.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modprobe.d", "/sysroot/etc/modprobe.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modules-load.d", "/sysroot/etc/modules-load.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/mounts", "/sysroot/etc/mtab"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nanorc", "/sysroot/etc/nanorc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/netgroup", "/sysroot/etc/netgroup"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nix", "/sysroot/etc/nix"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nixos", "/sysroot/etc/nixos"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/NIXOS", "/sysroot/etc/NIXOS"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nscd.conf", "/sysroot/etc/nscd.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nsswitch.conf", "/sysroot/etc/nsswitch.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/os-release", "/sysroot/etc/os-release"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pam", "/sysroot/etc/pam"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pam.d", "/sysroot/etc/pam.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pipewire", "/sysroot/etc/pipewire"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pki", "/sysroot/etc/pki"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/polkit-1", "/sysroot/etc/polkit-1"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/profile", "/sysroot/etc/profile"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/protocols", "/sysroot/etc/protocols"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/resolv.conf", "/sysroot/etc/resolv.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/resolvconf.conf", "/sysroot/etc/resolvconf.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/rpc", "/sysroot/etc/rpc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/services", "/sysroot/etc/services"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/set-environment", "/sysroot/etc/set-environment"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/shadow", "/sysroot/etc/shadow"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/shells", "/sysroot/etc/shells"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/ssh", "/sysroot/etc/ssh"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/ssl", "/sysroot/etc/ssl"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/static", "/sysroot/etc/static"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/subgid", "/sysroot/etc/subgid"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/subuid", "/sysroot/etc/subuid"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sudoers", "/sysroot/etc/sudoers"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sway", "/sysroot/etc/sway"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sysctl.d", "/sysroot/etc/sysctl.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/systemd", "/sysroot/etc/systemd"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/terminfo", "/sysroot/etc/terminfo"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/tmpfiles.d", "/sysroot/etc/tmpfiles.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/udev", "/sysroot/etc/udev"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/vconsole.conf", "/sysroot/etc/vconsole.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/X11", "/sysroot/etc/X11"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/xdg", "/sysroot/etc/xdg"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/zoneinfo", "/sysroot/etc/zoneinfo"}, nil, nil},
+ "tmpfiles.d", "udev", "vconsole.conf", "X11", "xdg", "zoneinfo"), nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/alsa", "/sysroot/etc/alsa"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bash_logout", "/sysroot/etc/bash_logout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bashrc", "/sysroot/etc/bashrc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/binfmt.d", "/sysroot/etc/binfmt.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dbus-1", "/sysroot/etc/dbus-1"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/default", "/sysroot/etc/default"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dhcpcd.exit-hook", "/sysroot/etc/dhcpcd.exit-hook"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fonts", "/sysroot/etc/fonts"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fstab", "/sysroot/etc/fstab"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fuse.conf", "/sysroot/etc/fuse.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/host.conf", "/sysroot/etc/host.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hostname", "/sysroot/etc/hostname"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hosts", "/sysroot/etc/hosts"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hsurc", "/sysroot/etc/hsurc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/inputrc", "/sysroot/etc/inputrc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/issue", "/sysroot/etc/issue"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/kbd", "/sysroot/etc/kbd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/locale.conf", "/sysroot/etc/locale.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/login.defs", "/sysroot/etc/login.defs"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lsb-release", "/sysroot/etc/lsb-release"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lvm", "/sysroot/etc/lvm"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/machine-id", "/sysroot/etc/machine-id"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/man_db.conf", "/sysroot/etc/man_db.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/mdadm.conf", "/sysroot/etc/mdadm.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modprobe.d", "/sysroot/etc/modprobe.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modules-load.d", "/sysroot/etc/modules-load.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/mounts", "/sysroot/etc/mtab"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nanorc", "/sysroot/etc/nanorc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/netgroup", "/sysroot/etc/netgroup"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nix", "/sysroot/etc/nix"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nixos", "/sysroot/etc/nixos"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/NIXOS", "/sysroot/etc/NIXOS"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nscd.conf", "/sysroot/etc/nscd.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nsswitch.conf", "/sysroot/etc/nsswitch.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/os-release", "/sysroot/etc/os-release"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pam", "/sysroot/etc/pam"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pam.d", "/sysroot/etc/pam.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pipewire", "/sysroot/etc/pipewire"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pki", "/sysroot/etc/pki"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/polkit-1", "/sysroot/etc/polkit-1"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/profile", "/sysroot/etc/profile"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/protocols", "/sysroot/etc/protocols"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/resolv.conf", "/sysroot/etc/resolv.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/resolvconf.conf", "/sysroot/etc/resolvconf.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/rpc", "/sysroot/etc/rpc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/services", "/sysroot/etc/services"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/set-environment", "/sysroot/etc/set-environment"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/shadow", "/sysroot/etc/shadow"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/shells", "/sysroot/etc/shells"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/ssh", "/sysroot/etc/ssh"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/ssl", "/sysroot/etc/ssl"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/static", "/sysroot/etc/static"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/subgid", "/sysroot/etc/subgid"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/subuid", "/sysroot/etc/subuid"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sudoers", "/sysroot/etc/sudoers"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sway", "/sysroot/etc/sway"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sysctl.d", "/sysroot/etc/sysctl.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/systemd", "/sysroot/etc/systemd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/terminfo", "/sysroot/etc/terminfo"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/tmpfiles.d", "/sysroot/etc/tmpfiles.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/udev", "/sysroot/etc/udev"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/vconsole.conf", "/sysroot/etc/vconsole.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/X11", "/sysroot/etc/X11"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/xdg", "/sysroot/etc/xdg"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/zoneinfo", "/sysroot/etc/zoneinfo"}, nil, nil),
}, nil},
{"success", new(Params), &AutoEtcOp{
Prefix: "81ceabb30d37bbdb3868004629cb84e9",
}, nil, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, nil},
- {"readdir", stub.ExpectArgs{"/sysroot/etc/.host/81ceabb30d37bbdb3868004629cb84e9"}, stubDir(
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/etc/", os.FileMode(0755)}, nil, nil),
+ call("readdir", stub.ExpectArgs{"/sysroot/etc/.host/81ceabb30d37bbdb3868004629cb84e9"}, stubDir(
"alsa", "bash_logout", "bashrc", "binfmt.d", "dbus-1", "default", "dhcpcd.exit-hook", "fonts",
"fstab", "fuse.conf", "group", "host.conf", "hostname", "hosts", "hsurc", "inputrc", "issue", "kbd",
"locale.conf", "login.defs", "lsb-release", "lvm", "machine-id", "man_db.conf", "mdadm.conf",
@@ -180,72 +180,72 @@ func TestAutoEtcOp(t *testing.T) {
"nsswitch.conf", "os-release", "pam", "pam.d", "passwd", "pipewire", "pki", "polkit-1", "profile",
"protocols", "resolv.conf", "resolvconf.conf", "rpc", "services", "set-environment", "shadow", "shells",
"ssh", "ssl", "static", "subgid", "subuid", "sudoers", "sway", "sysctl.d", "systemd", "terminfo",
- "tmpfiles.d", "udev", "vconsole.conf", "X11", "xdg", "zoneinfo"), nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/alsa", "/sysroot/etc/alsa"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bash_logout", "/sysroot/etc/bash_logout"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bashrc", "/sysroot/etc/bashrc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/binfmt.d", "/sysroot/etc/binfmt.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dbus-1", "/sysroot/etc/dbus-1"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/default", "/sysroot/etc/default"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dhcpcd.exit-hook", "/sysroot/etc/dhcpcd.exit-hook"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fonts", "/sysroot/etc/fonts"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fstab", "/sysroot/etc/fstab"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fuse.conf", "/sysroot/etc/fuse.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/host.conf", "/sysroot/etc/host.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hostname", "/sysroot/etc/hostname"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hosts", "/sysroot/etc/hosts"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hsurc", "/sysroot/etc/hsurc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/inputrc", "/sysroot/etc/inputrc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/issue", "/sysroot/etc/issue"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/kbd", "/sysroot/etc/kbd"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/locale.conf", "/sysroot/etc/locale.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/login.defs", "/sysroot/etc/login.defs"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lsb-release", "/sysroot/etc/lsb-release"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lvm", "/sysroot/etc/lvm"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/machine-id", "/sysroot/etc/machine-id"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/man_db.conf", "/sysroot/etc/man_db.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/mdadm.conf", "/sysroot/etc/mdadm.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modprobe.d", "/sysroot/etc/modprobe.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modules-load.d", "/sysroot/etc/modules-load.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/mounts", "/sysroot/etc/mtab"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nanorc", "/sysroot/etc/nanorc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/netgroup", "/sysroot/etc/netgroup"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nix", "/sysroot/etc/nix"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nixos", "/sysroot/etc/nixos"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/NIXOS", "/sysroot/etc/NIXOS"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nscd.conf", "/sysroot/etc/nscd.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nsswitch.conf", "/sysroot/etc/nsswitch.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/os-release", "/sysroot/etc/os-release"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pam", "/sysroot/etc/pam"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pam.d", "/sysroot/etc/pam.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pipewire", "/sysroot/etc/pipewire"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pki", "/sysroot/etc/pki"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/polkit-1", "/sysroot/etc/polkit-1"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/profile", "/sysroot/etc/profile"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/protocols", "/sysroot/etc/protocols"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/resolv.conf", "/sysroot/etc/resolv.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/resolvconf.conf", "/sysroot/etc/resolvconf.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/rpc", "/sysroot/etc/rpc"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/services", "/sysroot/etc/services"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/set-environment", "/sysroot/etc/set-environment"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/shadow", "/sysroot/etc/shadow"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/shells", "/sysroot/etc/shells"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/ssh", "/sysroot/etc/ssh"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/ssl", "/sysroot/etc/ssl"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/static", "/sysroot/etc/static"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/subgid", "/sysroot/etc/subgid"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/subuid", "/sysroot/etc/subuid"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sudoers", "/sysroot/etc/sudoers"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sway", "/sysroot/etc/sway"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sysctl.d", "/sysroot/etc/sysctl.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/systemd", "/sysroot/etc/systemd"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/terminfo", "/sysroot/etc/terminfo"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/tmpfiles.d", "/sysroot/etc/tmpfiles.d"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/udev", "/sysroot/etc/udev"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/vconsole.conf", "/sysroot/etc/vconsole.conf"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/X11", "/sysroot/etc/X11"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/xdg", "/sysroot/etc/xdg"}, nil, nil},
- {"symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/zoneinfo", "/sysroot/etc/zoneinfo"}, nil, nil},
+ "tmpfiles.d", "udev", "vconsole.conf", "X11", "xdg", "zoneinfo"), nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/alsa", "/sysroot/etc/alsa"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bash_logout", "/sysroot/etc/bash_logout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/bashrc", "/sysroot/etc/bashrc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/binfmt.d", "/sysroot/etc/binfmt.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dbus-1", "/sysroot/etc/dbus-1"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/default", "/sysroot/etc/default"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/dhcpcd.exit-hook", "/sysroot/etc/dhcpcd.exit-hook"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fonts", "/sysroot/etc/fonts"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fstab", "/sysroot/etc/fstab"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/fuse.conf", "/sysroot/etc/fuse.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/host.conf", "/sysroot/etc/host.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hostname", "/sysroot/etc/hostname"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hosts", "/sysroot/etc/hosts"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/hsurc", "/sysroot/etc/hsurc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/inputrc", "/sysroot/etc/inputrc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/issue", "/sysroot/etc/issue"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/kbd", "/sysroot/etc/kbd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/locale.conf", "/sysroot/etc/locale.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/login.defs", "/sysroot/etc/login.defs"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lsb-release", "/sysroot/etc/lsb-release"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/lvm", "/sysroot/etc/lvm"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/machine-id", "/sysroot/etc/machine-id"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/man_db.conf", "/sysroot/etc/man_db.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/mdadm.conf", "/sysroot/etc/mdadm.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modprobe.d", "/sysroot/etc/modprobe.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/modules-load.d", "/sysroot/etc/modules-load.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/mounts", "/sysroot/etc/mtab"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nanorc", "/sysroot/etc/nanorc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/netgroup", "/sysroot/etc/netgroup"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nix", "/sysroot/etc/nix"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nixos", "/sysroot/etc/nixos"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/NIXOS", "/sysroot/etc/NIXOS"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nscd.conf", "/sysroot/etc/nscd.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/nsswitch.conf", "/sysroot/etc/nsswitch.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/os-release", "/sysroot/etc/os-release"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pam", "/sysroot/etc/pam"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pam.d", "/sysroot/etc/pam.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pipewire", "/sysroot/etc/pipewire"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/pki", "/sysroot/etc/pki"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/polkit-1", "/sysroot/etc/polkit-1"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/profile", "/sysroot/etc/profile"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/protocols", "/sysroot/etc/protocols"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/resolv.conf", "/sysroot/etc/resolv.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/resolvconf.conf", "/sysroot/etc/resolvconf.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/rpc", "/sysroot/etc/rpc"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/services", "/sysroot/etc/services"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/set-environment", "/sysroot/etc/set-environment"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/shadow", "/sysroot/etc/shadow"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/shells", "/sysroot/etc/shells"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/ssh", "/sysroot/etc/ssh"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/ssl", "/sysroot/etc/ssl"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/static", "/sysroot/etc/static"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/subgid", "/sysroot/etc/subgid"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/subuid", "/sysroot/etc/subuid"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sudoers", "/sysroot/etc/sudoers"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sway", "/sysroot/etc/sway"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/sysctl.d", "/sysroot/etc/sysctl.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/systemd", "/sysroot/etc/systemd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/terminfo", "/sysroot/etc/terminfo"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/tmpfiles.d", "/sysroot/etc/tmpfiles.d"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/udev", "/sysroot/etc/udev"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/vconsole.conf", "/sysroot/etc/vconsole.conf"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/X11", "/sysroot/etc/X11"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/xdg", "/sysroot/etc/xdg"}, nil, nil),
+ call("symlink", stub.ExpectArgs{".host/81ceabb30d37bbdb3868004629cb84e9/zoneinfo", "/sysroot/etc/zoneinfo"}, nil, nil),
}, nil},
})
diff --git a/container/autoroot_test.go b/container/autoroot_test.go
index 29613f67..6fb82f87 100644
--- a/container/autoroot_test.go
+++ b/container/autoroot_test.go
@@ -21,99 +21,99 @@ func TestAutoRootOp(t *testing.T) {
Host: MustAbs("/"),
Flags: BindWritable,
}, []stub.Call{
- {"readdir", stub.ExpectArgs{"/"}, stubDir(), stub.UniqueError(2)},
+ call("readdir", stub.ExpectArgs{"/"}, stubDir(), stub.UniqueError(2)),
}, stub.UniqueError(2), nil, nil},
{"early", &Params{ParentPerm: 0750}, &AutoRootOp{
Host: MustAbs("/"),
Flags: BindWritable,
}, []stub.Call{
- {"readdir", stub.ExpectArgs{"/"}, stubDir("bin", "dev", "etc", "home", "lib64",
- "lost+found", "mnt", "nix", "proc", "root", "run", "srv", "sys", "tmp", "usr", "var"), nil},
- {"evalSymlinks", stub.ExpectArgs{"/bin"}, "", stub.UniqueError(1)},
+ call("readdir", stub.ExpectArgs{"/"}, stubDir("bin", "dev", "etc", "home", "lib64",
+ "lost+found", "mnt", "nix", "proc", "root", "run", "srv", "sys", "tmp", "usr", "var"), nil),
+ call("evalSymlinks", stub.ExpectArgs{"/bin"}, "", stub.UniqueError(1)),
}, stub.UniqueError(1), nil, nil},
{"apply", &Params{ParentPerm: 0750}, &AutoRootOp{
Host: MustAbs("/"),
Flags: BindWritable,
}, []stub.Call{
- {"readdir", stub.ExpectArgs{"/"}, stubDir("bin", "dev", "etc", "home", "lib64",
- "lost+found", "mnt", "nix", "proc", "root", "run", "srv", "sys", "tmp", "usr", "var"), nil},
- {"evalSymlinks", stub.ExpectArgs{"/bin"}, "/usr/bin", nil},
- {"evalSymlinks", stub.ExpectArgs{"/home"}, "/home", nil},
- {"evalSymlinks", stub.ExpectArgs{"/lib64"}, "/lib64", nil},
- {"evalSymlinks", stub.ExpectArgs{"/lost+found"}, "/lost+found", nil},
- {"evalSymlinks", stub.ExpectArgs{"/nix"}, "/nix", nil},
- {"evalSymlinks", stub.ExpectArgs{"/root"}, "/root", nil},
- {"evalSymlinks", stub.ExpectArgs{"/run"}, "/run", nil},
- {"evalSymlinks", stub.ExpectArgs{"/srv"}, "/srv", nil},
- {"evalSymlinks", stub.ExpectArgs{"/sys"}, "/sys", nil},
- {"evalSymlinks", stub.ExpectArgs{"/usr"}, "/usr", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var"}, "/var", nil},
+ call("readdir", stub.ExpectArgs{"/"}, stubDir("bin", "dev", "etc", "home", "lib64",
+ "lost+found", "mnt", "nix", "proc", "root", "run", "srv", "sys", "tmp", "usr", "var"), nil),
+ call("evalSymlinks", stub.ExpectArgs{"/bin"}, "/usr/bin", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/home"}, "/home", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/lib64"}, "/lib64", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/lost+found"}, "/lost+found", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/nix"}, "/nix", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/root"}, "/root", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/run"}, "/run", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/srv"}, "/srv", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/sys"}, "/sys", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/usr"}, "/usr", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var"}, "/var", nil),
}, nil, []stub.Call{
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/usr/bin"), MustAbs("/bin"), MustAbs("/bin"), BindWritable}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(false), stub.UniqueError(0)},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/usr/bin"), MustAbs("/bin"), MustAbs("/bin"), BindWritable}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(false), stub.UniqueError(0)),
}, stub.UniqueError(0)},
{"success pd", &Params{ParentPerm: 0750}, &AutoRootOp{
Host: MustAbs("/"),
Flags: BindWritable,
}, []stub.Call{
- {"readdir", stub.ExpectArgs{"/"}, stubDir("bin", "dev", "etc", "home", "lib64",
- "lost+found", "mnt", "nix", "proc", "root", "run", "srv", "sys", "tmp", "usr", "var"), nil},
- {"evalSymlinks", stub.ExpectArgs{"/bin"}, "/usr/bin", nil},
- {"evalSymlinks", stub.ExpectArgs{"/home"}, "/home", nil},
- {"evalSymlinks", stub.ExpectArgs{"/lib64"}, "/lib64", nil},
- {"evalSymlinks", stub.ExpectArgs{"/lost+found"}, "/lost+found", nil},
- {"evalSymlinks", stub.ExpectArgs{"/nix"}, "/nix", nil},
- {"evalSymlinks", stub.ExpectArgs{"/root"}, "/root", nil},
- {"evalSymlinks", stub.ExpectArgs{"/run"}, "/run", nil},
- {"evalSymlinks", stub.ExpectArgs{"/srv"}, "/srv", nil},
- {"evalSymlinks", stub.ExpectArgs{"/sys"}, "/sys", nil},
- {"evalSymlinks", stub.ExpectArgs{"/usr"}, "/usr", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var"}, "/var", nil},
+ call("readdir", stub.ExpectArgs{"/"}, stubDir("bin", "dev", "etc", "home", "lib64",
+ "lost+found", "mnt", "nix", "proc", "root", "run", "srv", "sys", "tmp", "usr", "var"), nil),
+ call("evalSymlinks", stub.ExpectArgs{"/bin"}, "/usr/bin", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/home"}, "/home", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/lib64"}, "/lib64", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/lost+found"}, "/lost+found", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/nix"}, "/nix", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/root"}, "/root", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/run"}, "/run", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/srv"}, "/srv", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/sys"}, "/sys", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/usr"}, "/usr", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var"}, "/var", nil),
}, nil, []stub.Call{
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/usr/bin"), MustAbs("/bin"), MustAbs("/bin"), BindWritable}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/usr/bin", "/sysroot/bin", uintptr(0x4004), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/home"), MustAbs("/home"), MustAbs("/home"), BindWritable}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/home"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/home", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/home", "/sysroot/home", uintptr(0x4004), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/lib64"), MustAbs("/lib64"), MustAbs("/lib64"), BindWritable}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/lib64"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/lib64", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/lib64", "/sysroot/lib64", uintptr(0x4004), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/lost+found"), MustAbs("/lost+found"), MustAbs("/lost+found"), BindWritable}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/lost+found"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/lost+found", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/lost+found", "/sysroot/lost+found", uintptr(0x4004), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/nix"), MustAbs("/nix"), MustAbs("/nix"), BindWritable}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/nix"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/nix", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/nix", "/sysroot/nix", uintptr(0x4004), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/root"), MustAbs("/root"), MustAbs("/root"), BindWritable}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/root"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/root", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/root", "/sysroot/root", uintptr(0x4004), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/run"), MustAbs("/run"), MustAbs("/run"), BindWritable}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/run"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/run", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/run", "/sysroot/run", uintptr(0x4004), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/srv"), MustAbs("/srv"), MustAbs("/srv"), BindWritable}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/srv"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/srv", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/srv", "/sysroot/srv", uintptr(0x4004), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/sys"), MustAbs("/sys"), MustAbs("/sys"), BindWritable}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/sys"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/sys", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/sys", "/sysroot/sys", uintptr(0x4004), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/usr"), MustAbs("/usr"), MustAbs("/usr"), BindWritable}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/usr"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/usr", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/usr", "/sysroot/usr", uintptr(0x4004), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var"), MustAbs("/var"), MustAbs("/var"), BindWritable}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/var", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var", "/sysroot/var", uintptr(0x4004), false}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/usr/bin"), MustAbs("/bin"), MustAbs("/bin"), BindWritable}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/usr/bin", "/sysroot/bin", uintptr(0x4004), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/home"), MustAbs("/home"), MustAbs("/home"), BindWritable}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/home"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/home", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/home", "/sysroot/home", uintptr(0x4004), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/lib64"), MustAbs("/lib64"), MustAbs("/lib64"), BindWritable}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/lib64"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/lib64", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/lib64", "/sysroot/lib64", uintptr(0x4004), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/lost+found"), MustAbs("/lost+found"), MustAbs("/lost+found"), BindWritable}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/lost+found"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/lost+found", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/lost+found", "/sysroot/lost+found", uintptr(0x4004), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/nix"), MustAbs("/nix"), MustAbs("/nix"), BindWritable}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/nix"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/nix", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/nix", "/sysroot/nix", uintptr(0x4004), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/root"), MustAbs("/root"), MustAbs("/root"), BindWritable}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/root"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/root", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/root", "/sysroot/root", uintptr(0x4004), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/run"), MustAbs("/run"), MustAbs("/run"), BindWritable}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/run"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/run", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/run", "/sysroot/run", uintptr(0x4004), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/srv"), MustAbs("/srv"), MustAbs("/srv"), BindWritable}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/srv"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/srv", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/srv", "/sysroot/srv", uintptr(0x4004), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/sys"), MustAbs("/sys"), MustAbs("/sys"), BindWritable}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/sys"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/sys", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/sys", "/sysroot/sys", uintptr(0x4004), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/usr"), MustAbs("/usr"), MustAbs("/usr"), BindWritable}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/usr"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/usr", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/usr", "/sysroot/usr", uintptr(0x4004), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var"), MustAbs("/var"), MustAbs("/var"), BindWritable}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/var", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var", "/sysroot/var", uintptr(0x4004), false}, nil, nil),
}, nil},
{"success", &Params{ParentPerm: 0750}, &AutoRootOp{
Host: MustAbs("/var/lib/planterette/base/debian:f92c9052"),
}, []stub.Call{
- {"readdir", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052"}, stubDir("bin", "dev", "etc", "home", "lib64",
- "lost+found", "mnt", "nix", "proc", "root", "run", "srv", "sys", "tmp", "usr", "var"), nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/bin"}, "/var/lib/planterette/base/debian:f92c9052/usr/bin", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/home"}, "/var/lib/planterette/base/debian:f92c9052/home", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/lib64"}, "/var/lib/planterette/base/debian:f92c9052/lib64", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/lost+found"}, "/var/lib/planterette/base/debian:f92c9052/lost+found", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/nix"}, "/var/lib/planterette/base/debian:f92c9052/nix", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/root"}, "/var/lib/planterette/base/debian:f92c9052/root", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/run"}, "/var/lib/planterette/base/debian:f92c9052/run", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/srv"}, "/var/lib/planterette/base/debian:f92c9052/srv", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/sys"}, "/var/lib/planterette/base/debian:f92c9052/sys", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/usr"}, "/var/lib/planterette/base/debian:f92c9052/usr", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/var"}, "/var/lib/planterette/base/debian:f92c9052/var", nil},
+ call("readdir", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052"}, stubDir("bin", "dev", "etc", "home", "lib64",
+ "lost+found", "mnt", "nix", "proc", "root", "run", "srv", "sys", "tmp", "usr", "var"), nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/bin"}, "/var/lib/planterette/base/debian:f92c9052/usr/bin", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/home"}, "/var/lib/planterette/base/debian:f92c9052/home", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/lib64"}, "/var/lib/planterette/base/debian:f92c9052/lib64", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/lost+found"}, "/var/lib/planterette/base/debian:f92c9052/lost+found", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/nix"}, "/var/lib/planterette/base/debian:f92c9052/nix", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/root"}, "/var/lib/planterette/base/debian:f92c9052/root", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/run"}, "/var/lib/planterette/base/debian:f92c9052/run", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/srv"}, "/var/lib/planterette/base/debian:f92c9052/srv", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/sys"}, "/var/lib/planterette/base/debian:f92c9052/sys", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/usr"}, "/var/lib/planterette/base/debian:f92c9052/usr", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052/var"}, "/var/lib/planterette/base/debian:f92c9052/var", nil),
}, nil, []stub.Call{
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/usr/bin"), MustAbs("/var/lib/planterette/base/debian:f92c9052/bin"), MustAbs("/bin"), 0}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/usr/bin"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/usr/bin", "/sysroot/bin", uintptr(0x4005), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/home"), MustAbs("/var/lib/planterette/base/debian:f92c9052/home"), MustAbs("/home"), 0}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/home"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/home", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/home", "/sysroot/home", uintptr(0x4005), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/lib64"), MustAbs("/var/lib/planterette/base/debian:f92c9052/lib64"), MustAbs("/lib64"), 0}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/lib64"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/lib64", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/lib64", "/sysroot/lib64", uintptr(0x4005), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/lost+found"), MustAbs("/var/lib/planterette/base/debian:f92c9052/lost+found"), MustAbs("/lost+found"), 0}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/lost+found"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/lost+found", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/lost+found", "/sysroot/lost+found", uintptr(0x4005), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/nix"), MustAbs("/var/lib/planterette/base/debian:f92c9052/nix"), MustAbs("/nix"), 0}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/nix"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/nix", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/nix", "/sysroot/nix", uintptr(0x4005), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/root"), MustAbs("/var/lib/planterette/base/debian:f92c9052/root"), MustAbs("/root"), 0}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/root"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/root", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/root", "/sysroot/root", uintptr(0x4005), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/run"), MustAbs("/var/lib/planterette/base/debian:f92c9052/run"), MustAbs("/run"), 0}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/run"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/run", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/run", "/sysroot/run", uintptr(0x4005), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/srv"), MustAbs("/var/lib/planterette/base/debian:f92c9052/srv"), MustAbs("/srv"), 0}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/srv"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/srv", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/srv", "/sysroot/srv", uintptr(0x4005), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/sys"), MustAbs("/var/lib/planterette/base/debian:f92c9052/sys"), MustAbs("/sys"), 0}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/sys"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/sys", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/sys", "/sysroot/sys", uintptr(0x4005), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/usr"), MustAbs("/var/lib/planterette/base/debian:f92c9052/usr"), MustAbs("/usr"), 0}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/usr"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/usr", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/usr", "/sysroot/usr", uintptr(0x4005), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/var"), MustAbs("/var/lib/planterette/base/debian:f92c9052/var"), MustAbs("/var"), 0}}}, nil, nil}, {"stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/var"}, isDirFi(true), nil}, {"mkdirAll", stub.ExpectArgs{"/sysroot/var", os.FileMode(0700)}, nil, nil}, {"bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/var", "/sysroot/var", uintptr(0x4005), false}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/usr/bin"), MustAbs("/var/lib/planterette/base/debian:f92c9052/bin"), MustAbs("/bin"), 0}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/usr/bin"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/usr/bin", "/sysroot/bin", uintptr(0x4005), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/home"), MustAbs("/var/lib/planterette/base/debian:f92c9052/home"), MustAbs("/home"), 0}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/home"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/home", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/home", "/sysroot/home", uintptr(0x4005), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/lib64"), MustAbs("/var/lib/planterette/base/debian:f92c9052/lib64"), MustAbs("/lib64"), 0}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/lib64"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/lib64", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/lib64", "/sysroot/lib64", uintptr(0x4005), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/lost+found"), MustAbs("/var/lib/planterette/base/debian:f92c9052/lost+found"), MustAbs("/lost+found"), 0}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/lost+found"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/lost+found", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/lost+found", "/sysroot/lost+found", uintptr(0x4005), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/nix"), MustAbs("/var/lib/planterette/base/debian:f92c9052/nix"), MustAbs("/nix"), 0}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/nix"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/nix", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/nix", "/sysroot/nix", uintptr(0x4005), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/root"), MustAbs("/var/lib/planterette/base/debian:f92c9052/root"), MustAbs("/root"), 0}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/root"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/root", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/root", "/sysroot/root", uintptr(0x4005), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/run"), MustAbs("/var/lib/planterette/base/debian:f92c9052/run"), MustAbs("/run"), 0}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/run"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/run", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/run", "/sysroot/run", uintptr(0x4005), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/srv"), MustAbs("/var/lib/planterette/base/debian:f92c9052/srv"), MustAbs("/srv"), 0}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/srv"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/srv", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/srv", "/sysroot/srv", uintptr(0x4005), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/sys"), MustAbs("/var/lib/planterette/base/debian:f92c9052/sys"), MustAbs("/sys"), 0}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/sys"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/sys", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/sys", "/sysroot/sys", uintptr(0x4005), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/usr"), MustAbs("/var/lib/planterette/base/debian:f92c9052/usr"), MustAbs("/usr"), 0}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/usr"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/usr", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/usr", "/sysroot/usr", uintptr(0x4005), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{MustAbs("/var/lib/planterette/base/debian:f92c9052/var"), MustAbs("/var/lib/planterette/base/debian:f92c9052/var"), MustAbs("/var"), 0}}}, nil, nil), call("stat", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/var"}, isDirFi(true), nil), call("mkdirAll", stub.ExpectArgs{"/sysroot/var", os.FileMode(0700)}, nil, nil), call("bindMount", stub.ExpectArgs{"/host/var/lib/planterette/base/debian:f92c9052/var", "/sysroot/var", uintptr(0x4005), false}, nil, nil),
}, nil},
})
diff --git a/container/container_test.go b/container/container_test.go
index c7f78aac..0b6cdf51 100644
--- a/container/container_test.go
+++ b/container/container_test.go
@@ -214,7 +214,7 @@ var containerTestCases = []struct {
1000, 100, nil, 0, seccomp.PresetExt},
{"custom rules", true, true, true, false,
emptyOps, emptyMnt,
- 1, 31, []seccomp.NativeRule{{seccomp.ScmpSyscall(syscall.SYS_SETUID), seccomp.ScmpErrno(syscall.EPERM), nil}}, 0, seccomp.PresetExt},
+ 1, 31, []seccomp.NativeRule{{Syscall: seccomp.ScmpSyscall(syscall.SYS_SETUID), Errno: seccomp.ScmpErrno(syscall.EPERM)}}, 0, seccomp.PresetExt},
{"tmpfs", true, false, false, true,
earlyOps(new(container.Ops).
diff --git a/container/dispatcher_test.go b/container/dispatcher_test.go
index 5b04ea76..18800466 100644
--- a/container/dispatcher_test.go
+++ b/container/dispatcher_test.go
@@ -128,6 +128,12 @@ func checkOpMeta(t *testing.T, testCases []opMetaTestCase) {
})
}
+// call initialises a [stub.Call].
+// This keeps composites analysis happy without making the test cases too bloated.
+func call(name string, args stub.ExpectArgs, ret any, err error) stub.Call {
+ return stub.Call{Name: name, Args: args, Ret: ret, Err: err}
+}
+
type simpleTestCase struct {
name string
f func(k syscallDispatcher) error
diff --git a/container/init_test.go b/container/init_test.go
index e6a7511d..99e2976c 100644
--- a/container/init_test.go
+++ b/container/init_test.go
@@ -31,48 +31,48 @@ func TestInitEntrypoint(t *testing.T) {
checkSimple(t, "initEntrypoint", []simpleTestCase{
{"getpid", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1 << 10, nil},
- {"fatal", stub.ExpectArgs{[]any{"this process must run as pid 1"}}, nil, nil},
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1<<10, nil),
+ call("fatal", stub.ExpectArgs{[]any{"this process must run as pid 1"}}, nil, nil),
},
}, nil},
{"receive bad fd", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr)}, nil, syscall.EBADF},
- {"fatal", stub.ExpectArgs{[]any{"invalid setup descriptor"}}, nil, nil},
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr)}, nil, syscall.EBADF),
+ call("fatal", stub.ExpectArgs{[]any{"invalid setup descriptor"}}, nil, nil),
},
}, nil},
{"receive not set", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr)}, nil, ErrReceiveEnv},
- {"fatal", stub.ExpectArgs{[]any{"HAKUREI_SETUP not set"}}, nil, nil},
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr)}, nil, ErrReceiveEnv),
+ call("fatal", stub.ExpectArgs{[]any{"HAKUREI_SETUP not set"}}, nil, nil),
},
}, nil},
{"receive payload decode", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr)}, nil, stub.UniqueError(80)},
- {"fatalf", stub.ExpectArgs{"cannot decode init setup payload: %v", []any{stub.UniqueError(80)}}, nil, nil},
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr)}, nil, stub.UniqueError(80)),
+ call("fatalf", stub.ExpectArgs{"cannot decode init setup payload: %v", []any{stub.UniqueError(80)}}, nil, nil),
},
}, nil},
{"receive invalid params", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -86,17 +86,17 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(79), nil},
- {"fatal", stub.ExpectArgs{[]any{"invalid setup parameters"}}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(79), nil),
+ call("fatal", stub.ExpectArgs{[]any{"invalid setup parameters"}}, nil, nil),
},
}, nil},
{"setDumpable user", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -111,19 +111,19 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(78), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, stub.UniqueError(77)},
- {"fatalf", stub.ExpectArgs{"cannot set SUID_DUMP_USER: %v", []any{stub.UniqueError(77)}}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(78), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, stub.UniqueError(77)),
+ call("fatalf", stub.ExpectArgs{"cannot set SUID_DUMP_USER: %v", []any{stub.UniqueError(77)}}, nil, nil),
},
}, nil},
{"writeFile uid_map", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -138,20 +138,20 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(76), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, stub.UniqueError(75)},
- {"fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(75)}}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(76), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, stub.UniqueError(75)),
+ call("fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(75)}}, nil, nil),
},
}, nil},
{"writeFile setgroups", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -166,21 +166,21 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(74), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, stub.UniqueError(73)},
- {"fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(73)}}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(74), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, stub.UniqueError(73)),
+ call("fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(73)}}, nil, nil),
},
}, nil},
{"writeFile gid_map", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -195,22 +195,22 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(72), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, stub.UniqueError(71)},
- {"fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(71)}}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(72), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, stub.UniqueError(71)),
+ call("fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(71)}}, nil, nil),
},
}, nil},
{"setDumpable disable", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -225,23 +225,23 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(70), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, stub.UniqueError(69)},
- {"fatalf", stub.ExpectArgs{"cannot set SUID_DUMP_DISABLE: %v", []any{stub.UniqueError(69)}}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(70), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, stub.UniqueError(69)),
+ call("fatalf", stub.ExpectArgs{"cannot set SUID_DUMP_DISABLE: %v", []any{stub.UniqueError(69)}}, nil, nil),
},
}, nil},
{"sethostname", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -256,25 +256,25 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(68), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, stub.UniqueError(67)},
- {"fatalf", stub.ExpectArgs{"cannot set hostname: %v", []any{stub.UniqueError(67)}}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(68), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, stub.UniqueError(67)),
+ call("fatalf", stub.ExpectArgs{"cannot set hostname: %v", []any{stub.UniqueError(67)}}, nil, nil),
},
}, nil},
{"mount rslave root", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -289,27 +289,27 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(66), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, stub.UniqueError(65)},
- {"fatalf", stub.ExpectArgs{"cannot make / rslave: %v", []any{stub.UniqueError(65)}}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(66), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, stub.UniqueError(65)),
+ call("fatalf", stub.ExpectArgs{"cannot make / rslave: %v", []any{stub.UniqueError(65)}}, nil, nil),
},
}, nil},
{"nil op", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -324,29 +324,29 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(64), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(64), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"fatalf", stub.ExpectArgs{"invalid op at index %d", []any{0}}, nil, nil},
+ call("fatalf", stub.ExpectArgs{"invalid op at index %d", []any{0}}, nil, nil),
/* end early */
},
}, nil},
{"invalid op", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -361,29 +361,29 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(63), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(63), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"fatalf", stub.ExpectArgs{"invalid op at index %d", []any{0}}, nil, nil},
+ call("fatalf", stub.ExpectArgs{"invalid op at index %d", []any{0}}, nil, nil),
/* end early */
},
}, nil},
{"early unhandled error", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -398,30 +398,30 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(62), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(62), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", stub.UniqueError(61)},
- {"fatalf", stub.ExpectArgs{"cannot prepare op at index %d: %v", []any{0, stub.UniqueError(61)}}, nil, nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", stub.UniqueError(61)),
+ call("fatalf", stub.ExpectArgs{"cannot prepare op at index %d: %v", []any{0, stub.UniqueError(61)}}, nil, nil),
/* end early */
},
}, nil},
{"early", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -436,30 +436,30 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(60), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(60), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", &os.PathError{Op: "readlink", Path: "/", Err: stub.UniqueError(60)}},
- {"fatal", stub.ExpectArgs{[]any{"cannot readlink /: unique error 60 injected by the test suite"}}, nil, nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", &os.PathError{Op: "readlink", Path: "/", Err: stub.UniqueError(60)}),
+ call("fatal", stub.ExpectArgs{[]any{"cannot readlink /: unique error 60 injected by the test suite"}}, nil, nil),
/* end early */
},
}, nil},
{"mount ih", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -474,31 +474,31 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(59), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(59), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, stub.UniqueError(58)},
- {"fatalf", stub.ExpectArgs{"cannot mount intermediate root: %v", []any{stub.UniqueError(58)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, stub.UniqueError(58)),
+ call("fatalf", stub.ExpectArgs{"cannot mount intermediate root: %v", []any{stub.UniqueError(58)}}, nil, nil),
},
}, nil},
{"chdir ih", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -513,32 +513,32 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(57), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(57), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, stub.UniqueError(56)},
- {"fatalf", stub.ExpectArgs{"cannot enter intermediate host path: %v", []any{stub.UniqueError(56)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, stub.UniqueError(56)),
+ call("fatalf", stub.ExpectArgs{"cannot enter intermediate host path: %v", []any{stub.UniqueError(56)}}, nil, nil),
},
}, nil},
{"mkdir sysroot", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -553,33 +553,33 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(55), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(55), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, stub.UniqueError(54)},
- {"fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(54)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, stub.UniqueError(54)),
+ call("fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(54)}}, nil, nil),
},
}, nil},
{"mount bind sysroot", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -594,34 +594,34 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(53), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(53), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, stub.UniqueError(52)},
- {"fatalf", stub.ExpectArgs{"cannot bind sysroot: %v", []any{stub.UniqueError(52)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, stub.UniqueError(52)),
+ call("fatalf", stub.ExpectArgs{"cannot bind sysroot: %v", []any{stub.UniqueError(52)}}, nil, nil),
},
}, nil},
{"mkdir host", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -636,35 +636,35 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(51), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(51), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, stub.UniqueError(50)},
- {"fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(50)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, stub.UniqueError(50)),
+ call("fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(50)}}, nil, nil),
},
}, nil},
{"pivotRoot ir", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -679,36 +679,36 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(49), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(49), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, stub.UniqueError(48)},
- {"fatalf", stub.ExpectArgs{"cannot pivot into intermediate root: %v", []any{stub.UniqueError(48)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, stub.UniqueError(48)),
+ call("fatalf", stub.ExpectArgs{"cannot pivot into intermediate root: %v", []any{stub.UniqueError(48)}}, nil, nil),
},
}, nil},
{"chdir ir", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -723,37 +723,37 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(47), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(47), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, stub.UniqueError(46)},
- {"fatalf", stub.ExpectArgs{"cannot enter intermediate root: %v", []any{stub.UniqueError(46)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, stub.UniqueError(46)),
+ call("fatalf", stub.ExpectArgs{"cannot enter intermediate root: %v", []any{stub.UniqueError(46)}}, nil, nil),
},
}, nil},
{"apply unhandled error", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -768,46 +768,46 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(45), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(45), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, stub.UniqueError(44)},
- {"fatalf", stub.ExpectArgs{"cannot apply op at index %d: %v", []any{1, stub.UniqueError(44)}}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, stub.UniqueError(44)),
+ call("fatalf", stub.ExpectArgs{"cannot apply op at index %d: %v", []any{1, stub.UniqueError(44)}}, nil, nil),
/* end apply */
},
}, nil},
{"apply", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -822,46 +822,46 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(43), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(43), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, &MountError{"proc", "/sysroot/proc", "proc", uintptr(0xe), "", syscall.ENOTRECOVERABLE}},
- {"fatal", stub.ExpectArgs{[]any{"cannot mount proc on /sysroot/proc: state not recoverable"}}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, &MountError{"proc", "/sysroot/proc", "proc", uintptr(0xe), "", syscall.ENOTRECOVERABLE}),
+ call("fatal", stub.ExpectArgs{[]any{"cannot mount proc on /sysroot/proc: state not recoverable"}}, nil, nil),
/* end apply */
},
}, nil},
{"mount rprivate host", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -876,47 +876,47 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(42), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(42), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, stub.UniqueError(41)},
- {"fatalf", stub.ExpectArgs{"cannot make host root rprivate: %v", []any{stub.UniqueError(41)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, stub.UniqueError(41)),
+ call("fatalf", stub.ExpectArgs{"cannot make host root rprivate: %v", []any{stub.UniqueError(41)}}, nil, nil),
},
}, nil},
{"unmount host", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -931,48 +931,48 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(40), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(40), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, stub.UniqueError(39)},
- {"fatalf", stub.ExpectArgs{"cannot unmount host root: %v", []any{stub.UniqueError(39)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, stub.UniqueError(39)),
+ call("fatalf", stub.ExpectArgs{"cannot unmount host root: %v", []any{stub.UniqueError(39)}}, nil, nil),
},
}, nil},
{"open ir", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -987,50 +987,50 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(38), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(38), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, stub.UniqueError(37)},
- {"fatalf", stub.ExpectArgs{"cannot open intermediate root: %v", []any{stub.UniqueError(37)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, stub.UniqueError(37)),
+ call("fatalf", stub.ExpectArgs{"cannot open intermediate root: %v", []any{stub.UniqueError(37)}}, nil, nil),
},
}, nil},
{"chdir sysroot", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -1045,51 +1045,51 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(36), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(36), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, stub.UniqueError(35)},
- {"fatalf", stub.ExpectArgs{"cannot enter sysroot: %v", []any{stub.UniqueError(35)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, stub.UniqueError(35)),
+ call("fatalf", stub.ExpectArgs{"cannot enter sysroot: %v", []any{stub.UniqueError(35)}}, nil, nil),
},
}, nil},
{"pivotRoot sysroot", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -1104,52 +1104,52 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(34), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(34), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, stub.UniqueError(33)},
- {"fatalf", stub.ExpectArgs{"cannot pivot into sysroot: %v", []any{stub.UniqueError(33)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, stub.UniqueError(33)),
+ call("fatalf", stub.ExpectArgs{"cannot pivot into sysroot: %v", []any{stub.UniqueError(33)}}, nil, nil),
},
}, nil},
{"fchdir ir", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -1164,53 +1164,53 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(32), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(32), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, stub.UniqueError(31)},
- {"fatalf", stub.ExpectArgs{"cannot re-enter intermediate root: %v", []any{stub.UniqueError(31)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, stub.UniqueError(31)),
+ call("fatalf", stub.ExpectArgs{"cannot re-enter intermediate root: %v", []any{stub.UniqueError(31)}}, nil, nil),
},
}, nil},
{"unmount ir", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -1225,54 +1225,54 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(30), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(30), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, stub.UniqueError(29)},
- {"fatalf", stub.ExpectArgs{"cannot unmount intermediate root: %v", []any{stub.UniqueError(29)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, stub.UniqueError(29)),
+ call("fatalf", stub.ExpectArgs{"cannot unmount intermediate root: %v", []any{stub.UniqueError(29)}}, nil, nil),
},
}, nil},
{"chdir ir", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -1287,55 +1287,55 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(28), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(28), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, stub.UniqueError(27)},
- {"fatalf", stub.ExpectArgs{"cannot enter root: %v", []any{stub.UniqueError(27)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, stub.UniqueError(27)),
+ call("fatalf", stub.ExpectArgs{"cannot enter root: %v", []any{stub.UniqueError(27)}}, nil, nil),
},
}, nil},
{"close ir", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -1350,56 +1350,56 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(26), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(26), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, stub.UniqueError(25)},
- {"fatalf", stub.ExpectArgs{"cannot close intermediate root: %v", []any{stub.UniqueError(25)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, stub.UniqueError(25)),
+ call("fatalf", stub.ExpectArgs{"cannot close intermediate root: %v", []any{stub.UniqueError(25)}}, nil, nil),
},
}, nil},
{"capAmbientClearAll", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -1414,57 +1414,57 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(24), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(24), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, stub.UniqueError(23)},
- {"fatalf", stub.ExpectArgs{"cannot clear the ambient capability set: %v", []any{stub.UniqueError(23)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, stub.UniqueError(23)),
+ call("fatalf", stub.ExpectArgs{"cannot clear the ambient capability set: %v", []any{stub.UniqueError(23)}}, nil, nil),
},
}, nil},
{"capBoundingSetDrop", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -1479,65 +1479,65 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(22), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(22), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, stub.UniqueError(21)},
- {"fatalf", stub.ExpectArgs{"cannot drop capability from bounding set: %v", []any{stub.UniqueError(21)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, stub.UniqueError(21)),
+ call("fatalf", stub.ExpectArgs{"cannot drop capability from bounding set: %v", []any{stub.UniqueError(21)}}, nil, nil),
},
}, nil},
{"capAmbientRaise", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -1552,98 +1552,98 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(20), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(20), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil},
- {"capAmbientRaise", stub.ExpectArgs{uintptr(0x15)}, nil, stub.UniqueError(19)},
- {"fatalf", stub.ExpectArgs{"cannot raise CAP_SYS_ADMIN: %v", []any{stub.UniqueError(19)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil),
+ call("capAmbientRaise", stub.ExpectArgs{uintptr(0x15)}, nil, stub.UniqueError(19)),
+ call("fatalf", stub.ExpectArgs{"cannot raise CAP_SYS_ADMIN: %v", []any{stub.UniqueError(19)}}, nil, nil),
},
}, nil},
{"capset", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -1658,99 +1658,99 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(18), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(18), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil},
- {"capAmbientRaise", stub.ExpectArgs{uintptr(0x15)}, nil, nil},
- {"capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, &[2]capData{{0, 0x200000, 0x200000}, {0, 0, 0}}}, nil, stub.UniqueError(17)},
- {"fatalf", stub.ExpectArgs{"cannot capset: %v", []any{stub.UniqueError(17)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil),
+ call("capAmbientRaise", stub.ExpectArgs{uintptr(0x15)}, nil, nil),
+ call("capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, &[2]capData{{0, 0x200000, 0x200000}, {0, 0, 0}}}, nil, stub.UniqueError(17)),
+ call("fatalf", stub.ExpectArgs{"cannot capset: %v", []any{stub.UniqueError(17)}}, nil, nil),
},
}, nil},
{"seccompLoad", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -1765,102 +1765,102 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(16), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(16), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil},
- {"capAmbientRaise", stub.ExpectArgs{uintptr(0x15)}, nil, nil},
- {"capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, &[2]capData{{0, 0x200000, 0x200000}, {0, 0, 0}}}, nil, nil},
- {"verbosef", stub.ExpectArgs{"resolving presets %#x", []any{seccomp.FilterPreset(0xf)}}, nil, nil},
- {"seccompLoad", stub.ExpectArgs{seccomp.Preset(0xf, 0), seccomp.ExportFlag(0)}, nil, stub.UniqueError(15)},
- {"fatalf", stub.ExpectArgs{"cannot load syscall filter: %v", []any{stub.UniqueError(15)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil),
+ call("capAmbientRaise", stub.ExpectArgs{uintptr(0x15)}, nil, nil),
+ call("capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, &[2]capData{{0, 0x200000, 0x200000}, {0, 0, 0}}}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"resolving presets %#x", []any{seccomp.FilterPreset(0xf)}}, nil, nil),
+ call("seccompLoad", stub.ExpectArgs{seccomp.Preset(0xf, 0), seccomp.ExportFlag(0)}, nil, stub.UniqueError(15)),
+ call("fatalf", stub.ExpectArgs{"cannot load syscall filter: %v", []any{stub.UniqueError(15)}}, nil, nil),
},
}, nil},
{"start", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseFalse); return nil }, stub.Expect{
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(14)},
- {"verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(14)}}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(14)),
+ call("verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(14)}}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei/nonexistent"),
Path: MustAbs("/run/current-system/sw/bin/bash"),
Args: []string{"bash", "-c", "false"},
@@ -1873,107 +1873,107 @@ func TestInitEntrypoint(t *testing.T) {
SeccompRules: make([]seccomp.NativeRule, 0),
SeccompDisable: true,
ParentPerm: 0750,
- }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(13), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(13), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x15)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil},
- {"capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil},
- {"verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil},
- {"umask", stub.ExpectArgs{022}, 0, nil},
- {"verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil},
- {"start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, nil, stub.UniqueError(12)},
- {"fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(12)}}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x15)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil),
+ call("capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil),
+ call("verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil),
+ call("umask", stub.ExpectArgs{022}, 0, nil),
+ call("verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil),
+ call("start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, nil, stub.UniqueError(12)),
+ call("fatalf", stub.ExpectArgs{"%v", []any{stub.UniqueError(12)}}, nil, nil),
},
}, nil},
{"lowlastcap signaled cancel forward error", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseFalse); return nil }, stub.Expect{
/* entrypoint */
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(11)},
- {"verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(11)}}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(11)),
+ call("verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(11)}}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei/nonexistent"),
Path: MustAbs("/run/current-system/sw/bin/bash"),
Args: []string{"bash", "-c", "false"},
@@ -1986,91 +1986,91 @@ func TestInitEntrypoint(t *testing.T) {
SeccompRules: make([]seccomp.NativeRule, 0),
SeccompDisable: true,
ParentPerm: 0750,
- }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(10), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(4), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(10), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(4), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil},
- {"capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil},
- {"verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil},
- {"umask", stub.ExpectArgs{022}, 0, nil},
- {"verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil},
- {"start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, &os.Process{Pid: 0xbad}, nil},
- {"suspend", stub.ExpectArgs{}, nil, nil},
- {"printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(10)}}, nil, nil},
- {"New", stub.ExpectArgs{}, nil, nil},
- {"notify", stub.ExpectArgs{func(c chan<- os.Signal) { c <- CancelSignal }, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil},
- {"resume", stub.ExpectArgs{}, true, nil},
- {"verbosef", stub.ExpectArgs{"%s after process start", []any{"terminated"}}, nil, nil},
- {"verbose", stub.ExpectArgs{[]any{"forwarding context cancellation"}}, nil, nil},
- {"signal", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent", os.Interrupt}, nil, stub.UniqueError(9)},
- {"printf", stub.ExpectArgs{"cannot forward cancellation: %v", []any{stub.UniqueError(9)}}, nil, nil},
- {"resume", stub.ExpectArgs{}, false, nil},
- {"verbosef", stub.ExpectArgs{"initial process exited with signal %s", []any{syscall.Signal(0x4e)}}, nil, nil},
- {"printf", stub.ExpectArgs{"timeout exceeded waiting for lingering processes", ([]any)(nil)}, nil, nil},
- {"beforeExit", stub.ExpectArgs{}, nil, nil},
- {"exit", stub.ExpectArgs{0xce}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil),
+ call("capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil),
+ call("verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil),
+ call("umask", stub.ExpectArgs{022}, 0, nil),
+ call("verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil),
+ call("start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, &os.Process{Pid: 0xbad}, nil),
+ call("suspend", stub.ExpectArgs{}, nil, nil),
+ call("printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(10)}}, nil, nil),
+ call("New", stub.ExpectArgs{}, nil, nil),
+ call("notify", stub.ExpectArgs{func(c chan<- os.Signal) { c <- CancelSignal }, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil),
+ call("resume", stub.ExpectArgs{}, true, nil),
+ call("verbosef", stub.ExpectArgs{"%s after process start", []any{"terminated"}}, nil, nil),
+ call("verbose", stub.ExpectArgs{[]any{"forwarding context cancellation"}}, nil, nil),
+ call("signal", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent", os.Interrupt}, nil, stub.UniqueError(9)),
+ call("printf", stub.ExpectArgs{"cannot forward cancellation: %v", []any{stub.UniqueError(9)}}, nil, nil),
+ call("resume", stub.ExpectArgs{}, false, nil),
+ call("verbosef", stub.ExpectArgs{"initial process exited with signal %s", []any{syscall.Signal(0x4e)}}, nil, nil),
+ call("printf", stub.ExpectArgs{"timeout exceeded waiting for lingering processes", ([]any)(nil)}, nil, nil),
+ call("beforeExit", stub.ExpectArgs{}, nil, nil),
+ call("exit", stub.ExpectArgs{0xce}, nil, nil),
},
/* wait4 */
Tracks: []stub.Expect{{Calls: []stub.Call{
- {"wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xfade01ce), 0, nil}, 0xbad, nil},
+ call("wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xfade01ce), 0, nil}, 0xbad, nil),
// this terminates the goroutine at the call, preventing it from leaking while preserving behaviour
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil, 0xdeadbeef}, 0, syscall.ECHILD},
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil, 0xdeadbeef}, 0, syscall.ECHILD),
}}},
}, nil},
{"lowlastcap signaled cancel", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseFalse); return nil }, stub.Expect{
/* entrypoint */
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(8)},
- {"verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(8)}}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(8)),
+ call("verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(8)}}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei/nonexistent"),
Path: MustAbs("/run/current-system/sw/bin/bash"),
Args: []string{"bash", "-c", "false"},
@@ -2083,84 +2083,84 @@ func TestInitEntrypoint(t *testing.T) {
SeccompRules: make([]seccomp.NativeRule, 0),
SeccompDisable: true,
ParentPerm: 0750,
- }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(7), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(4), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(7), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(4), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil},
- {"capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil},
- {"verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil},
- {"umask", stub.ExpectArgs{022}, 0, nil},
- {"verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil},
- {"start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, &os.Process{Pid: 0xbad}, nil},
- {"suspend", stub.ExpectArgs{}, nil, nil},
- {"printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(7)}}, nil, nil},
- {"New", stub.ExpectArgs{}, nil, nil},
- {"notify", stub.ExpectArgs{func(c chan<- os.Signal) { c <- os.Interrupt }, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil},
- {"resume", stub.ExpectArgs{}, false, nil},
- {"verbosef", stub.ExpectArgs{"got %s", []any{"interrupt"}}, nil, nil},
- {"beforeExit", stub.ExpectArgs{}, nil, nil},
- {"exit", stub.ExpectArgs{0}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil),
+ call("capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil),
+ call("verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil),
+ call("umask", stub.ExpectArgs{022}, 0, nil),
+ call("verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil),
+ call("start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, &os.Process{Pid: 0xbad}, nil),
+ call("suspend", stub.ExpectArgs{}, nil, nil),
+ call("printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(7)}}, nil, nil),
+ call("New", stub.ExpectArgs{}, nil, nil),
+ call("notify", stub.ExpectArgs{func(c chan<- os.Signal) { c <- os.Interrupt }, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil),
+ call("resume", stub.ExpectArgs{}, false, nil),
+ call("verbosef", stub.ExpectArgs{"got %s", []any{"interrupt"}}, nil, nil),
+ call("beforeExit", stub.ExpectArgs{}, nil, nil),
+ call("exit", stub.ExpectArgs{0}, nil, nil),
},
/* wait4 */
Tracks: []stub.Expect{{Calls: []stub.Call{
// this terminates the goroutine at the call, preventing it from leaking while preserving behaviour
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil, 0xdeadbeef}, 0, syscall.ECHILD},
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil, 0xdeadbeef}, 0, syscall.ECHILD),
}}},
}, nil},
{"lowlastcap signaled timeout", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseFalse); return nil }, stub.Expect{
/* entrypoint */
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(6)},
- {"verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(6)}}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(6)),
+ call("verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(6)}}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei/nonexistent"),
Path: MustAbs("/run/current-system/sw/bin/bash"),
Args: []string{"bash", "-c", "false"},
@@ -2173,86 +2173,86 @@ func TestInitEntrypoint(t *testing.T) {
SeccompRules: make([]seccomp.NativeRule, 0),
SeccompDisable: true,
ParentPerm: 0750,
- }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(5), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(4), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(5), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(4), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil},
- {"capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil},
- {"verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil},
- {"umask", stub.ExpectArgs{022}, 0, nil},
- {"verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil},
- {"start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, &os.Process{Pid: 0xbad}, nil},
- {"suspend", stub.ExpectArgs{}, nil, nil},
- {"printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(5)}}, nil, nil},
- {"New", stub.ExpectArgs{}, nil, nil},
- {"notify", stub.ExpectArgs{nil, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil},
- {"resume", stub.ExpectArgs{}, true, nil},
- {"verbosef", stub.ExpectArgs{"initial process exited with signal %s", []any{syscall.Signal(0x4e)}}, nil, nil},
- {"printf", stub.ExpectArgs{"timeout exceeded waiting for lingering processes", ([]any)(nil)}, nil, nil},
- {"beforeExit", stub.ExpectArgs{}, nil, nil},
- {"exit", stub.ExpectArgs{0xce}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil),
+ call("capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil),
+ call("verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil),
+ call("umask", stub.ExpectArgs{022}, 0, nil),
+ call("verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil),
+ call("start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, &os.Process{Pid: 0xbad}, nil),
+ call("suspend", stub.ExpectArgs{}, nil, nil),
+ call("printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(5)}}, nil, nil),
+ call("New", stub.ExpectArgs{}, nil, nil),
+ call("notify", stub.ExpectArgs{nil, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil),
+ call("resume", stub.ExpectArgs{}, true, nil),
+ call("verbosef", stub.ExpectArgs{"initial process exited with signal %s", []any{syscall.Signal(0x4e)}}, nil, nil),
+ call("printf", stub.ExpectArgs{"timeout exceeded waiting for lingering processes", ([]any)(nil)}, nil, nil),
+ call("beforeExit", stub.ExpectArgs{}, nil, nil),
+ call("exit", stub.ExpectArgs{0xce}, nil, nil),
},
/* wait4 */
Tracks: []stub.Expect{{Calls: []stub.Call{
- {"wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xfade01ce), 0, nil}, 0xbad, nil},
+ call("wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xfade01ce), 0, nil}, 0xbad, nil),
// this terminates the goroutine at the call, preventing it from leaking while preserving behaviour
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil, 0xdeadbeef}, 0, syscall.ECHILD},
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil, 0xdeadbeef}, 0, syscall.ECHILD),
}}},
}, nil},
{"lowlastcap signaled", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseFalse); return nil }, stub.Expect{
/* entrypoint */
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(4)},
- {"verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(4)}}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(4)),
+ call("verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(4)}}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei/nonexistent"),
Path: MustAbs("/run/current-system/sw/bin/bash"),
Args: []string{"bash", "-c", "false"},
@@ -2265,93 +2265,93 @@ func TestInitEntrypoint(t *testing.T) {
SeccompRules: make([]seccomp.NativeRule, 0),
SeccompDisable: true,
ParentPerm: 0750,
- }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(3), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(4), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(3), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(4), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil},
- {"capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil},
- {"verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil},
- {"umask", stub.ExpectArgs{022}, 0, nil},
- {"verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil},
- {"start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, &os.Process{Pid: 0xbad}, nil},
- {"suspend", stub.ExpectArgs{}, nil, nil},
- {"printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(3)}}, nil, nil},
- {"New", stub.ExpectArgs{}, nil, nil},
- {"notify", stub.ExpectArgs{nil, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil},
- {"resume", stub.ExpectArgs{}, true, nil},
- {"verbosef", stub.ExpectArgs{"initial process exited with signal %s", []any{syscall.Signal(0x4e)}}, nil, nil},
- {"beforeExit", stub.ExpectArgs{}, nil, nil},
- {"exit", stub.ExpectArgs{0xce}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil),
+ call("capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil),
+ call("verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil),
+ call("umask", stub.ExpectArgs{022}, 0, nil),
+ call("verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil),
+ call("start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, &os.Process{Pid: 0xbad}, nil),
+ call("suspend", stub.ExpectArgs{}, nil, nil),
+ call("printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(3)}}, nil, nil),
+ call("New", stub.ExpectArgs{}, nil, nil),
+ call("notify", stub.ExpectArgs{nil, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil),
+ call("resume", stub.ExpectArgs{}, true, nil),
+ call("verbosef", stub.ExpectArgs{"initial process exited with signal %s", []any{syscall.Signal(0x4e)}}, nil, nil),
+ call("beforeExit", stub.ExpectArgs{}, nil, nil),
+ call("exit", stub.ExpectArgs{0xce}, nil, nil),
},
/* wait4 */
Tracks: []stub.Expect{{Calls: []stub.Call{
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xfade01ce), 0, nil}, 0xbad, nil},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.ENOMEM},
- {"printf", stub.ExpectArgs{"unexpected wait4 response: %v", []any{syscall.ENOMEM}}, nil, nil},
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xfade01ce), 0, nil}, 0xbad, nil),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.ENOMEM),
+ call("printf", stub.ExpectArgs{"unexpected wait4 response: %v", []any{syscall.ENOMEM}}, nil, nil),
}}},
}, nil},
{"strangewait nopriv notty noseccomp yamafault", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseFalse); return nil }, stub.Expect{
/* entrypoint */
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(2)},
- {"verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(2)}}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, 0, stub.UniqueError(2)),
+ call("verbosef", stub.ExpectArgs{"cannot enable ptrace protection via Yama LSM: %v", []any{stub.UniqueError(2)}}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei/nonexistent"),
Path: MustAbs("/run/current-system/sw/bin/bash"),
Args: []string{"bash", "-c", "false"},
@@ -2364,128 +2364,128 @@ func TestInitEntrypoint(t *testing.T) {
SeccompRules: make([]seccomp.NativeRule, 0),
SeccompDisable: true,
ParentPerm: 0750,
- }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(1), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1971, 127, 2, false}, uintptr(0x39)}, stub.UniqueError(1), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("16777216 1971 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("140737488355328 127 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x15)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil},
- {"capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil},
- {"verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil},
- {"newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil},
- {"umask", stub.ExpectArgs{022}, 0, nil},
- {"verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil},
- {"start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, &os.Process{Pid: 0xbad}, nil},
- {"suspend", stub.ExpectArgs{}, nil, nil},
- {"printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(1)}}, nil, nil},
- {"New", stub.ExpectArgs{}, nil, nil},
- {"notify", stub.ExpectArgs{nil, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil},
- {"resume", stub.ExpectArgs{}, true, nil},
- {"verbosef", stub.ExpectArgs{"initial process exited with code %d", []any{1}}, nil, nil},
- {"beforeExit", stub.ExpectArgs{}, nil, nil},
- {"exit", stub.ExpectArgs{1}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x15)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil),
+ call("capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, new([2]capData)}, nil, nil),
+ call("verbose", stub.ExpectArgs{[]any{"syscall filter not configured"}}, nil, nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3a), "extra file 0"}, (*os.File)(nil), nil),
+ call("newFile", stub.ExpectArgs{uintptr(0x3b), "extra file 1"}, (*os.File)(nil), nil),
+ call("umask", stub.ExpectArgs{022}, 0, nil),
+ call("verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/run/current-system/sw/bin/bash")}}, nil, nil),
+ call("start", stub.ExpectArgs{"/run/current-system/sw/bin/bash", []string{"bash", "-c", "false"}, ([]string)(nil), "/.hakurei/nonexistent"}, &os.Process{Pid: 0xbad}, nil),
+ call("suspend", stub.ExpectArgs{}, nil, nil),
+ call("printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(1)}}, nil, nil),
+ call("New", stub.ExpectArgs{}, nil, nil),
+ call("notify", stub.ExpectArgs{nil, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil),
+ call("resume", stub.ExpectArgs{}, true, nil),
+ call("verbosef", stub.ExpectArgs{"initial process exited with code %d", []any{1}}, nil, nil),
+ call("beforeExit", stub.ExpectArgs{}, nil, nil),
+ call("exit", stub.ExpectArgs{1}, nil, nil),
},
/* wait4 */
Tracks: []stub.Expect{{Calls: []stub.Call{
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xfade0100), 0, nil}, 0xbad, nil},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.ENOMEM},
- {"printf", stub.ExpectArgs{"unexpected wait4 response: %v", []any{syscall.ENOMEM}}, nil, nil},
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xfade0100), 0, nil}, 0xbad, nil),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.ENOMEM),
+ call("printf", stub.ExpectArgs{"unexpected wait4 response: %v", []any{syscall.ENOMEM}}, nil, nil),
}}},
}, nil},
{"success", func(k syscallDispatcher) error { initEntrypoint(k, assertPrefix, assertVerboseTrue); return nil }, stub.Expect{
/* entrypoint */
Calls: []stub.Call{
- {"lockOSThread", stub.ExpectArgs{}, nil, nil},
- {"getpid", stub.ExpectArgs{}, 1, nil},
- {"setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
+ call("lockOSThread", stub.ExpectArgs{}, nil, nil),
+ call("getpid", stub.ExpectArgs{}, 1, nil),
+ call("setPtracer", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("receive", stub.ExpectArgs{"HAKUREI_SETUP", new(initParams), new(uintptr), &initParams{Params{
Dir: MustAbs("/.hakurei"),
Env: []string{"DISPLAY=:0"},
Path: MustAbs("/bin/zsh"),
@@ -2500,120 +2500,120 @@ func TestInitEntrypoint(t *testing.T) {
SeccompPresets: seccomp.PresetStrict,
RetainSession: true,
Privileged: true,
- }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(0), nil},
- {"verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil},
- {"writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil},
- {"setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil},
- {"umask", stub.ExpectArgs{0}, 022, nil},
- {"sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil},
- {"lastcap", stub.ExpectArgs{}, uintptr(40), nil},
- {"mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil},
+ }, 1000, 100, 3, true}, uintptr(9)}, stub.UniqueError(0), nil),
+ call("verbose", stub.ExpectArgs{[]any{"received setup parameters"}}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(1)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/uid_map", []byte("4294967296 1000 1\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/setgroups", []byte("deny\n"), os.FileMode(0)}, nil, nil),
+ call("writeFile", stub.ExpectArgs{"/proc/self/gid_map", []byte("2147483648 100 1\n"), os.FileMode(0)}, nil, nil),
+ call("setDumpable", stub.ExpectArgs{uintptr(0)}, nil, nil),
+ call("umask", stub.ExpectArgs{0}, 022, nil),
+ call("sethostname", stub.ExpectArgs{[]byte("hakurei-check")}, nil, nil),
+ call("lastcap", stub.ExpectArgs{}, uintptr(40), nil),
+ call("mount", stub.ExpectArgs{"", "/", "", uintptr(0x8c000), ""}, nil, nil),
/* begin early */
- {"evalSymlinks", stub.ExpectArgs{"/"}, "/", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/"}, "/", nil),
/* end early */
- {"mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil},
- {"chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil},
- {"mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
+ call("mount", stub.ExpectArgs{"rootfs", "/proc/self/fd", "tmpfs", uintptr(6), ""}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/proc/self/fd"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"sysroot", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"sysroot", "sysroot", "", uintptr(0xd000), ""}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"host", os.FileMode(0755)}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{"/proc/self/fd", "host"}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
/* begin apply */
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil},
- {"stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &BindMountOp{sourceFinal: MustAbs("/"), Source: MustAbs("/"), Target: MustAbs("/"), Flags: BindDevice}}}, nil, nil),
+ call("stat", stub.ExpectArgs{"/host"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host", "/sysroot", uintptr(0x4001), false}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%s %s", []any{"mounting", &MountProcOp{Target: MustAbs("/proc/")}}}, nil, nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
/* end apply */
- {"mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil},
- {"unmount", stub.ExpectArgs{"host", 2}, nil, nil},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, syscall.EINTR},
- {"open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1 << 35, nil},
- {"chdir", stub.ExpectArgs{"/sysroot"}, nil, nil},
- {"pivotRoot", stub.ExpectArgs{".", "."}, nil, nil},
- {"fchdir", stub.ExpectArgs{1 << 35}, nil, nil},
- {"unmount", stub.ExpectArgs{".", 2}, nil, nil},
- {"chdir", stub.ExpectArgs{"/"}, nil, nil},
- {"close", stub.ExpectArgs{1 << 35}, nil, nil},
- {"capAmbientClearAll", stub.ExpectArgs{}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil},
- {"capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil},
- {"capAmbientRaise", stub.ExpectArgs{uintptr(0x15)}, nil, nil},
- {"capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, &[2]capData{{0, 0x200000, 0x200000}, {0, 0, 0}}}, nil, nil},
- {"verbosef", stub.ExpectArgs{"resolving presets %#x", []any{seccomp.FilterPreset(0xf)}}, nil, nil},
- {"seccompLoad", stub.ExpectArgs{seccomp.Preset(0xf, 0), seccomp.ExportFlag(0)}, nil, nil},
- {"verbosef", stub.ExpectArgs{"%d filter rules loaded", []any{73}}, nil, nil},
- {"newFile", stub.ExpectArgs{uintptr(10), "extra file 0"}, (*os.File)(nil), nil},
- {"newFile", stub.ExpectArgs{uintptr(11), "extra file 1"}, (*os.File)(nil), nil},
- {"newFile", stub.ExpectArgs{uintptr(12), "extra file 2"}, (*os.File)(nil), nil},
- {"umask", stub.ExpectArgs{022}, 0, nil},
- {"verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/bin/zsh")}}, nil, nil},
- {"start", stub.ExpectArgs{"/bin/zsh", []string{"zsh", "-c", "exec vim"}, []string{"DISPLAY=:0"}, "/.hakurei"}, &os.Process{Pid: 0xcafe}, nil},
- {"suspend", stub.ExpectArgs{}, nil, nil},
- {"printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(0)}}, nil, nil},
- {"New", stub.ExpectArgs{}, nil, nil},
- {"notify", stub.ExpectArgs{nil, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil},
- {"resume", stub.ExpectArgs{}, true, nil},
- {"verbosef", stub.ExpectArgs{"initial process exited with status %#x", []any{syscall.WaitStatus(0xfade007f)}}, nil, nil},
- {"beforeExit", stub.ExpectArgs{}, nil, nil},
- {"exit", stub.ExpectArgs{0xff}, nil, nil},
+ call("mount", stub.ExpectArgs{"host", "host", "", uintptr(0x4c000), ""}, nil, nil),
+ call("unmount", stub.ExpectArgs{"host", 2}, nil, nil),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, syscall.EINTR),
+ call("open", stub.ExpectArgs{"/", 0x10000, uint32(0)}, 1<<35, nil),
+ call("chdir", stub.ExpectArgs{"/sysroot"}, nil, nil),
+ call("pivotRoot", stub.ExpectArgs{".", "."}, nil, nil),
+ call("fchdir", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("unmount", stub.ExpectArgs{".", 2}, nil, nil),
+ call("chdir", stub.ExpectArgs{"/"}, nil, nil),
+ call("close", stub.ExpectArgs{1 << 35}, nil, nil),
+ call("capAmbientClearAll", stub.ExpectArgs{}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x0)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x2)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x3)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x4)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x5)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x6)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x7)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x8)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x9)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xa)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xb)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xc)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xd)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xe)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0xf)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x10)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x11)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x12)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x13)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x14)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x16)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x17)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x18)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x19)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1a)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1b)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1c)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1d)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1e)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x1f)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x20)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x21)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x22)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x23)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x24)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x25)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x26)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x27)}, nil, nil),
+ call("capBoundingSetDrop", stub.ExpectArgs{uintptr(0x28)}, nil, nil),
+ call("capAmbientRaise", stub.ExpectArgs{uintptr(0x15)}, nil, nil),
+ call("capset", stub.ExpectArgs{&capHeader{_LINUX_CAPABILITY_VERSION_3, 0}, &[2]capData{{0, 0x200000, 0x200000}, {0, 0, 0}}}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"resolving presets %#x", []any{seccomp.FilterPreset(0xf)}}, nil, nil),
+ call("seccompLoad", stub.ExpectArgs{seccomp.Preset(0xf, 0), seccomp.ExportFlag(0)}, nil, nil),
+ call("verbosef", stub.ExpectArgs{"%d filter rules loaded", []any{73}}, nil, nil),
+ call("newFile", stub.ExpectArgs{uintptr(10), "extra file 0"}, (*os.File)(nil), nil),
+ call("newFile", stub.ExpectArgs{uintptr(11), "extra file 1"}, (*os.File)(nil), nil),
+ call("newFile", stub.ExpectArgs{uintptr(12), "extra file 2"}, (*os.File)(nil), nil),
+ call("umask", stub.ExpectArgs{022}, 0, nil),
+ call("verbosef", stub.ExpectArgs{"starting initial program %s", []any{MustAbs("/bin/zsh")}}, nil, nil),
+ call("start", stub.ExpectArgs{"/bin/zsh", []string{"zsh", "-c", "exec vim"}, []string{"DISPLAY=:0"}, "/.hakurei"}, &os.Process{Pid: 0xcafe}, nil),
+ call("suspend", stub.ExpectArgs{}, nil, nil),
+ call("printf", stub.ExpectArgs{"cannot close setup pipe: %v", []any{stub.UniqueError(0)}}, nil, nil),
+ call("New", stub.ExpectArgs{}, nil, nil),
+ call("notify", stub.ExpectArgs{nil, []os.Signal{syscall.SIGINT, syscall.SIGTERM}}, nil, nil),
+ call("resume", stub.ExpectArgs{}, true, nil),
+ call("verbosef", stub.ExpectArgs{"initial process exited with status %#x", []any{syscall.WaitStatus(0xfade007f)}}, nil, nil),
+ call("beforeExit", stub.ExpectArgs{}, nil, nil),
+ call("exit", stub.ExpectArgs{0xff}, nil, nil),
},
/* wait4 */
Tracks: []stub.Expect{{Calls: []stub.Call{
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xfade007f), 0, nil}, 0xcafe, nil},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR},
- {"wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil},
- {"wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.ECHILD},
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xfade007f), 0, nil}, 0xcafe, nil),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.EINTR),
+ call("wait4", stub.ExpectArgs{-1, syscall.WaitStatus(0xdeaf), 0, nil}, 0xbabe, nil),
+ call("wait4", stub.ExpectArgs{-1, nil, 0, nil}, 0, syscall.ECHILD),
}}},
}, nil},
})
diff --git a/container/initbind_test.go b/container/initbind_test.go
index 93e880cc..f650b930 100644
--- a/container/initbind_test.go
+++ b/container/initbind_test.go
@@ -15,7 +15,7 @@ func TestBindMountOp(t *testing.T) {
Source: MustAbs("/bin/"),
Target: MustAbs("/bin/"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/bin/"}, "", syscall.ENOENT},
+ call("evalSymlinks", stub.ExpectArgs{"/bin/"}, "", syscall.ENOENT),
}, syscall.ENOENT, nil, nil},
{"skip optional", new(Params), &BindMountOp{
@@ -23,7 +23,7 @@ func TestBindMountOp(t *testing.T) {
Target: MustAbs("/bin/"),
Flags: BindOptional,
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/bin/"}, "", syscall.ENOENT},
+ call("evalSymlinks", stub.ExpectArgs{"/bin/"}, "", syscall.ENOENT),
}, nil, nil, nil},
{"success optional", new(Params), &BindMountOp{
@@ -31,11 +31,11 @@ func TestBindMountOp(t *testing.T) {
Target: MustAbs("/bin/"),
Flags: BindOptional,
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil),
}, nil, []stub.Call{
- {"stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/usr/bin", "/sysroot/bin", uintptr(0x4005), false}, nil, nil},
+ call("stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/usr/bin", "/sysroot/bin", uintptr(0x4005), false}, nil, nil),
}, nil},
{"ensureFile device", new(Params), &BindMountOp{
@@ -43,10 +43,10 @@ func TestBindMountOp(t *testing.T) {
Target: MustAbs("/dev/null"),
Flags: BindWritable | BindDevice,
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/dev/null"}, "/dev/null", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/dev/null"}, "/dev/null", nil),
}, nil, []stub.Call{
- {"stat", stub.ExpectArgs{"/host/dev/null"}, isDirFi(false), nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0700)}, nil, stub.UniqueError(5)},
+ call("stat", stub.ExpectArgs{"/host/dev/null"}, isDirFi(false), nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0700)}, nil, stub.UniqueError(5)),
}, stub.UniqueError(5)},
{"mkdirAll ensure", new(Params), &BindMountOp{
@@ -54,7 +54,7 @@ func TestBindMountOp(t *testing.T) {
Target: MustAbs("/bin/"),
Flags: BindEnsure,
}, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/bin/", os.FileMode(0700)}, nil, stub.UniqueError(4)},
+ call("mkdirAll", stub.ExpectArgs{"/bin/", os.FileMode(0700)}, nil, stub.UniqueError(4)),
}, stub.UniqueError(4), nil, nil},
{"success ensure", new(Params), &BindMountOp{
@@ -62,12 +62,12 @@ func TestBindMountOp(t *testing.T) {
Target: MustAbs("/usr/bin/"),
Flags: BindEnsure,
}, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/bin/", os.FileMode(0700)}, nil, nil},
- {"evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil},
+ call("mkdirAll", stub.ExpectArgs{"/bin/", os.FileMode(0700)}, nil, nil),
+ call("evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil),
}, nil, []stub.Call{
- {"stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/usr/bin", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/usr/bin", "/sysroot/usr/bin", uintptr(0x4005), false}, nil, nil},
+ call("stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/usr/bin", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/usr/bin", "/sysroot/usr/bin", uintptr(0x4005), false}, nil, nil),
}, nil},
{"success device ro", new(Params), &BindMountOp{
@@ -75,11 +75,11 @@ func TestBindMountOp(t *testing.T) {
Target: MustAbs("/dev/null"),
Flags: BindDevice,
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/dev/null"}, "/dev/null", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/dev/null"}, "/dev/null", nil),
}, nil, []stub.Call{
- {"stat", stub.ExpectArgs{"/host/dev/null"}, isDirFi(false), nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0x4001), false}, nil, nil},
+ call("stat", stub.ExpectArgs{"/host/dev/null"}, isDirFi(false), nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0x4001), false}, nil, nil),
}, nil},
{"success device", new(Params), &BindMountOp{
@@ -87,59 +87,59 @@ func TestBindMountOp(t *testing.T) {
Target: MustAbs("/dev/null"),
Flags: BindWritable | BindDevice,
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/dev/null"}, "/dev/null", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/dev/null"}, "/dev/null", nil),
}, nil, []stub.Call{
- {"stat", stub.ExpectArgs{"/host/dev/null"}, isDirFi(false), nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0x4000), false}, nil, nil},
+ call("stat", stub.ExpectArgs{"/host/dev/null"}, isDirFi(false), nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0x4000), false}, nil, nil),
}, nil},
{"evalSymlinks", new(Params), &BindMountOp{
Source: MustAbs("/bin/"),
Target: MustAbs("/bin/"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", stub.UniqueError(3)},
+ call("evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", stub.UniqueError(3)),
}, stub.UniqueError(3), nil, nil},
{"stat", new(Params), &BindMountOp{
Source: MustAbs("/bin/"),
Target: MustAbs("/bin/"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil),
}, nil, []stub.Call{
- {"stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), stub.UniqueError(2)},
+ call("stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), stub.UniqueError(2)),
}, stub.UniqueError(2)},
{"mkdirAll", new(Params), &BindMountOp{
Source: MustAbs("/bin/"),
Target: MustAbs("/bin/"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil),
}, nil, []stub.Call{
- {"stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, stub.UniqueError(1)},
+ call("stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, stub.UniqueError(1)),
}, stub.UniqueError(1)},
{"bindMount", new(Params), &BindMountOp{
Source: MustAbs("/bin/"),
Target: MustAbs("/bin/"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil),
}, nil, []stub.Call{
- {"stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/usr/bin", "/sysroot/bin", uintptr(0x4005), false}, nil, stub.UniqueError(0)},
+ call("stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/usr/bin", "/sysroot/bin", uintptr(0x4005), false}, nil, stub.UniqueError(0)),
}, stub.UniqueError(0)},
{"success", new(Params), &BindMountOp{
Source: MustAbs("/bin/"),
Target: MustAbs("/bin/"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/bin/"}, "/usr/bin", nil),
}, nil, []stub.Call{
- {"stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil},
- {"mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/usr/bin", "/sysroot/bin", uintptr(0x4005), false}, nil, nil},
+ call("stat", stub.ExpectArgs{"/host/usr/bin"}, isDirFi(true), nil),
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/bin", os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/usr/bin", "/sysroot/bin", uintptr(0x4005), false}, nil, nil),
}, nil},
})
diff --git a/container/initdev_test.go b/container/initdev_test.go
index e3cc9d50..5613d5d4 100644
--- a/container/initdev_test.go
+++ b/container/initdev_test.go
@@ -13,545 +13,545 @@ func TestMountDevOp(t *testing.T) {
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, stub.UniqueError(27)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, stub.UniqueError(27)),
}, stub.UniqueError(27)},
{"ensureFile null", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(26)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(26)),
}, stub.UniqueError(26)},
{"bindMount null", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, stub.UniqueError(25)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, stub.UniqueError(25)),
}, stub.UniqueError(25)},
{"ensureFile zero", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(24)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(24)),
}, stub.UniqueError(24)},
{"bindMount zero", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, stub.UniqueError(23)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, stub.UniqueError(23)),
}, stub.UniqueError(23)},
{"ensureFile full", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(22)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(22)),
}, stub.UniqueError(22)},
{"bindMount full", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, stub.UniqueError(21)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, stub.UniqueError(21)),
}, stub.UniqueError(21)},
{"ensureFile random", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(20)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(20)),
}, stub.UniqueError(20)},
{"bindMount random", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, stub.UniqueError(19)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, stub.UniqueError(19)),
}, stub.UniqueError(19)},
{"ensureFile urandom", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(18)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(18)),
}, stub.UniqueError(18)},
{"bindMount urandom", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, stub.UniqueError(17)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, stub.UniqueError(17)),
}, stub.UniqueError(17)},
{"ensureFile tty", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(16)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(16)),
}, stub.UniqueError(16)},
{"bindMount tty", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, stub.UniqueError(15)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, stub.UniqueError(15)),
}, stub.UniqueError(15)},
{"symlink stdin", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, stub.UniqueError(14)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, stub.UniqueError(14)),
}, stub.UniqueError(14)},
{"symlink stdout", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, stub.UniqueError(13)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, stub.UniqueError(13)),
}, stub.UniqueError(13)},
{"symlink stderr", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, stub.UniqueError(12)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, stub.UniqueError(12)),
}, stub.UniqueError(12)},
{"symlink fd", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, stub.UniqueError(11)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, stub.UniqueError(11)),
}, stub.UniqueError(11)},
{"symlink kcore", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, stub.UniqueError(10)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, stub.UniqueError(10)),
}, stub.UniqueError(10)},
{"symlink ptmx", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, stub.UniqueError(9)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, stub.UniqueError(9)),
}, stub.UniqueError(9)},
{"mkdir shm", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, stub.UniqueError(8)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, stub.UniqueError(8)),
}, stub.UniqueError(8)},
{"mkdir devpts", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, stub.UniqueError(7)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, stub.UniqueError(7)),
}, stub.UniqueError(7)},
{"mount devpts", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, stub.UniqueError(6)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, stub.UniqueError(6)),
}, stub.UniqueError(6)},
{"ensureFile stdout", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil},
- {"isatty", stub.ExpectArgs{1}, true, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(5)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil),
+ call("isatty", stub.ExpectArgs{1}, true, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, stub.UniqueError(5)),
}, stub.UniqueError(5)},
{"readlink stdout", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil},
- {"isatty", stub.ExpectArgs{1}, true, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "", stub.UniqueError(4)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil),
+ call("isatty", stub.ExpectArgs{1}, true, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "", stub.UniqueError(4)),
}, stub.UniqueError(4)},
{"bindMount stdout", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil},
- {"isatty", stub.ExpectArgs{1}, true, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, stub.UniqueError(3)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil),
+ call("isatty", stub.ExpectArgs{1}, true, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, stub.UniqueError(3)),
}, stub.UniqueError(3)},
{"mkdir mqueue", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil},
- {"isatty", stub.ExpectArgs{1}, true, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0750)}, nil, stub.UniqueError(2)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil),
+ call("isatty", stub.ExpectArgs{1}, true, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0750)}, nil, stub.UniqueError(2)),
}, stub.UniqueError(2)},
{"mount mqueue", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil},
- {"isatty", stub.ExpectArgs{1}, true, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"mqueue", "/sysroot/dev/mqueue", "mqueue", uintptr(0xe), ""}, nil, stub.UniqueError(1)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil),
+ call("isatty", stub.ExpectArgs{1}, true, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"mqueue", "/sysroot/dev/mqueue", "mqueue", uintptr(0xe), ""}, nil, stub.UniqueError(1)),
}, stub.UniqueError(1)},
{"success no session", &Params{ParentPerm: 0755}, &MountDevOp{
@@ -559,30 +559,30 @@ func TestMountDevOp(t *testing.T) {
Mqueue: true,
Write: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0755)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0755)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0755)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0755)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0755)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0755)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0755)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0755)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"mqueue", "/sysroot/dev/mqueue", "mqueue", uintptr(0xe), ""}, nil, nil},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0755)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0755)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0755)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0755)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0755)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0755)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0755)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0755)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"mqueue", "/sysroot/dev/mqueue", "mqueue", uintptr(0xe), ""}, nil, nil),
}, nil},
{"success no tty", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
@@ -590,96 +590,96 @@ func TestMountDevOp(t *testing.T) {
Mqueue: true,
Write: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil},
- {"isatty", stub.ExpectArgs{1}, false, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"mqueue", "/sysroot/dev/mqueue", "mqueue", uintptr(0xe), ""}, nil, nil},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil),
+ call("isatty", stub.ExpectArgs{1}, false, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"mqueue", "/sysroot/dev/mqueue", "mqueue", uintptr(0xe), ""}, nil, nil),
}, nil},
{"remount", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil},
- {"isatty", stub.ExpectArgs{1}, true, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil},
- {"remount", stub.ExpectArgs{"/sysroot/dev", uintptr(1)}, nil, stub.UniqueError(0)},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil),
+ call("isatty", stub.ExpectArgs{1}, true, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil),
+ call("remount", stub.ExpectArgs{"/sysroot/dev", uintptr(1)}, nil, stub.UniqueError(0)),
}, stub.UniqueError(0)},
{"success no mqueue", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil},
- {"isatty", stub.ExpectArgs{1}, true, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil},
- {"remount", stub.ExpectArgs{"/sysroot/dev", uintptr(1)}, nil, nil},
- {"mountTmpfs", stub.ExpectArgs{"tmpfs", "/sysroot/dev/shm", uintptr(0x6), 0, os.FileMode(01777)}, nil, nil},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil),
+ call("isatty", stub.ExpectArgs{1}, true, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil),
+ call("remount", stub.ExpectArgs{"/sysroot/dev", uintptr(1)}, nil, nil),
+ call("mountTmpfs", stub.ExpectArgs{"tmpfs", "/sysroot/dev/shm", uintptr(0x6), 0, os.FileMode(01777)}, nil, nil),
}, nil},
{"success rw", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
@@ -687,70 +687,70 @@ func TestMountDevOp(t *testing.T) {
Mqueue: true,
Write: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil},
- {"isatty", stub.ExpectArgs{1}, true, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"mqueue", "/sysroot/dev/mqueue", "mqueue", uintptr(0xe), ""}, nil, nil},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil),
+ call("isatty", stub.ExpectArgs{1}, true, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"mqueue", "/sysroot/dev/mqueue", "mqueue", uintptr(0xe), ""}, nil, nil),
}, nil},
{"success", &Params{ParentPerm: 0750, RetainSession: true}, &MountDevOp{
Target: MustAbs("/dev/"),
Mqueue: true,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil},
- {"symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil},
- {"isatty", stub.ExpectArgs{1}, true, nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil},
- {"bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil},
- {"mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"mqueue", "/sysroot/dev/mqueue", "mqueue", uintptr(0xe), ""}, nil, nil},
- {"remount", stub.ExpectArgs{"/sysroot/dev", uintptr(1)}, nil, nil},
- {"mountTmpfs", stub.ExpectArgs{"tmpfs", "/sysroot/dev/shm", uintptr(0x6), 0, os.FileMode(01777)}, nil, nil},
+ call("mountTmpfs", stub.ExpectArgs{"devtmpfs", "/sysroot/dev", uintptr(0x6), 0, os.FileMode(0750)}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/null", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/null", "/sysroot/dev/null", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/zero", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/zero", "/sysroot/dev/zero", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/full", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/full", "/sysroot/dev/full", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/random", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/random", "/sysroot/dev/random", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/urandom", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/urandom", "/sysroot/dev/urandom", uintptr(0), true}, nil, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/tty", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/tty", "/sysroot/dev/tty", uintptr(0), true}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/0", "/sysroot/dev/stdin"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/1", "/sysroot/dev/stdout"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd/2", "/sysroot/dev/stderr"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/self/fd", "/sysroot/dev/fd"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/kcore", "/sysroot/dev/core"}, nil, nil),
+ call("symlink", stub.ExpectArgs{"pts/ptmx", "/sysroot/dev/ptmx"}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/shm", os.FileMode(0750)}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/pts", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"devpts", "/sysroot/dev/pts", "devpts", uintptr(0xa), "newinstance,ptmxmode=0666,mode=620"}, nil, nil),
+ call("isatty", stub.ExpectArgs{1}, true, nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/dev/console", os.FileMode(0444), os.FileMode(0750)}, nil, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/1"}, "/dev/pts/2", nil),
+ call("bindMount", stub.ExpectArgs{"/host/dev/pts/2", "/sysroot/dev/console", uintptr(0), false}, nil, nil),
+ call("mkdir", stub.ExpectArgs{"/sysroot/dev/mqueue", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"mqueue", "/sysroot/dev/mqueue", "mqueue", uintptr(0xe), ""}, nil, nil),
+ call("remount", stub.ExpectArgs{"/sysroot/dev", uintptr(1)}, nil, nil),
+ call("mountTmpfs", stub.ExpectArgs{"tmpfs", "/sysroot/dev/shm", uintptr(0x6), 0, os.FileMode(01777)}, nil, nil),
}, nil},
})
diff --git a/container/initmkdir_test.go b/container/initmkdir_test.go
index 1a8a8f15..0d3f302a 100644
--- a/container/initmkdir_test.go
+++ b/container/initmkdir_test.go
@@ -13,7 +13,7 @@ func TestMkdirOp(t *testing.T) {
Path: MustAbs("/.hakurei"),
Perm: 0500,
}, nil, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/.hakurei", os.FileMode(0500)}, nil, nil},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/.hakurei", os.FileMode(0500)}, nil, nil),
}, nil},
})
diff --git a/container/initoverlay_test.go b/container/initoverlay_test.go
index 43060994..d44aa282 100644
--- a/container/initoverlay_test.go
+++ b/container/initoverlay_test.go
@@ -54,11 +54,11 @@ func TestMountOverlayOp(t *testing.T) {
},
Upper: MustAbs("/"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052"}, "/var/lib/planterette/base/debian:f92c9052", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052"}, "/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052"}, "/var/lib/planterette/base/debian:f92c9052", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052"}, "/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0705)}, nil, nil},
- {"mkdirTemp", stub.ExpectArgs{"/", "overlay.upper.*"}, "overlay.upper.32768", stub.UniqueError(6)},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0705)}, nil, nil),
+ call("mkdirTemp", stub.ExpectArgs{"/", "overlay.upper.*"}, "overlay.upper.32768", stub.UniqueError(6)),
}, stub.UniqueError(6)},
{"mkdirTemp work ephemeral", &Params{ParentPerm: 0705}, &MountOverlayOp{
@@ -69,12 +69,12 @@ func TestMountOverlayOp(t *testing.T) {
},
Upper: MustAbs("/"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052"}, "/var/lib/planterette/base/debian:f92c9052", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052"}, "/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052"}, "/var/lib/planterette/base/debian:f92c9052", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052"}, "/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0705)}, nil, nil},
- {"mkdirTemp", stub.ExpectArgs{"/", "overlay.upper.*"}, "overlay.upper.32768", nil},
- {"mkdirTemp", stub.ExpectArgs{"/", "overlay.work.*"}, "overlay.work.32768", stub.UniqueError(5)},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0705)}, nil, nil),
+ call("mkdirTemp", stub.ExpectArgs{"/", "overlay.upper.*"}, "overlay.upper.32768", nil),
+ call("mkdirTemp", stub.ExpectArgs{"/", "overlay.work.*"}, "overlay.work.32768", stub.UniqueError(5)),
}, stub.UniqueError(5)},
{"success ephemeral", &Params{ParentPerm: 0705}, &MountOverlayOp{
@@ -85,19 +85,19 @@ func TestMountOverlayOp(t *testing.T) {
},
Upper: MustAbs("/"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052"}, "/var/lib/planterette/base/debian:f92c9052", nil},
- {"evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052"}, "/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/base/debian:f92c9052"}, "/var/lib/planterette/base/debian:f92c9052", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052"}, "/var/lib/planterette/app/org.chromium.Chromium@debian:f92c9052", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0705)}, nil, nil},
- {"mkdirTemp", stub.ExpectArgs{"/", "overlay.upper.*"}, "overlay.upper.32768", nil},
- {"mkdirTemp", stub.ExpectArgs{"/", "overlay.work.*"}, "overlay.work.32768", nil},
- {"mount", stub.ExpectArgs{"overlay", "/sysroot", "overlay", uintptr(0), "" +
+ call("mkdirAll", stub.ExpectArgs{"/sysroot", os.FileMode(0705)}, nil, nil),
+ call("mkdirTemp", stub.ExpectArgs{"/", "overlay.upper.*"}, "overlay.upper.32768", nil),
+ call("mkdirTemp", stub.ExpectArgs{"/", "overlay.work.*"}, "overlay.work.32768", nil),
+ call("mount", stub.ExpectArgs{"overlay", "/sysroot", "overlay", uintptr(0), "" +
"upperdir=overlay.upper.32768," +
"workdir=overlay.work.32768," +
"lowerdir=" +
`/host/var/lib/planterette/base/debian\:f92c9052:` +
`/host/var/lib/planterette/app/org.chromium.Chromium@debian\:f92c9052,` +
- "userxattr"}, nil, nil},
+ "userxattr"}, nil, nil),
}, nil},
{"short lower ro", &Params{ParentPerm: 0755}, &MountOverlayOp{
@@ -106,9 +106,9 @@ func TestMountOverlayOp(t *testing.T) {
MustAbs("/mnt-root/nix/.ro-store"),
},
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/.ro-store", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/.ro-store", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0755)}, nil, nil},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0755)}, nil, nil),
}, &OverlayArgumentError{OverlayReadonlyLower, zeroString}},
{"success ro noPrefix", &Params{ParentPerm: 0755}, &MountOverlayOp{
@@ -119,15 +119,15 @@ func TestMountOverlayOp(t *testing.T) {
},
noPrefix: true,
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/.ro-store", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store0"}, "/mnt-root/nix/.ro-store0", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/.ro-store", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store0"}, "/mnt-root/nix/.ro-store0", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/nix/store", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"overlay", "/nix/store", "overlay", uintptr(0), "" +
+ call("mkdirAll", stub.ExpectArgs{"/nix/store", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"overlay", "/nix/store", "overlay", uintptr(0), "" +
"lowerdir=" +
"/host/mnt-root/nix/.ro-store:" +
"/host/mnt-root/nix/.ro-store0," +
- "userxattr"}, nil, nil},
+ "userxattr"}, nil, nil),
}, nil},
{"success ro", &Params{ParentPerm: 0755}, &MountOverlayOp{
@@ -137,15 +137,15 @@ func TestMountOverlayOp(t *testing.T) {
MustAbs("/mnt-root/nix/.ro-store0"),
},
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/.ro-store", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store0"}, "/mnt-root/nix/.ro-store0", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/.ro-store", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store0"}, "/mnt-root/nix/.ro-store0", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0755)}, nil, nil},
- {"mount", stub.ExpectArgs{"overlay", "/sysroot/nix/store", "overlay", uintptr(0), "" +
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0755)}, nil, nil),
+ call("mount", stub.ExpectArgs{"overlay", "/sysroot/nix/store", "overlay", uintptr(0), "" +
"lowerdir=" +
"/host/mnt-root/nix/.ro-store:" +
"/host/mnt-root/nix/.ro-store0," +
- "userxattr"}, nil, nil},
+ "userxattr"}, nil, nil),
}, nil},
{"nil lower", &Params{ParentPerm: 0700}, &MountOverlayOp{
@@ -153,10 +153,10 @@ func TestMountOverlayOp(t *testing.T) {
Upper: MustAbs("/mnt-root/nix/.rw-store/upper"),
Work: MustAbs("/mnt-root/nix/.rw-store/work"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0700)}, nil, nil},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0700)}, nil, nil),
}, &OverlayArgumentError{OverlayEmptyLower, zeroString}},
{"evalSymlinks upper", &Params{ParentPerm: 0700}, &MountOverlayOp{
@@ -165,7 +165,7 @@ func TestMountOverlayOp(t *testing.T) {
Upper: MustAbs("/mnt-root/nix/.rw-store/upper"),
Work: MustAbs("/mnt-root/nix/.rw-store/work"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", stub.UniqueError(4)},
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", stub.UniqueError(4)),
}, stub.UniqueError(4), nil, nil},
{"evalSymlinks work", &Params{ParentPerm: 0700}, &MountOverlayOp{
@@ -174,8 +174,8 @@ func TestMountOverlayOp(t *testing.T) {
Upper: MustAbs("/mnt-root/nix/.rw-store/upper"),
Work: MustAbs("/mnt-root/nix/.rw-store/work"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", stub.UniqueError(3)},
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", stub.UniqueError(3)),
}, stub.UniqueError(3), nil, nil},
{"evalSymlinks lower", &Params{ParentPerm: 0700}, &MountOverlayOp{
@@ -184,9 +184,9 @@ func TestMountOverlayOp(t *testing.T) {
Upper: MustAbs("/mnt-root/nix/.rw-store/upper"),
Work: MustAbs("/mnt-root/nix/.rw-store/work"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/ro-store", stub.UniqueError(2)},
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/ro-store", stub.UniqueError(2)),
}, stub.UniqueError(2), nil, nil},
{"mkdirAll", &Params{ParentPerm: 0700}, &MountOverlayOp{
@@ -195,11 +195,11 @@ func TestMountOverlayOp(t *testing.T) {
Upper: MustAbs("/mnt-root/nix/.rw-store/upper"),
Work: MustAbs("/mnt-root/nix/.rw-store/work"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/ro-store", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/ro-store", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0700)}, nil, stub.UniqueError(1)},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0700)}, nil, stub.UniqueError(1)),
}, stub.UniqueError(1)},
{"mount", &Params{ParentPerm: 0700}, &MountOverlayOp{
@@ -208,12 +208,12 @@ func TestMountOverlayOp(t *testing.T) {
Upper: MustAbs("/mnt-root/nix/.rw-store/upper"),
Work: MustAbs("/mnt-root/nix/.rw-store/work"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/ro-store", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/ro-store", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0700)}, nil, nil},
- {"mount", stub.ExpectArgs{"overlay", "/sysroot/nix/store", "overlay", uintptr(0), "upperdir=/host/mnt-root/nix/.rw-store/.upper,workdir=/host/mnt-root/nix/.rw-store/.work,lowerdir=/host/mnt-root/nix/ro-store,userxattr"}, nil, stub.UniqueError(0)},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0700)}, nil, nil),
+ call("mount", stub.ExpectArgs{"overlay", "/sysroot/nix/store", "overlay", uintptr(0), "upperdir=/host/mnt-root/nix/.rw-store/.upper,workdir=/host/mnt-root/nix/.rw-store/.work,lowerdir=/host/mnt-root/nix/ro-store,userxattr"}, nil, stub.UniqueError(0)),
}, stub.UniqueError(0)},
{"success single layer", &Params{ParentPerm: 0700}, &MountOverlayOp{
@@ -222,16 +222,16 @@ func TestMountOverlayOp(t *testing.T) {
Upper: MustAbs("/mnt-root/nix/.rw-store/upper"),
Work: MustAbs("/mnt-root/nix/.rw-store/work"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/ro-store", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/ro-store", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0700)}, nil, nil},
- {"mount", stub.ExpectArgs{"overlay", "/sysroot/nix/store", "overlay", uintptr(0), "" +
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0700)}, nil, nil),
+ call("mount", stub.ExpectArgs{"overlay", "/sysroot/nix/store", "overlay", uintptr(0), "" +
"upperdir=/host/mnt-root/nix/.rw-store/.upper," +
"workdir=/host/mnt-root/nix/.rw-store/.work," +
"lowerdir=/host/mnt-root/nix/ro-store," +
- "userxattr"}, nil, nil},
+ "userxattr"}, nil, nil),
}, nil},
{"success", &Params{ParentPerm: 0700}, &MountOverlayOp{
@@ -246,16 +246,16 @@ func TestMountOverlayOp(t *testing.T) {
Upper: MustAbs("/mnt-root/nix/.rw-store/upper"),
Work: MustAbs("/mnt-root/nix/.rw-store/work"),
}, []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/ro-store", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store0"}, "/mnt-root/nix/ro-store0", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store1"}, "/mnt-root/nix/ro-store1", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store2"}, "/mnt-root/nix/ro-store2", nil},
- {"evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store3"}, "/mnt-root/nix/ro-store3", nil},
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/upper"}, "/mnt-root/nix/.rw-store/.upper", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.rw-store/work"}, "/mnt-root/nix/.rw-store/.work", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store"}, "/mnt-root/nix/ro-store", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store0"}, "/mnt-root/nix/ro-store0", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store1"}, "/mnt-root/nix/ro-store1", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store2"}, "/mnt-root/nix/ro-store2", nil),
+ call("evalSymlinks", stub.ExpectArgs{"/mnt-root/nix/.ro-store3"}, "/mnt-root/nix/ro-store3", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0700)}, nil, nil},
- {"mount", stub.ExpectArgs{"overlay", "/sysroot/nix/store", "overlay", uintptr(0), "" +
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/nix/store", os.FileMode(0700)}, nil, nil),
+ call("mount", stub.ExpectArgs{"overlay", "/sysroot/nix/store", "overlay", uintptr(0), "" +
"upperdir=/host/mnt-root/nix/.rw-store/.upper," +
"workdir=/host/mnt-root/nix/.rw-store/.work," +
"lowerdir=" +
@@ -264,7 +264,7 @@ func TestMountOverlayOp(t *testing.T) {
"/host/mnt-root/nix/ro-store1:" +
"/host/mnt-root/nix/ro-store2:" +
"/host/mnt-root/nix/ro-store3," +
- "userxattr"}, nil, nil},
+ "userxattr"}, nil, nil),
}, nil},
})
diff --git a/container/initplace_test.go b/container/initplace_test.go
index 9970352f..e8ee6957 100644
--- a/container/initplace_test.go
+++ b/container/initplace_test.go
@@ -19,58 +19,58 @@ func TestTmpfileOp(t *testing.T) {
Path: samplePath,
Data: sampleData,
}, nil, nil, []stub.Call{
- {"createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, nil), stub.UniqueError(5)},
+ call("createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, nil), stub.UniqueError(5)),
}, stub.UniqueError(5)},
{"Write", &Params{ParentPerm: 0700}, &TmpfileOp{
Path: samplePath,
Data: sampleData,
}, nil, nil, []stub.Call{
- {"createTemp", stub.ExpectArgs{"/", "tmp.*"}, writeErrOsFile{stub.UniqueError(4)}, nil},
+ call("createTemp", stub.ExpectArgs{"/", "tmp.*"}, writeErrOsFile{stub.UniqueError(4)}, nil),
}, stub.UniqueError(4)},
{"Close", &Params{ParentPerm: 0700}, &TmpfileOp{
Path: samplePath,
Data: sampleData,
}, nil, nil, []stub.Call{
- {"createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, stub.UniqueError(3)), nil},
+ call("createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, stub.UniqueError(3)), nil),
}, stub.UniqueError(3)},
{"ensureFile", &Params{ParentPerm: 0700}, &TmpfileOp{
Path: samplePath,
Data: sampleData,
}, nil, nil, []stub.Call{
- {"createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, nil), nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/etc/passwd", os.FileMode(0444), os.FileMode(0700)}, nil, stub.UniqueError(2)},
+ call("createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, nil), nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/etc/passwd", os.FileMode(0444), os.FileMode(0700)}, nil, stub.UniqueError(2)),
}, stub.UniqueError(2)},
{"bindMount", &Params{ParentPerm: 0700}, &TmpfileOp{
Path: samplePath,
Data: sampleData,
}, nil, nil, []stub.Call{
- {"createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, nil), nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/etc/passwd", os.FileMode(0444), os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"tmp.32768", "/sysroot/etc/passwd", uintptr(0x5), false}, nil, stub.UniqueError(1)},
+ call("createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, nil), nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/etc/passwd", os.FileMode(0444), os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"tmp.32768", "/sysroot/etc/passwd", uintptr(0x5), false}, nil, stub.UniqueError(1)),
}, stub.UniqueError(1)},
{"remove", &Params{ParentPerm: 0700}, &TmpfileOp{
Path: samplePath,
Data: sampleData,
}, nil, nil, []stub.Call{
- {"createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, nil), nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/etc/passwd", os.FileMode(0444), os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"tmp.32768", "/sysroot/etc/passwd", uintptr(0x5), false}, nil, nil},
- {"remove", stub.ExpectArgs{"tmp.32768"}, nil, stub.UniqueError(0)},
+ call("createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, nil), nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/etc/passwd", os.FileMode(0444), os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"tmp.32768", "/sysroot/etc/passwd", uintptr(0x5), false}, nil, nil),
+ call("remove", stub.ExpectArgs{"tmp.32768"}, nil, stub.UniqueError(0)),
}, stub.UniqueError(0)},
{"success", &Params{ParentPerm: 0700}, &TmpfileOp{
Path: samplePath,
Data: sampleData,
}, nil, nil, []stub.Call{
- {"createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, nil), nil},
- {"ensureFile", stub.ExpectArgs{"/sysroot/etc/passwd", os.FileMode(0444), os.FileMode(0700)}, nil, nil},
- {"bindMount", stub.ExpectArgs{"tmp.32768", "/sysroot/etc/passwd", uintptr(0x5), false}, nil, nil},
- {"remove", stub.ExpectArgs{"tmp.32768"}, nil, nil},
+ call("createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, nil), nil),
+ call("ensureFile", stub.ExpectArgs{"/sysroot/etc/passwd", os.FileMode(0444), os.FileMode(0700)}, nil, nil),
+ call("bindMount", stub.ExpectArgs{"tmp.32768", "/sysroot/etc/passwd", uintptr(0x5), false}, nil, nil),
+ call("remove", stub.ExpectArgs{"tmp.32768"}, nil, nil),
}, nil},
})
diff --git a/container/initproc_test.go b/container/initproc_test.go
index ee48e61b..48915e0a 100644
--- a/container/initproc_test.go
+++ b/container/initproc_test.go
@@ -13,15 +13,15 @@ func TestMountProcOp(t *testing.T) {
&MountProcOp{
Target: MustAbs("/proc/"),
}, nil, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, stub.UniqueError(0)},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0755)}, nil, stub.UniqueError(0)),
}, stub.UniqueError(0)},
{"success", &Params{ParentPerm: 0700},
&MountProcOp{
Target: MustAbs("/proc/"),
}, nil, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0700)}, nil, nil},
- {"mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/proc", os.FileMode(0700)}, nil, nil),
+ call("mount", stub.ExpectArgs{"proc", "/sysroot/proc", "proc", uintptr(0xe), ""}, nil, nil),
}, nil},
})
diff --git a/container/initremount_test.go b/container/initremount_test.go
index 4fb60e18..32a0e8c6 100644
--- a/container/initremount_test.go
+++ b/container/initremount_test.go
@@ -13,7 +13,7 @@ func TestRemountOp(t *testing.T) {
Target: MustAbs("/"),
Flags: syscall.MS_RDONLY,
}, nil, nil, []stub.Call{
- {"remount", stub.ExpectArgs{"/sysroot", uintptr(1)}, nil, nil},
+ call("remount", stub.ExpectArgs{"/sysroot", uintptr(1)}, nil, nil),
}, nil},
})
diff --git a/container/initsymlink_test.go b/container/initsymlink_test.go
index 8e94ead5..f90670e6 100644
--- a/container/initsymlink_test.go
+++ b/container/initsymlink_test.go
@@ -13,7 +13,7 @@ func TestSymlinkOp(t *testing.T) {
Target: MustAbs("/etc/nixos"),
LinkName: "/etc/static/nixos",
}, nil, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/etc", os.FileMode(0700)}, nil, stub.UniqueError(1)},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/etc", os.FileMode(0700)}, nil, stub.UniqueError(1)),
}, stub.UniqueError(1)},
{"abs", &Params{ParentPerm: 0755}, &SymlinkOp{
@@ -27,15 +27,15 @@ func TestSymlinkOp(t *testing.T) {
LinkName: "/etc/mtab",
Dereference: true,
}, []stub.Call{
- {"readlink", stub.ExpectArgs{"/etc/mtab"}, "/proc/mounts", stub.UniqueError(0)},
+ call("readlink", stub.ExpectArgs{"/etc/mtab"}, "/proc/mounts", stub.UniqueError(0)),
}, stub.UniqueError(0), nil, nil},
{"success noderef", &Params{ParentPerm: 0700}, &SymlinkOp{
Target: MustAbs("/etc/nixos"),
LinkName: "/etc/static/nixos",
}, nil, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/etc", os.FileMode(0700)}, nil, nil},
- {"symlink", stub.ExpectArgs{"/etc/static/nixos", "/sysroot/etc/nixos"}, nil, nil},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/etc", os.FileMode(0700)}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/etc/static/nixos", "/sysroot/etc/nixos"}, nil, nil),
}, nil},
{"success", &Params{ParentPerm: 0755}, &SymlinkOp{
@@ -43,10 +43,10 @@ func TestSymlinkOp(t *testing.T) {
LinkName: "/etc/mtab",
Dereference: true,
}, []stub.Call{
- {"readlink", stub.ExpectArgs{"/etc/mtab"}, "/proc/mounts", nil},
+ call("readlink", stub.ExpectArgs{"/etc/mtab"}, "/proc/mounts", nil),
}, nil, []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/etc", os.FileMode(0755)}, nil, nil},
- {"symlink", stub.ExpectArgs{"/proc/mounts", "/sysroot/etc/mtab"}, nil, nil},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/etc", os.FileMode(0755)}, nil, nil),
+ call("symlink", stub.ExpectArgs{"/proc/mounts", "/sysroot/etc/mtab"}, nil, nil),
}, nil},
})
diff --git a/container/inittmpfs_test.go b/container/inittmpfs_test.go
index cbe76056..9278ee78 100644
--- a/container/inittmpfs_test.go
+++ b/container/inittmpfs_test.go
@@ -28,13 +28,13 @@ func TestMountTmpfsOp(t *testing.T) {
Size: 1 << 10,
Perm: 0700,
}, nil, nil, []stub.Call{
- {"mountTmpfs", stub.ExpectArgs{
+ call("mountTmpfs", stub.ExpectArgs{
"ephemeral", // fsname
"/sysroot/run/user/1000", // target
uintptr(0), // flags
0x400, // size
os.FileMode(0700), // perm
- }, nil, nil},
+ }, nil, nil),
}, nil},
})
diff --git a/container/mount_test.go b/container/mount_test.go
index 76eaad3a..4bb024bf 100644
--- a/container/mount_test.go
+++ b/container/mount_test.go
@@ -14,24 +14,24 @@ func TestBindMount(t *testing.T) {
{"mount", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).bindMount("/host/nix", "/sysroot/nix", syscall.MS_RDONLY, true)
}, stub.Expect{Calls: []stub.Call{
- {"verbosef", stub.ExpectArgs{"resolved %q flags %#x", []any{"/sysroot/nix", uintptr(1)}}, nil, nil},
- {"mount", stub.ExpectArgs{"/host/nix", "/sysroot/nix", "", uintptr(0x9000), ""}, nil, stub.UniqueError(0xbad)},
+ call("verbosef", stub.ExpectArgs{"resolved %q flags %#x", []any{"/sysroot/nix", uintptr(1)}}, nil, nil),
+ call("mount", stub.ExpectArgs{"/host/nix", "/sysroot/nix", "", uintptr(0x9000), ""}, nil, stub.UniqueError(0xbad)),
}}, stub.UniqueError(0xbad)},
{"success ne", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).bindMount("/host/nix", "/sysroot/.host-nix", syscall.MS_RDONLY, false)
}, stub.Expect{Calls: []stub.Call{
- {"verbosef", stub.ExpectArgs{"resolved %q on %q flags %#x", []any{"/host/nix", "/sysroot/.host-nix", uintptr(1)}}, nil, nil},
- {"mount", stub.ExpectArgs{"/host/nix", "/sysroot/.host-nix", "", uintptr(0x9000), ""}, nil, nil},
- {"remount", stub.ExpectArgs{"/sysroot/.host-nix", uintptr(1)}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"resolved %q on %q flags %#x", []any{"/host/nix", "/sysroot/.host-nix", uintptr(1)}}, nil, nil),
+ call("mount", stub.ExpectArgs{"/host/nix", "/sysroot/.host-nix", "", uintptr(0x9000), ""}, nil, nil),
+ call("remount", stub.ExpectArgs{"/sysroot/.host-nix", uintptr(1)}, nil, nil),
}}, nil},
{"success", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).bindMount("/host/nix", "/sysroot/nix", syscall.MS_RDONLY, true)
}, stub.Expect{Calls: []stub.Call{
- {"verbosef", stub.ExpectArgs{"resolved %q flags %#x", []any{"/sysroot/nix", uintptr(1)}}, nil, nil},
- {"mount", stub.ExpectArgs{"/host/nix", "/sysroot/nix", "", uintptr(0x9000), ""}, nil, nil},
- {"remount", stub.ExpectArgs{"/sysroot/nix", uintptr(1)}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"resolved %q flags %#x", []any{"/sysroot/nix", uintptr(1)}}, nil, nil),
+ call("mount", stub.ExpectArgs{"/host/nix", "/sysroot/nix", "", uintptr(0x9000), ""}, nil, nil),
+ call("remount", stub.ExpectArgs{"/sysroot/nix", uintptr(1)}, nil, nil),
}}, nil},
})
}
@@ -83,137 +83,137 @@ func TestRemount(t *testing.T) {
{"evalSymlinks", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/nix", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", stub.UniqueError(6)},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", stub.UniqueError(6)),
}}, stub.UniqueError(6)},
{"open", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/nix", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil},
- {"open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, stub.UniqueError(5)},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil),
+ call("open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, stub.UniqueError(5)),
}}, &os.PathError{Op: "open", Path: "/sysroot/nix", Err: stub.UniqueError(5)}},
{"readlink", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/nix", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil},
- {"open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", stub.UniqueError(4)},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil),
+ call("open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", stub.UniqueError(4)),
}}, stub.UniqueError(4)},
{"close", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/nix", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil},
- {"open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil},
- {"close", stub.ExpectArgs{0xdeadbeef}, nil, stub.UniqueError(3)},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil),
+ call("open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil),
+ call("close", stub.ExpectArgs{0xdeadbeef}, nil, stub.UniqueError(3)),
}}, &os.PathError{Op: "close", Path: "/sysroot/nix", Err: stub.UniqueError(3)}},
{"mountinfo no match", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/nix", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/.hakurei", nil},
- {"verbosef", stub.ExpectArgs{"target resolves to %q", []any{"/sysroot/.hakurei"}}, nil, nil},
- {"open", stub.ExpectArgs{"/sysroot/.hakurei", 0x280000, uint32(0)}, 0xdeadbeef, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/.hakurei", nil},
- {"close", stub.ExpectArgs{0xdeadbeef}, nil, nil},
- {"openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/.hakurei", nil),
+ call("verbosef", stub.ExpectArgs{"target resolves to %q", []any{"/sysroot/.hakurei"}}, nil, nil),
+ call("open", stub.ExpectArgs{"/sysroot/.hakurei", 0x280000, uint32(0)}, 0xdeadbeef, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/.hakurei", nil),
+ call("close", stub.ExpectArgs{0xdeadbeef}, nil, nil),
+ call("openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil),
}}, &vfs.DecoderError{Op: "unfold", Line: -1, Err: vfs.UnfoldTargetError("/sysroot/.hakurei")}},
{"mountinfo", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/nix", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil},
- {"open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil},
- {"close", stub.ExpectArgs{0xdeadbeef}, nil, nil},
- {"openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile("\x00"), nil},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil),
+ call("open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil),
+ call("close", stub.ExpectArgs{0xdeadbeef}, nil, nil),
+ call("openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile("\x00"), nil),
}}, &vfs.DecoderError{Op: "parse", Line: 0, Err: vfs.ErrMountInfoFields}},
{"mount", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/nix", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil},
- {"open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil},
- {"close", stub.ExpectArgs{0xdeadbeef}, nil, nil},
- {"openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, stub.UniqueError(2)},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil),
+ call("open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil),
+ call("close", stub.ExpectArgs{0xdeadbeef}, nil, nil),
+ call("openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, stub.UniqueError(2)),
}}, stub.UniqueError(2)},
{"mount propagate", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/nix", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil},
- {"open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil},
- {"close", stub.ExpectArgs{0xdeadbeef}, nil, nil},
- {"openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix/.ro-store", "", uintptr(0x209027), ""}, nil, stub.UniqueError(1)},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil),
+ call("open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil),
+ call("close", stub.ExpectArgs{0xdeadbeef}, nil, nil),
+ call("openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix/.ro-store", "", uintptr(0x209027), ""}, nil, stub.UniqueError(1)),
}}, stub.UniqueError(1)},
{"success toplevel", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/bin", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/bin"}, "/sysroot/bin", nil},
- {"open", stub.ExpectArgs{"/sysroot/bin", 0x280000, uint32(0)}, 0xbabe, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/47806"}, "/sysroot/bin", nil},
- {"close", stub.ExpectArgs{0xbabe}, nil, nil},
- {"openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/bin", "", uintptr(0x209027), ""}, nil, nil},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/bin"}, "/sysroot/bin", nil),
+ call("open", stub.ExpectArgs{"/sysroot/bin", 0x280000, uint32(0)}, 0xbabe, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/47806"}, "/sysroot/bin", nil),
+ call("close", stub.ExpectArgs{0xbabe}, nil, nil),
+ call("openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/bin", "", uintptr(0x209027), ""}, nil, nil),
}}, nil},
{"success EACCES", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/nix", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil},
- {"open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil},
- {"close", stub.ExpectArgs{0xdeadbeef}, nil, nil},
- {"openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix/.ro-store", "", uintptr(0x209027), ""}, nil, syscall.EACCES},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix/store", "", uintptr(0x209027), ""}, nil, nil},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil),
+ call("open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil),
+ call("close", stub.ExpectArgs{0xdeadbeef}, nil, nil),
+ call("openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix/.ro-store", "", uintptr(0x209027), ""}, nil, syscall.EACCES),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix/store", "", uintptr(0x209027), ""}, nil, nil),
}}, nil},
{"success no propagate", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/nix", syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil},
- {"open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil},
- {"close", stub.ExpectArgs{0xdeadbeef}, nil, nil},
- {"openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, nil},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil),
+ call("open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil),
+ call("close", stub.ExpectArgs{0xdeadbeef}, nil, nil),
+ call("openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, nil),
}}, nil},
{"success case sensitive", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/nix", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil},
- {"open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil},
- {"close", stub.ExpectArgs{0xdeadbeef}, nil, nil},
- {"openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix/.ro-store", "", uintptr(0x209027), ""}, nil, nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix/store", "", uintptr(0x209027), ""}, nil, nil},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/nix"}, "/sysroot/nix", nil),
+ call("open", stub.ExpectArgs{"/sysroot/nix", 0x280000, uint32(0)}, 0xdeadbeef, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil),
+ call("close", stub.ExpectArgs{0xdeadbeef}, nil, nil),
+ call("openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix/.ro-store", "", uintptr(0x209027), ""}, nil, nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix/store", "", uintptr(0x209027), ""}, nil, nil),
}}, nil},
{"success", func(k syscallDispatcher) error {
return newProcPaths(k, hostPath).remount("/sysroot/.nix", syscall.MS_REC|syscall.MS_RDONLY|syscall.MS_NODEV)
}, stub.Expect{Calls: []stub.Call{
- {"evalSymlinks", stub.ExpectArgs{"/sysroot/.nix"}, "/sysroot/NIX", nil},
- {"verbosef", stub.ExpectArgs{"target resolves to %q", []any{"/sysroot/NIX"}}, nil, nil},
- {"open", stub.ExpectArgs{"/sysroot/NIX", 0x280000, uint32(0)}, 0xdeadbeef, nil},
- {"readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil},
- {"close", stub.ExpectArgs{0xdeadbeef}, nil, nil},
- {"openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix/.ro-store", "", uintptr(0x209027), ""}, nil, nil},
- {"mount", stub.ExpectArgs{"none", "/sysroot/nix/store", "", uintptr(0x209027), ""}, nil, nil},
+ call("evalSymlinks", stub.ExpectArgs{"/sysroot/.nix"}, "/sysroot/NIX", nil),
+ call("verbosef", stub.ExpectArgs{"target resolves to %q", []any{"/sysroot/NIX"}}, nil, nil),
+ call("open", stub.ExpectArgs{"/sysroot/NIX", 0x280000, uint32(0)}, 0xdeadbeef, nil),
+ call("readlink", stub.ExpectArgs{"/host/proc/self/fd/3735928559"}, "/sysroot/nix", nil),
+ call("close", stub.ExpectArgs{0xdeadbeef}, nil, nil),
+ call("openNew", stub.ExpectArgs{"/host/proc/self/mountinfo"}, newConstFile(sampleMountinfoNix), nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix", "", uintptr(0x209027), ""}, nil, nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix/.ro-store", "", uintptr(0x209027), ""}, nil, nil),
+ call("mount", stub.ExpectArgs{"none", "/sysroot/nix/store", "", uintptr(0x209027), ""}, nil, nil),
}}, nil},
})
}
@@ -223,7 +223,7 @@ func TestRemountWithFlags(t *testing.T) {
{"noop unmatched", func(k syscallDispatcher) error {
return remountWithFlags(k, &vfs.MountInfoNode{MountInfoEntry: &vfs.MountInfoEntry{VfsOptstr: "rw,relatime,cat"}}, 0)
}, stub.Expect{Calls: []stub.Call{
- {"verbosef", stub.ExpectArgs{"unmatched vfs options: %q", []any{[]string{"cat"}}}, nil, nil},
+ call("verbosef", stub.ExpectArgs{"unmatched vfs options: %q", []any{[]string{"cat"}}}, nil, nil),
}}, nil},
{"noop", func(k syscallDispatcher) error {
@@ -233,7 +233,7 @@ func TestRemountWithFlags(t *testing.T) {
{"success", func(k syscallDispatcher) error {
return remountWithFlags(k, &vfs.MountInfoNode{MountInfoEntry: &vfs.MountInfoEntry{VfsOptstr: "rw,relatime"}}, syscall.MS_RDONLY)
}, stub.Expect{Calls: []stub.Call{
- {"mount", stub.ExpectArgs{"none", "", "", uintptr(0x209021), ""}, nil, nil},
+ call("mount", stub.ExpectArgs{"none", "", "", uintptr(0x209021), ""}, nil, nil),
}}, nil},
})
}
@@ -243,21 +243,21 @@ func TestMountTmpfs(t *testing.T) {
{"mkdirAll", func(k syscallDispatcher) error {
return mountTmpfs(k, "ephemeral", "/sysroot/run/user/1000", 0, 1<<10, 0700)
}, stub.Expect{Calls: []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/run/user/1000", os.FileMode(0700)}, nil, stub.UniqueError(0)},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/run/user/1000", os.FileMode(0700)}, nil, stub.UniqueError(0)),
}}, stub.UniqueError(0)},
{"success no size", func(k syscallDispatcher) error {
return mountTmpfs(k, "ephemeral", "/sysroot/run/user/1000", 0, 0, 0710)
}, stub.Expect{Calls: []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/run/user/1000", os.FileMode(0750)}, nil, nil},
- {"mount", stub.ExpectArgs{"ephemeral", "/sysroot/run/user/1000", "tmpfs", uintptr(0), "mode=0710"}, nil, nil},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/run/user/1000", os.FileMode(0750)}, nil, nil),
+ call("mount", stub.ExpectArgs{"ephemeral", "/sysroot/run/user/1000", "tmpfs", uintptr(0), "mode=0710"}, nil, nil),
}}, nil},
{"success", func(k syscallDispatcher) error {
return mountTmpfs(k, "ephemeral", "/sysroot/run/user/1000", 0, 1<<10, 0700)
}, stub.Expect{Calls: []stub.Call{
- {"mkdirAll", stub.ExpectArgs{"/sysroot/run/user/1000", os.FileMode(0700)}, nil, nil},
- {"mount", stub.ExpectArgs{"ephemeral", "/sysroot/run/user/1000", "tmpfs", uintptr(0), "mode=0700,size=1024"}, nil, nil},
+ call("mkdirAll", stub.ExpectArgs{"/sysroot/run/user/1000", os.FileMode(0700)}, nil, nil),
+ call("mount", stub.ExpectArgs{"ephemeral", "/sysroot/run/user/1000", "tmpfs", uintptr(0), "mode=0700,size=1024"}, nil, nil),
}}, nil},
})
}
diff --git a/internal/app/seal.go b/internal/app/seal.go
index d6a23f2f..ec42dc2d 100644
--- a/internal/app/seal.go
+++ b/internal/app/seal.go
@@ -233,7 +233,7 @@ func (seal *Outcome) finalise(ctx context.Context, sys sys.State, config *hst.Co
Filesystem: []hst.FilesystemConfigJSON{
// autoroot, includes the home directory
- {&hst.FSBind{
+ {FilesystemConfig: &hst.FSBind{
Target: container.AbsFHSRoot,
Source: container.AbsFHSRoot,
Write: true,