hst/fsbind: optional ensure source
All checks were successful
Test / Create distribution (push) Successful in 34s
Test / Sandbox (push) Successful in 2m12s
Test / Hpkg (push) Successful in 4m8s
Test / Sandbox (race detector) (push) Successful in 4m27s
Test / Hakurei (race detector) (push) Successful in 5m9s
Test / Hakurei (push) Successful in 2m21s
Test / Flake checks (push) Successful in 1m31s

This exposes the BindEnsure flag of BindMountOp.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2025-08-25 23:38:46 +09:00
parent 3e8e35fed4
commit 67968528e4
5 changed files with 47 additions and 16 deletions

View File

@@ -10,6 +10,8 @@ import (
func TestFSBind(t *testing.T) {
checkFs(t, []fsTestCase{
{"nil", (*hst.FSBind)(nil), false, nil, nil, nil, "<invalid>"},
{"ensure optional", &hst.FSBind{Source: m("/"), Ensure: true, Optional: true},
false, nil, nil, nil, "<invalid>"},
{"full", &hst.FSBind{
Target: m("/dev"),
@@ -23,6 +25,18 @@ func TestFSBind(t *testing.T) {
}}, m("/dev"), ms("/mnt/dev"),
"d+/mnt/dev:/dev"},
{"full ensure", &hst.FSBind{
Target: m("/dev"),
Source: m("/mnt/dev"),
Ensure: true,
Device: true,
}, true, container.Ops{&container.BindMountOp{
Source: m("/mnt/dev"),
Target: m("/dev"),
Flags: container.BindWritable | container.BindDevice | container.BindEnsure,
}}, m("/dev"), ms("/mnt/dev"),
"d-/mnt/dev:/dev"},
{"full write dev", &hst.FSBind{
Target: m("/dev"),
Source: m("/mnt/dev"),