aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/initremount_test.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-08-20 19:55:51 +0900
committerOphestra <cat@gensokyo.uk>2025-08-20 19:55:51 +0900
commit51304b03af49efc66926f259507aa3a208535890 (patch)
treed77924bfbb96889d71b965ce3e6dafd5841d5517 /container/initremount_test.go
parentc6397b941fe0c07795d8fd8615c37268c08082cd (diff)
container/initremount: check path equivalence by value
Fixes regression introduced while integrating Absolute. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'container/initremount_test.go')
-rw-r--r--container/initremount_test.go52
1 files changed, 52 insertions, 0 deletions
diff --git a/container/initremount_test.go b/container/initremount_test.go
new file mode 100644
index 00000000..a59160b9
--- /dev/null
+++ b/container/initremount_test.go
@@ -0,0 +1,52 @@
+package container
+
+import (
+ "syscall"
+ "testing"
+)
+
+func TestRemountOp(t *testing.T) {
+ checkOpsBuilder(t, []opsBuilderTestCase{
+ {"root", new(Ops).Remount(MustAbs("/"), syscall.MS_RDONLY), Ops{
+ &RemountOp{
+ Target: MustAbs("/"),
+ Flags: syscall.MS_RDONLY,
+ },
+ }},
+ })
+
+ checkOpIs(t, []opIsTestCase{
+ {"zero", new(RemountOp), new(RemountOp), false},
+
+ {"target differs", &RemountOp{
+ Target: MustAbs("/dev/"),
+ Flags: syscall.MS_RDONLY,
+ }, &RemountOp{
+ Target: MustAbs("/"),
+ Flags: syscall.MS_RDONLY,
+ }, false},
+
+ {"flags differs", &RemountOp{
+ Target: MustAbs("/"),
+ Flags: syscall.MS_RDONLY | syscall.MS_NODEV,
+ }, &RemountOp{
+ Target: MustAbs("/"),
+ Flags: syscall.MS_RDONLY,
+ }, false},
+
+ {"equals", &RemountOp{
+ Target: MustAbs("/"),
+ Flags: syscall.MS_RDONLY,
+ }, &RemountOp{
+ Target: MustAbs("/"),
+ Flags: syscall.MS_RDONLY,
+ }, true},
+ })
+
+ checkOpMeta(t, []opMetaTestCase{
+ {"root", &RemountOp{
+ Target: MustAbs("/"),
+ Flags: syscall.MS_RDONLY,
+ }, "remounting", `"/" flags 0x1`},
+ })
+}