From 2a3f8d3546d05d725f3b51f1820cf26cd5cc3eb8 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Wed, 29 Sep 2021 20:34:21 +0100 Subject: [PATCH] fix flaky TestStBackpressureStreamWrite test --- p2p/test/backpressure/backpressure_test.go | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/p2p/test/backpressure/backpressure_test.go b/p2p/test/backpressure/backpressure_test.go index f52c7e324a..b5d6a548c4 100644 --- a/p2p/test/backpressure/backpressure_test.go +++ b/p2p/test/backpressure/backpressure_test.go @@ -28,8 +28,8 @@ func TestStBackpressureStreamWrite(t *testing.T) { h2, err := bhost.NewHost(swarmt.GenSwarm(t), nil) require.NoError(t, err) - // setup sender handler on 1 - h1.SetStreamHandler(protocol.TestingID, func(s network.Stream) { + // setup sender handler on 2 + h2.SetStreamHandler(protocol.TestingID, func(s network.Stream) { defer s.Reset() <-ctx.Done() }) @@ -40,19 +40,16 @@ func TestStBackpressureStreamWrite(t *testing.T) { t.Fatal("Failed to connect:", err) } - // open a stream, from 2->1, this is our reader - s, err := h2.NewStream(ctx, h1.ID(), protocol.TestingID) - if err != nil { - t.Fatal(err) - } + // open a stream, from 1->2, this is our reader + s, err := h1.NewStream(ctx, h2.ID(), protocol.TestingID) + require.NoError(t, err) defer s.Reset() - // If nobody is reading, we should eventually timeout. + // If nobody is reading, we should eventually time out. require.NoError(t, s.SetWriteDeadline(time.Now().Add(100*time.Millisecond))) data := make([]byte, 16*1024) for i := 0; i < 5*1024; i++ { // write at most 100MiB - _, err := s.Write(data) - if err != nil { + if _, err := s.Write(data); err != nil { require.True(t, os.IsTimeout(err), err) return }