diff --git a/tests/integration/host-mntns.bats b/tests/integration/host-mntns.bats new file mode 100644 index 000000000..7907a5b9e --- /dev/null +++ b/tests/integration/host-mntns.bats @@ -0,0 +1,33 @@ +#!/usr/bin/env bats + +load helpers + +function setup() { + requires root + setup_busybox +} + +function teardown() { + [ ! -v ROOT ] && return 0 # nothing to teardown + + # XXX runc does not unmount a container which + # shares mount namespace with the host. + umount -R --lazy "$ROOT"/bundle/rootfs + + teardown_bundle +} + +@test "runc run [host mount ns + hooks]" { + update_config ' .process.args = ["/bin/echo", "Hello World"] + | .hooks |= . + {"createRuntime": [{"path": "/bin/sh", "args": ["/bin/sh", "-c", "touch createRuntimeHook.$$"]}]} + | .linux.namespaces -= [{"type": "mount"}] + | .linux.maskedPaths = [] + | .linux.readonlyPaths = []' + runc run test_host_mntns + [ "$status" -eq 0 ] + runc delete -f test_host_mntns + + # There should be one such file. + run -0 ls createRuntimeHook.* + [ "$(echo "$output" | wc -w)" -eq 1 ] +}