aboutsummaryrefslogtreecommitdiffhomepage
path: root/hst/fsephemeral_test.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-08-12 04:38:45 +0900
committerOphestra <cat@gensokyo.uk>2025-08-14 04:52:49 +0900
commit99ac96511bed17f48d908db3d00a1f48579ba011 (patch)
tree30d404efb7256c9f053f64192068637d6b846db4 /hst/fsephemeral_test.go
parente99d7affb0c128fa82722f9b3d79c99b5e5918cd (diff)
hst/fs: interface filesystem config
This allows mount points to be represented by different underlying structs. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'hst/fsephemeral_test.go')
-rw-r--r--hst/fsephemeral_test.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/hst/fsephemeral_test.go b/hst/fsephemeral_test.go
new file mode 100644
index 00000000..f003a928
--- /dev/null
+++ b/hst/fsephemeral_test.go
@@ -0,0 +1,50 @@
+package hst_test
+
+import (
+ "syscall"
+ "testing"
+
+ "hakurei.app/container"
+ "hakurei.app/hst"
+)
+
+func TestFSEphemeral(t *testing.T) {
+ checkFs(t, "ephemeral", []fsTestCase{
+ {"nil", (*hst.FSEphemeral)(nil), nil, nil, nil, "<invalid>"},
+
+ {"full", &hst.FSEphemeral{
+ Dst: m("/run/user/65534"),
+ Write: true,
+ Size: 1 << 10,
+ Perm: 0700,
+ }, container.Ops{&container.MountTmpfsOp{
+ FSName: "ephemeral",
+ Path: m("/run/user/65534"),
+ Flags: syscall.MS_NOSUID | syscall.MS_NODEV,
+ Size: 1 << 10,
+ Perm: 0700,
+ }}, m("/run/user/65534"), nil,
+ "w+ephemeral(-rwx------):/run/user/65534"},
+
+ {"cover ro", &hst.FSEphemeral{Dst: m("/run/nscd")},
+ container.Ops{&container.MountTmpfsOp{
+ FSName: "readonly",
+ Path: m("/run/nscd"),
+ Flags: syscall.MS_NOSUID | syscall.MS_NODEV | syscall.MS_RDONLY,
+ Perm: 0755,
+ }}, m("/run/nscd"), nil,
+ "+ephemeral(-rwxr-xr-x):/run/nscd"},
+
+ {"negative size", &hst.FSEphemeral{
+ Dst: hst.AbsTmp,
+ Write: true,
+ Size: -1,
+ }, container.Ops{&container.MountTmpfsOp{
+ FSName: "ephemeral",
+ Path: hst.AbsTmp,
+ Flags: syscall.MS_NOSUID | syscall.MS_NODEV,
+ Perm: 0755,
+ }}, hst.AbsTmp, nil,
+ "w+ephemeral(-rwxr-xr-x):/.hakurei"},
+ })
+}