diff options
Diffstat (limited to 'hst')
| -rw-r--r-- | hst/fslink.go | 7 | ||||
| -rw-r--r-- | hst/fslink_test.go | 21 |
2 files changed, 22 insertions, 6 deletions
diff --git a/hst/fslink.go b/hst/fslink.go index 8bba9b49..40b4fd8b 100644 --- a/hst/fslink.go +++ b/hst/fslink.go @@ -50,9 +50,12 @@ func (l *FSLink) String() string { return "<invalid>" } - dereference := "" + var dereference string if l.Dereference { + if l.Target.String() == l.Linkname { + return l.Target.String() + "@" + } dereference = "*" } - return "&" + l.Target.String() + ":" + dereference + l.Linkname + return l.Target.String() + " -> " + dereference + l.Linkname } diff --git a/hst/fslink_test.go b/hst/fslink_test.go index c8583544..b3e196e6 100644 --- a/hst/fslink_test.go +++ b/hst/fslink_test.go @@ -12,7 +12,20 @@ func TestFSLink(t *testing.T) { {"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 rel", &hst.FSLink{Target: m("/"), Linkname: ":3", Dereference: true}, + false, nil, nil, nil, "<invalid>"}, + {"deref differs", &hst.FSLink{ + Target: m("/.hakurei/etc"), + Linkname: "/etc/static", + Dereference: true, + }, true, container.Ops{ + &container.SymlinkOp{ + Target: m("/.hakurei/etc"), + LinkName: "/etc/static", + Dereference: true, + }, + }, m("/.hakurei/etc"), nil, + "/.hakurei/etc -> */etc/static"}, {"deref", &hst.FSLink{ Target: m("/run/current-system"), Linkname: "/run/current-system", @@ -24,7 +37,7 @@ func TestFSLink(t *testing.T) { Dereference: true, }, }, m("/run/current-system"), nil, - "&/run/current-system:*/run/current-system"}, + "/run/current-system@"}, {"direct", &hst.FSLink{ Target: m("/etc/mtab"), @@ -34,7 +47,7 @@ func TestFSLink(t *testing.T) { Target: m("/etc/mtab"), LinkName: "/proc/mounts", }, - }, m("/etc/mtab"), nil, "&/etc/mtab:/proc/mounts"}, + }, m("/etc/mtab"), nil, "/etc/mtab -> /proc/mounts"}, {"direct rel", &hst.FSLink{ Target: m("/etc/mtab"), @@ -44,6 +57,6 @@ func TestFSLink(t *testing.T) { Target: m("/etc/mtab"), LinkName: "../proc/mounts", }, - }, m("/etc/mtab"), nil, "&/etc/mtab:../proc/mounts"}, + }, m("/etc/mtab"), nil, "/etc/mtab -> ../proc/mounts"}, }) } |
