diff options
Diffstat (limited to 'hst/fsoverlay_test.go')
| -rw-r--r-- | hst/fsoverlay_test.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/hst/fsoverlay_test.go b/hst/fsoverlay_test.go new file mode 100644 index 00000000..18ed0773 --- /dev/null +++ b/hst/fsoverlay_test.go @@ -0,0 +1,50 @@ +package hst_test + +import ( + "testing" + + "hakurei.app/container" + "hakurei.app/hst" +) + +func TestFSOverlay(t *testing.T) { + checkFs(t, []fsTestCase{ + {"nil", (*hst.FSOverlay)(nil), false, nil, nil, nil, "<invalid>"}, + {"nil lower", &hst.FSOverlay{Dst: m("/etc"), Lower: []*container.Absolute{nil}}, false, nil, nil, nil, "<invalid>"}, + {"zero lower", &hst.FSOverlay{Dst: m("/etc"), Upper: m("/"), Work: m("/")}, false, nil, nil, nil, "<invalid>"}, + {"zero lower ro", &hst.FSOverlay{Dst: m("/etc")}, false, nil, nil, nil, "<invalid>"}, + {"short lower", &hst.FSOverlay{Dst: m("/etc"), Lower: ms("/etc")}, false, nil, nil, nil, "<invalid>"}, + + {"full", &hst.FSOverlay{ + Dst: m("/nix/store"), + Lower: ms("/mnt-root/nix/.ro-store"), + Upper: m("/mnt-root/nix/.rw-store/upper"), + Work: m("/mnt-root/nix/.rw-store/work"), + }, true, container.Ops{&container.MountOverlayOp{ + Target: m("/nix/store"), + Lower: ms("/mnt-root/nix/.ro-store"), + Upper: m("/mnt-root/nix/.rw-store/upper"), + Work: m("/mnt-root/nix/.rw-store/work"), + }}, m("/nix/store"), ms("/mnt-root/nix/.rw-store/upper", "/mnt-root/nix/.rw-store/work", "/mnt-root/nix/.ro-store"), + "w*/nix/store:/mnt-root/nix/.rw-store/upper:/mnt-root/nix/.rw-store/work:/mnt-root/nix/.ro-store"}, + + {"ro", &hst.FSOverlay{ + Dst: m("/mnt/src"), + Lower: ms("/tmp/.src0", "/tmp/.src1"), + }, true, container.Ops{&container.MountOverlayOp{ + Target: m("/mnt/src"), + Lower: ms("/tmp/.src0", "/tmp/.src1"), + }}, m("/mnt/src"), ms("/tmp/.src0", "/tmp/.src1"), + "*/mnt/src:/tmp/.src0:/tmp/.src1"}, + + {"ro work", &hst.FSOverlay{ + Dst: m("/mnt/src"), + Lower: ms("/tmp/.src0", "/tmp/.src1"), + Work: m("/tmp"), + }, true, container.Ops{&container.MountOverlayOp{ + Target: m("/mnt/src"), + Lower: ms("/tmp/.src0", "/tmp/.src1"), + }}, m("/mnt/src"), ms("/tmp/.src0", "/tmp/.src1"), + "*/mnt/src:/tmp/.src0:/tmp/.src1"}, + }) +} |
