aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/network/stream/norace_test.go
diff options
context:
space:
mode:
authorJanoš Guljaš <janos@users.noreply.github.com>2019-02-13 20:03:23 +0800
committerViktor Trón <viktor.tron@gmail.com>2019-02-13 20:03:23 +0800
commit3fd6db2bf63ce90232de445c7f33943406a5e634 (patch)
treeaebd00021b52c4b4109feed2af315d2e63fa06ae /swarm/network/stream/norace_test.go
parentd596bea2d501d20b92e0fd4baa8bba682157dfa7 (diff)
downloadgo-tangerine-3fd6db2bf63ce90232de445c7f33943406a5e634.tar
go-tangerine-3fd6db2bf63ce90232de445c7f33943406a5e634.tar.gz
go-tangerine-3fd6db2bf63ce90232de445c7f33943406a5e634.tar.bz2
go-tangerine-3fd6db2bf63ce90232de445c7f33943406a5e634.tar.lz
go-tangerine-3fd6db2bf63ce90232de445c7f33943406a5e634.tar.xz
go-tangerine-3fd6db2bf63ce90232de445c7f33943406a5e634.tar.zst
go-tangerine-3fd6db2bf63ce90232de445c7f33943406a5e634.zip
swarm: fix network/stream data races (#19051)
* swarm/network/stream: newStreamerTester cleanup only if err is nil * swarm/network/stream: raise newStreamerTester waitForPeers timeout * swarm/network/stream: fix data races in GetPeerSubscriptions * swarm/storage: prevent data race on LDBStore.batchesC https://github.com/ethersphere/go-ethereum/issues/1198#issuecomment-461775049 * swarm/network/stream: fix TestGetSubscriptionsRPC data race https://github.com/ethersphere/go-ethereum/issues/1198#issuecomment-461768477 * swarm/network/stream: correctly use Simulation.Run callback https://github.com/ethersphere/go-ethereum/issues/1198#issuecomment-461783804 * swarm/network: protect addrCountC in Kademlia.AddrCountC function https://github.com/ethersphere/go-ethereum/issues/1198#issuecomment-462273444 * p2p/simulations: fix a deadlock calling getRandomNode with lock https://github.com/ethersphere/go-ethereum/issues/1198#issuecomment-462317407 * swarm/network/stream: terminate disconnect goruotines in tests * swarm/network/stream: reduce memory consumption when testing data races * swarm/network/stream: add watchDisconnections helper function * swarm/network/stream: add concurrent counter for tests * swarm/network/stream: rename race/norace test files and use const * swarm/network/stream: remove watchSim and its panic * swarm/network/stream: pass context in watchDisconnections * swarm/network/stream: add concurrent safe bool for watchDisconnections * swarm/storage: fix LDBStore.batchesC data race by not closing it
Diffstat (limited to 'swarm/network/stream/norace_test.go')
-rw-r--r--swarm/network/stream/norace_test.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/swarm/network/stream/norace_test.go b/swarm/network/stream/norace_test.go
new file mode 100644
index 000000000..b324f6939
--- /dev/null
+++ b/swarm/network/stream/norace_test.go
@@ -0,0 +1,24 @@
+// Copyright 2019 The go-ethereum Authors
+// This file is part of the go-ethereum library.
+//
+// The go-ethereum library is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// The go-ethereum library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
+
+// +build !race
+
+package stream
+
+// Provide a flag to reduce the scope of tests when running them
+// with race detector. Some of the tests are doing a lot of allocations
+// on the heap, and race detector uses much more memory to track them.
+const raceTest = false