container/init: use absolute compare method
All checks were successful
Test / Create distribution (push) Successful in 34s
Test / Sandbox (push) Successful in 2m9s
Test / Hakurei (push) Successful in 3m3s
Test / Hpkg (push) Successful in 4m4s
Test / Sandbox (race detector) (push) Successful in 4m25s
Test / Hakurei (race detector) (push) Successful in 4m59s
Test / Flake checks (push) Successful in 1m19s
All checks were successful
Test / Create distribution (push) Successful in 34s
Test / Sandbox (push) Successful in 2m9s
Test / Hakurei (push) Successful in 3m3s
Test / Hpkg (push) Successful in 4m4s
Test / Sandbox (race detector) (push) Successful in 4m25s
Test / Hakurei (race detector) (push) Successful in 4m59s
Test / Flake checks (push) Successful in 1m19s
More checks are also added. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
parent
31f0dd36df
commit
97ab24feef
@ -73,8 +73,7 @@ func (r *AutoRootOp) apply(state *setupState) error {
|
|||||||
func (r *AutoRootOp) Is(op Op) bool {
|
func (r *AutoRootOp) Is(op Op) bool {
|
||||||
vr, ok := op.(*AutoRootOp)
|
vr, ok := op.(*AutoRootOp)
|
||||||
return ok && ((r == nil && vr == nil) || (r != nil && vr != nil &&
|
return ok && ((r == nil && vr == nil) || (r != nil && vr != nil &&
|
||||||
r.Host != nil && vr.Host != nil &&
|
r.Host != nil && vr.Host != nil && r.Host.Is(vr.Host) &&
|
||||||
r.Host.String() == vr.Host.String() &&
|
|
||||||
r.Prefix == vr.Prefix && r.Flags == vr.Flags))
|
r.Prefix == vr.Prefix && r.Flags == vr.Flags))
|
||||||
}
|
}
|
||||||
func (*AutoRootOp) prefix() string { return "setting up" }
|
func (*AutoRootOp) prefix() string { return "setting up" }
|
||||||
|
@ -27,7 +27,7 @@ func TestAutoRootOp(t *testing.T) {
|
|||||||
resolved: []Op{new(BindMountOp)},
|
resolved: []Op{new(BindMountOp)},
|
||||||
}, true},
|
}, true},
|
||||||
|
|
||||||
{"differs", &AutoRootOp{
|
{"prefix differs", &AutoRootOp{
|
||||||
Host: MustAbs("/"),
|
Host: MustAbs("/"),
|
||||||
Prefix: "\x00",
|
Prefix: "\x00",
|
||||||
Flags: BindWritable,
|
Flags: BindWritable,
|
||||||
@ -37,6 +37,26 @@ func TestAutoRootOp(t *testing.T) {
|
|||||||
Flags: BindWritable,
|
Flags: BindWritable,
|
||||||
}, false},
|
}, false},
|
||||||
|
|
||||||
|
{"flags differs", &AutoRootOp{
|
||||||
|
Host: MustAbs("/"),
|
||||||
|
Prefix: ":3",
|
||||||
|
Flags: BindWritable | BindDevice,
|
||||||
|
}, &AutoRootOp{
|
||||||
|
Host: MustAbs("/"),
|
||||||
|
Prefix: ":3",
|
||||||
|
Flags: BindWritable,
|
||||||
|
}, false},
|
||||||
|
|
||||||
|
{"host differs", &AutoRootOp{
|
||||||
|
Host: MustAbs("/tmp/"),
|
||||||
|
Prefix: ":3",
|
||||||
|
Flags: BindWritable,
|
||||||
|
}, &AutoRootOp{
|
||||||
|
Host: MustAbs("/"),
|
||||||
|
Prefix: ":3",
|
||||||
|
Flags: BindWritable,
|
||||||
|
}, false},
|
||||||
|
|
||||||
{"equals", &AutoRootOp{
|
{"equals", &AutoRootOp{
|
||||||
Host: MustAbs("/"),
|
Host: MustAbs("/"),
|
||||||
Prefix: ":3",
|
Prefix: ":3",
|
||||||
|
@ -88,10 +88,8 @@ func (b *BindMountOp) apply(*setupState) error {
|
|||||||
func (b *BindMountOp) Is(op Op) bool {
|
func (b *BindMountOp) Is(op Op) bool {
|
||||||
vb, ok := op.(*BindMountOp)
|
vb, ok := op.(*BindMountOp)
|
||||||
return ok && ((b == nil && vb == nil) || (b != nil && vb != nil &&
|
return ok && ((b == nil && vb == nil) || (b != nil && vb != nil &&
|
||||||
b.Source != nil && vb.Source != nil &&
|
b.Source != nil && vb.Source != nil && b.Source.Is(vb.Source) &&
|
||||||
b.Source.String() == vb.Source.String() &&
|
b.Target != nil && vb.Target != nil && b.Target.Is(vb.Target) &&
|
||||||
b.Target != nil && vb.Target != nil &&
|
|
||||||
b.Target.String() == vb.Target.String() &&
|
|
||||||
b.Flags == vb.Flags))
|
b.Flags == vb.Flags))
|
||||||
}
|
}
|
||||||
func (*BindMountOp) prefix() string { return "mounting" }
|
func (*BindMountOp) prefix() string { return "mounting" }
|
||||||
|
@ -28,7 +28,7 @@ func TestBindMountOp(t *testing.T) {
|
|||||||
sourceFinal: MustAbs("/etc/"),
|
sourceFinal: MustAbs("/etc/"),
|
||||||
}, true},
|
}, true},
|
||||||
|
|
||||||
{"differs", &BindMountOp{
|
{"flags differs", &BindMountOp{
|
||||||
Source: MustAbs("/etc/"),
|
Source: MustAbs("/etc/"),
|
||||||
Target: MustAbs("/etc/.host/048090b6ed8f9ebb10e275ff5d8c0659"),
|
Target: MustAbs("/etc/.host/048090b6ed8f9ebb10e275ff5d8c0659"),
|
||||||
}, &BindMountOp{
|
}, &BindMountOp{
|
||||||
@ -37,6 +37,22 @@ func TestBindMountOp(t *testing.T) {
|
|||||||
Flags: BindOptional,
|
Flags: BindOptional,
|
||||||
}, false},
|
}, false},
|
||||||
|
|
||||||
|
{"source differs", &BindMountOp{
|
||||||
|
Source: MustAbs("/.hakurei/etc/"),
|
||||||
|
Target: MustAbs("/etc/.host/048090b6ed8f9ebb10e275ff5d8c0659"),
|
||||||
|
}, &BindMountOp{
|
||||||
|
Source: MustAbs("/etc/"),
|
||||||
|
Target: MustAbs("/etc/.host/048090b6ed8f9ebb10e275ff5d8c0659"),
|
||||||
|
}, false},
|
||||||
|
|
||||||
|
{"target differs", &BindMountOp{
|
||||||
|
Source: MustAbs("/etc/"),
|
||||||
|
Target: MustAbs("/etc/.host/048090b6ed8f9ebb10e275ff5d8c0659"),
|
||||||
|
}, &BindMountOp{
|
||||||
|
Source: MustAbs("/etc/"),
|
||||||
|
Target: MustAbs("/etc/"),
|
||||||
|
}, false},
|
||||||
|
|
||||||
{"equals", &BindMountOp{
|
{"equals", &BindMountOp{
|
||||||
Source: MustAbs("/etc/"),
|
Source: MustAbs("/etc/"),
|
||||||
Target: MustAbs("/etc/.host/048090b6ed8f9ebb10e275ff5d8c0659"),
|
Target: MustAbs("/etc/.host/048090b6ed8f9ebb10e275ff5d8c0659"),
|
||||||
|
@ -129,8 +129,7 @@ func (d *MountDevOp) apply(state *setupState) error {
|
|||||||
func (d *MountDevOp) Is(op Op) bool {
|
func (d *MountDevOp) Is(op Op) bool {
|
||||||
vd, ok := op.(*MountDevOp)
|
vd, ok := op.(*MountDevOp)
|
||||||
return ok && ((d == nil && vd == nil) || (d != nil && vd != nil &&
|
return ok && ((d == nil && vd == nil) || (d != nil && vd != nil &&
|
||||||
d.Target != nil && vd.Target != nil &&
|
d.Target != nil && vd.Target != nil && d.Target.Is(vd.Target) &&
|
||||||
d.Target.String() == vd.Target.String() &&
|
|
||||||
d.Mqueue == vd.Mqueue && d.Write == vd.Write))
|
d.Mqueue == vd.Mqueue && d.Write == vd.Write))
|
||||||
}
|
}
|
||||||
func (*MountDevOp) prefix() string { return "mounting" }
|
func (*MountDevOp) prefix() string { return "mounting" }
|
||||||
|
@ -22,15 +22,7 @@ func TestMountDevOp(t *testing.T) {
|
|||||||
checkOpIs(t, []opIsTestCase{
|
checkOpIs(t, []opIsTestCase{
|
||||||
{"zero", new(MountDevOp), new(MountDevOp), false},
|
{"zero", new(MountDevOp), new(MountDevOp), false},
|
||||||
|
|
||||||
{"equals", &MountDevOp{
|
{"write differs", &MountDevOp{
|
||||||
Target: MustAbs("/dev/"),
|
|
||||||
Mqueue: true,
|
|
||||||
}, &MountDevOp{
|
|
||||||
Target: MustAbs("/dev/"),
|
|
||||||
Mqueue: true,
|
|
||||||
}, true},
|
|
||||||
|
|
||||||
{"differs", &MountDevOp{
|
|
||||||
Target: MustAbs("/dev/"),
|
Target: MustAbs("/dev/"),
|
||||||
Mqueue: true,
|
Mqueue: true,
|
||||||
}, &MountDevOp{
|
}, &MountDevOp{
|
||||||
@ -39,13 +31,28 @@ func TestMountDevOp(t *testing.T) {
|
|||||||
Write: true,
|
Write: true,
|
||||||
}, false},
|
}, false},
|
||||||
|
|
||||||
{"differs path", &MountDevOp{
|
{"mqueue differs", &MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
}, &MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
Mqueue: true,
|
||||||
|
}, false},
|
||||||
|
|
||||||
|
{"target differs", &MountDevOp{
|
||||||
Target: MustAbs("/"),
|
Target: MustAbs("/"),
|
||||||
Mqueue: true,
|
Mqueue: true,
|
||||||
}, &MountDevOp{
|
}, &MountDevOp{
|
||||||
Target: MustAbs("/dev/"),
|
Target: MustAbs("/dev/"),
|
||||||
Mqueue: true,
|
Mqueue: true,
|
||||||
}, false},
|
}, false},
|
||||||
|
|
||||||
|
{"equals", &MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
Mqueue: true,
|
||||||
|
}, &MountDevOp{
|
||||||
|
Target: MustAbs("/dev/"),
|
||||||
|
Mqueue: true,
|
||||||
|
}, true},
|
||||||
})
|
})
|
||||||
|
|
||||||
checkOpMeta(t, []opMetaTestCase{
|
checkOpMeta(t, []opMetaTestCase{
|
||||||
|
@ -32,8 +32,7 @@ func (m *MkdirOp) apply(*setupState) error {
|
|||||||
func (m *MkdirOp) Is(op Op) bool {
|
func (m *MkdirOp) Is(op Op) bool {
|
||||||
vm, ok := op.(*MkdirOp)
|
vm, ok := op.(*MkdirOp)
|
||||||
return ok && ((m == nil && vm == nil) || (m != nil && vm != nil &&
|
return ok && ((m == nil && vm == nil) || (m != nil && vm != nil &&
|
||||||
m.Path != nil && vm.Path != nil &&
|
m.Path != nil && vm.Path != nil && m.Path.Is(vm.Path) &&
|
||||||
m.Path.String() == vm.Path.String() &&
|
|
||||||
m.Perm == vm.Perm))
|
m.Perm == vm.Perm))
|
||||||
}
|
}
|
||||||
func (*MkdirOp) prefix() string { return "creating" }
|
func (*MkdirOp) prefix() string { return "creating" }
|
||||||
|
@ -11,7 +11,8 @@ func TestMkdirOp(t *testing.T) {
|
|||||||
|
|
||||||
checkOpIs(t, []opIsTestCase{
|
checkOpIs(t, []opIsTestCase{
|
||||||
{"zero", new(MkdirOp), new(MkdirOp), false},
|
{"zero", new(MkdirOp), new(MkdirOp), false},
|
||||||
{"differs", &MkdirOp{Path: MustAbs("/"), Perm: 0755}, &MkdirOp{Path: MustAbs("/etc/"), Perm: 0755}, false},
|
{"path differs", &MkdirOp{Path: MustAbs("/"), Perm: 0755}, &MkdirOp{Path: MustAbs("/etc/"), Perm: 0755}, false},
|
||||||
|
{"perm differs", &MkdirOp{Path: MustAbs("/")}, &MkdirOp{Path: MustAbs("/"), Perm: 0755}, false},
|
||||||
{"equals", &MkdirOp{Path: MustAbs("/")}, &MkdirOp{Path: MustAbs("/")}, true},
|
{"equals", &MkdirOp{Path: MustAbs("/")}, &MkdirOp{Path: MustAbs("/")}, true},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user