diff options
Diffstat (limited to 'container/inittmpfs_test.go')
| -rw-r--r-- | container/inittmpfs_test.go | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/container/inittmpfs_test.go b/container/inittmpfs_test.go new file mode 100644 index 00000000..c36820cd --- /dev/null +++ b/container/inittmpfs_test.go @@ -0,0 +1,134 @@ +package container + +import ( + "syscall" + "testing" +) + +func TestMountTmpfsOp(t *testing.T) { + checkOpsBuilder(t, []opsBuilderTestCase{ + {"runtime", new(Ops).Tmpfs( + MustAbs("/run/user"), + 1<<10, + 0755, + ), Ops{ + &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0755, + }, + }}, + + {"nscd", new(Ops).Readonly( + MustAbs("/var/run/nscd"), + 0755, + ), Ops{ + &MountTmpfsOp{ + FSName: "readonly", + Path: MustAbs("/var/run/nscd"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV | syscall.MS_RDONLY, + Perm: 0755, + }, + }}, + }) + + checkOpIs(t, []opIsTestCase{ + {"zero", new(MountTmpfsOp), new(MountTmpfsOp), false}, + + {"fsname differs", &MountTmpfsOp{ + FSName: "readonly", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0755, + }, &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0755, + }, false}, + + {"path differs", &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user/differs"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0755, + }, &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0755, + }, false}, + + {"flags differs", &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV | syscall.MS_RDONLY, + Size: 1 << 10, + Perm: 0755, + }, &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0755, + }, false}, + + {"size differs", &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1, + Perm: 0755, + }, &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0755, + }, false}, + + {"perm differs", &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0700, + }, &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0755, + }, false}, + + {"equals", &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0755, + }, &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0755, + }, true}, + }) + + checkOpMeta(t, []opMetaTestCase{ + {"runtime", &MountTmpfsOp{ + FSName: "ephemeral", + Path: MustAbs("/run/user"), + Flags: syscall.MS_NOSUID | syscall.MS_NODEV, + Size: 1 << 10, + Perm: 0755, + }, "mounting", `tmpfs on "/run/user" size 1024`}, + }) +} |
