core/test: use testing.TB in constructors

This allows to use chain in benchmarks.

Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
Evgeniy Stratonikov 2021-07-12 14:19:13 +03:00
parent 9f377cde12
commit 0d5ede0bff
2 changed files with 11 additions and 6 deletions

View file

@ -41,6 +41,7 @@ import (
"github.com/nspcc-dev/neo-go/pkg/vm/stackitem" "github.com/nspcc-dev/neo-go/pkg/vm/stackitem"
"github.com/nspcc-dev/neo-go/pkg/wallet" "github.com/nspcc-dev/neo-go/pkg/wallet"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"go.uber.org/zap"
"go.uber.org/zap/zaptest" "go.uber.org/zap/zaptest"
) )
@ -74,22 +75,22 @@ func newTestChainWithNS(t *testing.T) (*Blockchain, util.Uint160) {
// newTestChain should be called before newBlock invocation to properly setup // newTestChain should be called before newBlock invocation to properly setup
// global state. // global state.
func newTestChain(t *testing.T) *Blockchain { func newTestChain(t testing.TB) *Blockchain {
return newTestChainWithCustomCfg(t, nil) return newTestChainWithCustomCfg(t, nil)
} }
func newTestChainWithCustomCfg(t *testing.T, f func(*config.Config)) *Blockchain { func newTestChainWithCustomCfg(t testing.TB, f func(*config.Config)) *Blockchain {
return newTestChainWithCustomCfgAndStore(t, nil, f) return newTestChainWithCustomCfgAndStore(t, nil, f)
} }
func newTestChainWithCustomCfgAndStore(t *testing.T, st storage.Store, f func(*config.Config)) *Blockchain { func newTestChainWithCustomCfgAndStore(t testing.TB, st storage.Store, f func(*config.Config)) *Blockchain {
chain := initTestChain(t, st, f) chain := initTestChain(t, st, f)
go chain.Run() go chain.Run()
t.Cleanup(chain.Close) t.Cleanup(chain.Close)
return chain return chain
} }
func initTestChain(t *testing.T, st storage.Store, f func(*config.Config)) *Blockchain { func initTestChain(t testing.TB, st storage.Store, f func(*config.Config)) *Blockchain {
unitTestNetCfg, err := config.Load("../../config", testchain.Network()) unitTestNetCfg, err := config.Load("../../config", testchain.Network())
require.NoError(t, err) require.NoError(t, err)
if f != nil { if f != nil {
@ -98,7 +99,11 @@ func initTestChain(t *testing.T, st storage.Store, f func(*config.Config)) *Bloc
if st == nil { if st == nil {
st = storage.NewMemoryStore() st = storage.NewMemoryStore()
} }
chain, err := NewBlockchain(st, unitTestNetCfg.ProtocolConfiguration, zaptest.NewLogger(t)) log := zaptest.NewLogger(t)
if _, ok := t.(*testing.B); ok {
log = zap.NewNop()
}
chain, err := NewBlockchain(st, unitTestNetCfg.ProtocolConfiguration, log)
require.NoError(t, err) require.NoError(t, err)
return chain return chain
} }

View file

@ -450,7 +450,7 @@ func createVM(t *testing.T) (*vm.VM, *interop.Context, *Blockchain) {
return v, context, chain return v, context, chain
} }
func createVMAndContractState(t *testing.T) (*vm.VM, *state.Contract, *interop.Context, *Blockchain) { func createVMAndContractState(t testing.TB) (*vm.VM, *state.Contract, *interop.Context, *Blockchain) {
script := []byte("testscript") script := []byte("testscript")
m := manifest.NewManifest("Test") m := manifest.NewManifest("Test")
ne, err := nef.NewFile(script) ne, err := nef.NewFile(script)