@cryptotaxi247 / kubo / commits / 58df273d6

fix(test): fix a flaky pubsub test

This commit was moved from ipfs/interface-go-ipfs-core@00de46e290cf0a47bb78a9e8aa264f4b6ce941cd This commit was moved from ipfs/boxo@125f06e6af82e7502de7596d9cfb5a3b560df4e5

Steven Allen committed Sep 27, 2019 at 16:21 UTC 58df273d66f263915aad240a414df15ac538a0e2
1 file changed +15 -1
core/coreiface/tests/pubsub.go
+15 -1
@@ -34,13 +34,20 @@ func (tp *TestSuite) TestBasicPubSub(t *testing.T) {
34 t.Fatal(err)
35 }
36
37 + done := make(chan struct{})
38 go func() {
39 + defer close(done)
40 +
41 ticker := time.NewTicker(100 * time.Millisecond)
42 defer ticker.Stop()
43
44 for {
45 err := apis[1].PubSub().Publish(ctx, "testch", []byte("hello world"))
43 - if err != nil {
46 + switch err {
47 + case nil:
48 + case context.Canceled:
49 + return
50 + default:
51 t.Error(err)
52 cancel()
53 return
@@ -53,6 +60,13 @@ func (tp *TestSuite) TestBasicPubSub(t *testing.T) {
60 }
61 }()
62
63 + // Wait for the sender to finish before we return.
64 + // Otherwise, we can get random errors as publish fails.
65 + defer func() {
66 + cancel()
67 + <-done
68 + }()
69 +
70 m, err := sub.Next(ctx)
71 if err != nil {
72 t.Fatal(err)