From 6d202d73b41d28166f7bea7da36d1ce054711ff9 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Mon, 25 Aug 2025 18:30:40 +0900 Subject: hst/fsbind: optional autoetc behaviour This generalises the special field allowing any special behaviour to be matched from target. Signed-off-by: Ophestra --- hst/fsbind_test.go | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) (limited to 'hst/fsbind_test.go') diff --git a/hst/fsbind_test.go b/hst/fsbind_test.go index 750dd93a..b2fb0f7a 100644 --- a/hst/fsbind_test.go +++ b/hst/fsbind_test.go @@ -63,35 +63,45 @@ func TestFSBind(t *testing.T) { }}, m("/"), ms("/"), "*/"}, - {"autoroot nil target", &hst.FSBind{ - Source: m("/"), - AutoRoot: true, + {"special nil target", &hst.FSBind{ + Source: m("/"), + Special: true, }, false, nil, nil, nil, ""}, - {"autoroot bad target", &hst.FSBind{ - Source: m("/"), - Target: m("/etc/"), - AutoRoot: true, + {"special bad target", &hst.FSBind{ + Source: m("/"), + Target: m("/var/"), + Special: true, }, false, nil, nil, nil, ""}, {"autoroot pd", &hst.FSBind{ - Target: m("/"), - Source: m("/"), - Write: true, - AutoRoot: true, + Target: m("/"), + Source: m("/"), + Write: true, + Special: true, }, true, container.Ops{&container.AutoRootOp{ Host: m("/"), Flags: container.BindWritable, }}, m("/"), ms("/"), "autoroot:w"}, {"autoroot silly", &hst.FSBind{ - Target: m("/"), - Source: m("/etc"), - Write: true, - AutoRoot: true, + Target: m("/"), + Source: m("/etc"), + Write: true, + Special: true, }, true, container.Ops{&container.AutoRootOp{ Host: m("/etc"), Flags: container.BindWritable, }}, m("/"), ms("/etc"), "autoroot:w:/etc"}, + + {"autoetc", &hst.FSBind{ + Target: m("/etc/"), + Source: m("/etc/"), + Special: true, + }, true, container.Ops{ + &container.MkdirOp{Path: m("/etc/"), Perm: 0755}, + &container.BindMountOp{Source: m("/etc/"), Target: m("/etc/.host/:3")}, + &container.AutoEtcOp{Prefix: ":3"}, + }, m("/etc/"), ms("/etc/"), "autoetc:/etc/"}, }) } -- cgit v1.3.1