From 1b17ccda914de78a88e1edbb42ce70d963d4b5a2 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sun, 7 Dec 2025 17:31:10 +0900 Subject: [PATCH] internal/system: optional op check parallelism The PipeWire Op check cannot be made parallel due to the OS interaction. Signed-off-by: Ophestra --- internal/system/acl_test.go | 2 +- internal/system/dbus_test.go | 2 +- internal/system/dispatcher_test.go | 15 ++++++++++++--- internal/system/link_test.go | 2 +- internal/system/mkdir_test.go | 2 +- internal/system/wayland_test.go | 2 +- internal/system/xhost_test.go | 2 +- 7 files changed, 18 insertions(+), 9 deletions(-) diff --git a/internal/system/acl_test.go b/internal/system/acl_test.go index f7829e2..70feaa8 100644 --- a/internal/system/acl_test.go +++ b/internal/system/acl_test.go @@ -13,7 +13,7 @@ import ( func TestACLUpdateOp(t *testing.T) { t.Parallel() - checkOpBehaviour(t, []opBehaviourTestCase{ + checkOpBehaviour(t, 0, []opBehaviourTestCase{ {"apply aclUpdate", 0xbeef, 0xff, &aclUpdateOp{Process, "/proc/nonexistent", []acl.Perm{acl.Read, acl.Write, acl.Execute}}, []stub.Call{ call("verbose", stub.ExpectArgs{[]any{"applying ACL", &aclUpdateOp{Process, "/proc/nonexistent", []acl.Perm{acl.Read, acl.Write, acl.Execute}}}}, nil, nil), diff --git a/internal/system/dbus_test.go b/internal/system/dbus_test.go index 10d242c..26e5b87 100644 --- a/internal/system/dbus_test.go +++ b/internal/system/dbus_test.go @@ -18,7 +18,7 @@ import ( func TestDBusProxyOp(t *testing.T) { t.Parallel() - checkOpBehaviour(t, []opBehaviourTestCase{ + checkOpBehaviour(t, 0, []opBehaviourTestCase{ {"dbusProxyStart", 0xdead, 0xff, &dbusProxyOp{ final: dbusNewFinalSample(4), out: new(linePrefixWriter), // panics on write diff --git a/internal/system/dispatcher_test.go b/internal/system/dispatcher_test.go index 85bd45b..ed16217 100644 --- a/internal/system/dispatcher_test.go +++ b/internal/system/dispatcher_test.go @@ -36,17 +36,26 @@ type opBehaviourTestCase struct { wantErrRevert error } -func checkOpBehaviour(t *testing.T, testCases []opBehaviourTestCase) { +const ( + // checkNoParallel causes checkOpBehaviour to skip setting tests as parallel. + checkNoParallel = 1 << iota +) + +func checkOpBehaviour(t *testing.T, flags int, testCases []opBehaviourTestCase) { t.Helper() t.Run("behaviour", func(t *testing.T) { t.Helper() - t.Parallel() + if flags&checkNoParallel == 0 { + t.Parallel() + } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { t.Helper() - t.Parallel() + if flags&checkNoParallel == 0 { + t.Parallel() + } var ec *Criteria if tc.ec != 0xff { diff --git a/internal/system/link_test.go b/internal/system/link_test.go index d719931..b1d845b 100644 --- a/internal/system/link_test.go +++ b/internal/system/link_test.go @@ -10,7 +10,7 @@ import ( func TestHardlinkOp(t *testing.T) { t.Parallel() - checkOpBehaviour(t, []opBehaviourTestCase{ + checkOpBehaviour(t, 0, []opBehaviourTestCase{ {"link", 0xbeef, 0xff, &hardlinkOp{hst.EPulse, "/run/user/1000/hakurei/9663730666a44cfc2a81610379e02ed6/pulse", "/run/user/1000/pulse/native"}, []stub.Call{ call("verbose", stub.ExpectArgs{[]any{"linking", &hardlinkOp{hst.EPulse, "/run/user/1000/hakurei/9663730666a44cfc2a81610379e02ed6/pulse", "/run/user/1000/pulse/native"}}}, nil, nil), call("link", stub.ExpectArgs{"/run/user/1000/pulse/native", "/run/user/1000/hakurei/9663730666a44cfc2a81610379e02ed6/pulse"}, nil, stub.UniqueError(1)), diff --git a/internal/system/mkdir_test.go b/internal/system/mkdir_test.go index e8ffde2..e5d97b3 100644 --- a/internal/system/mkdir_test.go +++ b/internal/system/mkdir_test.go @@ -10,7 +10,7 @@ import ( func TestMkdirOp(t *testing.T) { t.Parallel() - checkOpBehaviour(t, []opBehaviourTestCase{ + checkOpBehaviour(t, 0, []opBehaviourTestCase{ {"mkdir", 0xbeef, 0xff, &mkdirOp{User, "/tmp/hakurei.0/f2f3bcd492d0266438fa9bf164fe90d9", 0711, false}, []stub.Call{ call("verbose", stub.ExpectArgs{[]any{"ensuring directory", &mkdirOp{User, "/tmp/hakurei.0/f2f3bcd492d0266438fa9bf164fe90d9", 0711, false}}}, nil, nil), call("mkdir", stub.ExpectArgs{"/tmp/hakurei.0/f2f3bcd492d0266438fa9bf164fe90d9", os.FileMode(0711)}, nil, stub.UniqueError(2)), diff --git a/internal/system/wayland_test.go b/internal/system/wayland_test.go index 5fe5ef0..0fdaf81 100644 --- a/internal/system/wayland_test.go +++ b/internal/system/wayland_test.go @@ -11,7 +11,7 @@ import ( func TestWaylandOp(t *testing.T) { t.Parallel() - checkOpBehaviour(t, []opBehaviourTestCase{ + checkOpBehaviour(t, 0, []opBehaviourTestCase{ {"chmod", 0xbeef, 0xff, &waylandOp{nil, m("/tmp/hakurei.1971/ebf083d1b175911782d413369b64ce7c/wayland"), m("/run/user/1971/wayland-0"), diff --git a/internal/system/xhost_test.go b/internal/system/xhost_test.go index 75ad5b9..72ecf2d 100644 --- a/internal/system/xhost_test.go +++ b/internal/system/xhost_test.go @@ -11,7 +11,7 @@ import ( func TestXHostOp(t *testing.T) { t.Parallel() - checkOpBehaviour(t, []opBehaviourTestCase{ + checkOpBehaviour(t, 0, []opBehaviourTestCase{ {"xcbChangeHosts revert", 0xbeef, hst.EX11, xhostOp("chronos"), []stub.Call{ call("verbosef", stub.ExpectArgs{"inserting entry %s to X11", []any{xhostOp("chronos")}}, nil, nil), call("xcbChangeHosts", stub.ExpectArgs{xcb.HostMode(xcb.HostModeInsert), xcb.Family(xcb.FamilyServerInterpreted), "localuser\x00chronos"}, nil, stub.UniqueError(1)),