container/initdev: check path equivalence by value
All checks were successful
Test / Create distribution (push) Successful in 34s
Test / Sandbox (push) Successful in 2m9s
Test / Hakurei (push) Successful in 3m5s
Test / Hpkg (push) Successful in 4m3s
Test / Sandbox (race detector) (push) Successful in 4m20s
Test / Hakurei (race detector) (push) Successful in 5m2s
Test / Flake checks (push) Successful in 1m28s
All checks were successful
Test / Create distribution (push) Successful in 34s
Test / Sandbox (push) Successful in 2m9s
Test / Hakurei (push) Successful in 3m5s
Test / Hpkg (push) Successful in 4m3s
Test / Sandbox (race detector) (push) Successful in 4m20s
Test / Hakurei (race detector) (push) Successful in 5m2s
Test / Flake checks (push) Successful in 1m28s
Fixes regression introduced while integrating Absolute. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
parent
022cc26b2e
commit
9aec2f46fe
@ -126,7 +126,13 @@ func (d *MountDevOp) apply(state *setupState) error {
|
|||||||
fmt.Sprintf("cannot remount %q:", target))
|
fmt.Sprintf("cannot remount %q:", target))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *MountDevOp) Is(op Op) bool { vd, ok := op.(*MountDevOp); return ok && *d == *vd }
|
func (d *MountDevOp) Is(op Op) bool {
|
||||||
|
vd, ok := op.(*MountDevOp)
|
||||||
|
return ok && ((d == nil && vd == nil) || (d != nil && vd != nil &&
|
||||||
|
d.Target != nil && vd.Target != nil &&
|
||||||
|
d.Target.String() == vd.Target.String() &&
|
||||||
|
d.Mqueue == vd.Mqueue && d.Write == vd.Write))
|
||||||
|
}
|
||||||
func (*MountDevOp) prefix() string { return "mounting" }
|
func (*MountDevOp) prefix() string { return "mounting" }
|
||||||
func (d *MountDevOp) String() string {
|
func (d *MountDevOp) String() string {
|
||||||
if d.Mqueue {
|
if d.Mqueue {
|
||||||
|
61
container/initdev_test.go
Normal file
61
container/initdev_test.go
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
package container
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestMountDevOp(t *testing.T) {
|
||||||
|
checkOpsBuilder(t, []opsBuilderTestCase{
|
||||||
|
{"dev", new(Ops).Dev(MustAbs("/dev/"), true), Ops{
|
||||||
|
&MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
Mqueue: true,
|
||||||
|
},
|
||||||
|
}},
|
||||||
|
|
||||||
|
{"dev writable", new(Ops).DevWritable(MustAbs("/.hakurei/dev/"), false), Ops{
|
||||||
|
&MountDevOp{
|
||||||
|
Target: MustAbs("/.hakurei/dev/"),
|
||||||
|
Write: true,
|
||||||
|
},
|
||||||
|
}},
|
||||||
|
})
|
||||||
|
|
||||||
|
checkOpIs(t, []opIsTestCase{
|
||||||
|
{"zero", new(MountDevOp), new(MountDevOp), false},
|
||||||
|
|
||||||
|
{"equals", &MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
Mqueue: true,
|
||||||
|
}, &MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
Mqueue: true,
|
||||||
|
}, true},
|
||||||
|
|
||||||
|
{"differs", &MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
Mqueue: true,
|
||||||
|
}, &MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
Mqueue: true,
|
||||||
|
Write: true,
|
||||||
|
}, false},
|
||||||
|
|
||||||
|
{"differs path", &MountDevOp{
|
||||||
|
Target: MustAbs("/"),
|
||||||
|
Mqueue: true,
|
||||||
|
}, &MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
Mqueue: true,
|
||||||
|
}, false},
|
||||||
|
})
|
||||||
|
|
||||||
|
checkOpMeta(t, []opMetaTestCase{
|
||||||
|
{"mqueue", &MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
Mqueue: true,
|
||||||
|
}, "mounting", `dev on "/dev/" with mqueue`},
|
||||||
|
|
||||||
|
{"dev", &MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
}, "mounting", `dev on "/dev/"`},
|
||||||
|
})
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user