From 6167dd65b572c69fde5e4583b4c3a304fc83a544 Mon Sep 17 00:00:00 2001 From: Ferenc Szabo Date: Thu, 24 Jan 2019 17:07:43 +0100 Subject: [PATCH] swarm/pss: fix data race in notify_test.go (TestStart) (#18518) --- swarm/pss/notify/notify_test.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/swarm/pss/notify/notify_test.go b/swarm/pss/notify/notify_test.go index 5c29f68e0..860a91bbe 100644 --- a/swarm/pss/notify/notify_test.go +++ b/swarm/pss/notify/notify_test.go @@ -128,7 +128,7 @@ func TestStart(t *testing.T) { defer rightSub.Unsubscribe() updateC := make(chan []byte) - updateMsg := []byte{} + var updateMsg []byte ctrlClient := NewController(psses[rightPub]) ctrlNotifier := NewController(psses[leftPub]) ctrlNotifier.NewNotifier("foo.eth", 2, updateC) @@ -145,17 +145,24 @@ func TestStart(t *testing.T) { if err != nil { t.Fatal(err) } + + copyOfUpdateMsg := make([]byte, len(updateMsg)) + copy(copyOfUpdateMsg, updateMsg) + ctrlClientError := make(chan error, 1) ctrlClient.Subscribe(rsrcName, pubkey, addrbytes, func(s string, b []byte) error { - if s != "foo.eth" || !bytes.Equal(updateMsg, b) { - t.Fatalf("unexpected result in client handler: '%s':'%x'", s, b) + if s != "foo.eth" || !bytes.Equal(copyOfUpdateMsg, b) { + ctrlClientError <- fmt.Errorf("unexpected result in client handler: '%s':'%x'", s, b) + } else { + log.Info("client handler receive", "s", s, "b", b) } - log.Info("client handler receive", "s", s, "b", b) return nil }) var inMsg *pss.APIMsg select { case inMsg = <-rmsgC: + case err := <-ctrlClientError: + t.Fatal(err) case <-ctx.Done(): t.Fatal(ctx.Err()) }