aboutsummaryrefslogtreecommitdiffhomepage
path: root/hst/fslink_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'hst/fslink_test.go')
-rw-r--r--hst/fslink_test.go49
1 files changed, 49 insertions, 0 deletions
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, "<invalid>"},
+ {"zero", new(hst.FSLink), false, nil, nil, nil, "<invalid>"},
+
+ {"deref rel", &hst.FSLink{Target: m("/"), Linkname: ":3", Dereference: true}, false, nil, nil, nil, "<invalid>"},
+ {"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"},
+ })
+}