prysm-pulse/beacon-chain/blockchain/chain_info_norace_test.go
skillful-alex b015dc793a HeadFetcher data race fix (#3460)
* HeadFetcher data race fix

* bazel run //:gazelle -- fix

* add the db teardown to test

* add TestChainService_SaveHead_DataRace test

* split race and norace tests

* change testset name

* test CI with 'spectest' tag instead of 'raceon'

* one more test CI with 'spectest' tag instead of 'raceon'

* bazel run //:gazelle -- fix

* set test tag to 'race_on'

* not clone the state
2019-09-23 14:24:42 -05:00

78 lines
1.4 KiB
Go

package blockchain
import (
"context"
"testing"
testDB "github.com/prysmaticlabs/prysm/beacon-chain/db/testing"
ethpb "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1"
)
func TestHeadSlot_DataRace(t *testing.T) {
db := testDB.SetupDB(t)
defer testDB.TeardownDB(t, db)
s := &Service{
beaconDB: db,
canonicalRoots: make(map[uint64][]byte),
}
go func() {
s.saveHead(
context.Background(),
&ethpb.BeaconBlock{Slot: 777},
[32]byte{},
)
}()
s.HeadSlot()
}
func TestHeadRoot_DataRace(t *testing.T) {
db := testDB.SetupDB(t)
defer testDB.TeardownDB(t, db)
s := &Service{
beaconDB: db,
canonicalRoots: make(map[uint64][]byte),
}
go func() {
s.saveHead(
context.Background(),
&ethpb.BeaconBlock{Slot: 777},
[32]byte{},
)
}()
s.HeadRoot()
}
func TestHeadBlock_DataRace(t *testing.T) {
db := testDB.SetupDB(t)
defer testDB.TeardownDB(t, db)
s := &Service{
beaconDB: db,
canonicalRoots: make(map[uint64][]byte),
}
go func() {
s.saveHead(
context.Background(),
&ethpb.BeaconBlock{Slot: 777},
[32]byte{},
)
}()
s.HeadBlock()
}
func TestHeadState_DataRace(t *testing.T) {
db := testDB.SetupDB(t)
defer testDB.TeardownDB(t, db)
s := &Service{
beaconDB: db,
canonicalRoots: make(map[uint64][]byte),
}
go func() {
s.saveHead(
context.Background(),
&ethpb.BeaconBlock{Slot: 777},
[32]byte{},
)
}()
s.HeadState()
}