From ecaf43358d5e28554f208fd6eb75bd38a87a68bf Mon Sep 17 00:00:00 2001 From: Ophestra Date: Fri, 5 Sep 2025 05:15:40 +0900 Subject: [PATCH] system/dbus: create context in subtest This is causing a huge amount of spurious test failures due to the poor performance of the integration vm. This should finally put an end to the annoyance. Signed-off-by: Ophestra --- system/dbus/dbus_test.go | 52 +++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/system/dbus/dbus_test.go b/system/dbus/dbus_test.go index bf3d3e7..9d969ba 100644 --- a/system/dbus/dbus_test.go +++ b/system/dbus/dbus_test.go @@ -63,6 +63,10 @@ func TestProxyStartWaitCloseString(t *testing.T) { t.Run("direct", func(t *testing.T) { testProxyFinaliseStartWaitCloseString(t, false) }) } +const ( + stubProxyTimeout = 30 * time.Second +) + func testProxyFinaliseStartWaitCloseString(t *testing.T, useSandbox bool) { { oldWaitDelay := helper.WaitDelay @@ -118,33 +122,33 @@ func testProxyFinaliseStartWaitCloseString(t *testing.T, useSandbox bool) { } }) - ctx, cancel := context.WithTimeout(t.Context(), 5*time.Second) - defer cancel() - output := new(strings.Builder) - if !useSandbox { - p = dbus.NewDirect(ctx, final, output) - } else { - p = dbus.New(ctx, final, output) - } - - t.Run("invalid wait", func(t *testing.T) { - wantErr := "dbus: not started" - if err := p.Wait(); err == nil || err.Error() != wantErr { - t.Errorf("Wait: error = %v, wantErr %v", - err, wantErr) + t.Run("run", func(t *testing.T) { + ctx, cancel := context.WithTimeout(t.Context(), stubProxyTimeout) + defer cancel() + output := new(strings.Builder) + if !useSandbox { + p = dbus.NewDirect(ctx, final, output) + } else { + p = dbus.New(ctx, final, output) } - }) - t.Run("string", func(t *testing.T) { - want := "(unused dbus proxy)" - if got := p.String(); got != want { - t.Errorf("String: %q, want %q", - got, want) - return - } - }) + t.Run("invalid wait", func(t *testing.T) { + wantErr := "dbus: not started" + if err := p.Wait(); err == nil || err.Error() != wantErr { + t.Errorf("Wait: error = %v, wantErr %v", + err, wantErr) + } + }) + + t.Run("string", func(t *testing.T) { + want := "(unused dbus proxy)" + if got := p.String(); got != want { + t.Errorf("String: %q, want %q", + got, want) + return + } + }) - t.Run("start", func(t *testing.T) { if err := p.Start(); err != nil { t.Fatalf("Start: error = %v", err)