mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
daemon/oci_linux_test: add TestIpcPrivateVsReadonly
The test case checks that in case of IpcMode: private and ReadonlyRootfs: true (as in "docker run --ipc private --read-only") the resulting /dev/shm mount is NOT made read-only. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
parent
0c01629e17
commit
33dd562e3a
1 changed files with 38 additions and 0 deletions
|
@ -48,3 +48,41 @@ func TestTmpfsDevShmNoDupMount(t *testing.T) {
|
||||||
err = setMounts(&d, &s, c, ms)
|
err = setMounts(&d, &s, c, ms)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TestIpcPrivateVsReadonly checks that in case of IpcMode: private
|
||||||
|
// and ReadonlyRootfs: true (as in "docker run --ipc private --read-only")
|
||||||
|
// the resulting /dev/shm mount is NOT made read-only.
|
||||||
|
// https://github.com/moby/moby/issues/36503
|
||||||
|
func TestIpcPrivateVsReadonly(t *testing.T) {
|
||||||
|
d := Daemon{
|
||||||
|
// some empty structs to avoid getting a panic
|
||||||
|
// caused by a null pointer dereference
|
||||||
|
idMappings: &idtools.IDMappings{},
|
||||||
|
configStore: &config.Config{},
|
||||||
|
}
|
||||||
|
c := &container.Container{
|
||||||
|
HostConfig: &containertypes.HostConfig{
|
||||||
|
IpcMode: containertypes.IpcMode("private"),
|
||||||
|
ReadonlyRootfs: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
// We can't call createSpec() so mimick the minimal part
|
||||||
|
// of its code flow, just enough to reproduce the issue.
|
||||||
|
ms, err := d.setupMounts(c)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
s := oci.DefaultSpec()
|
||||||
|
s.Root.Readonly = c.HostConfig.ReadonlyRootfs
|
||||||
|
|
||||||
|
err = setMounts(&d, &s, c, ms)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
// Find the /dev/shm mount in ms, check it does not have ro
|
||||||
|
for _, m := range s.Mounts {
|
||||||
|
if m.Destination != "/dev/shm" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
assert.Equal(t, false, inSlice(m.Options, "ro"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue