From 26cafe3e8066d9ae65230ff0aa17a5533cfa92f8 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Mon, 25 Aug 2025 21:31:45 +0900 Subject: hst/fs: implement link fstype Symlinks do not require special treatment, and doing this allows placing links in order. Signed-off-by: Ophestra --- hst/fslink_test.go | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 hst/fslink_test.go (limited to 'hst/fslink_test.go') diff --git a/hst/fslink_test.go b/hst/fslink_test.go new file mode 100644 index 00000000..c8583544 --- /dev/null +++ b/hst/fslink_test.go @@ -0,0 +1,49 @@ +package hst_test + +import ( + "testing" + + "hakurei.app/container" + "hakurei.app/hst" +) + +func TestFSLink(t *testing.T) { + checkFs(t, []fsTestCase{ + {"nil", (*hst.FSLink)(nil), false, nil, nil, nil, ""}, + {"zero", new(hst.FSLink), false, nil, nil, nil, ""}, + + {"deref rel", &hst.FSLink{Target: m("/"), Linkname: ":3", Dereference: true}, false, nil, nil, nil, ""}, + {"deref", &hst.FSLink{ + Target: m("/run/current-system"), + Linkname: "/run/current-system", + Dereference: true, + }, true, container.Ops{ + &container.SymlinkOp{ + Target: m("/run/current-system"), + LinkName: "/run/current-system", + Dereference: true, + }, + }, m("/run/current-system"), nil, + "&/run/current-system:*/run/current-system"}, + + {"direct", &hst.FSLink{ + Target: m("/etc/mtab"), + Linkname: "/proc/mounts", + }, true, container.Ops{ + &container.SymlinkOp{ + Target: m("/etc/mtab"), + LinkName: "/proc/mounts", + }, + }, m("/etc/mtab"), nil, "&/etc/mtab:/proc/mounts"}, + + {"direct rel", &hst.FSLink{ + Target: m("/etc/mtab"), + Linkname: "../proc/mounts", + }, true, container.Ops{ + &container.SymlinkOp{ + Target: m("/etc/mtab"), + LinkName: "../proc/mounts", + }, + }, m("/etc/mtab"), nil, "&/etc/mtab:../proc/mounts"}, + }) +} -- cgit v1.3.1