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:
parent
9f377cde12
commit
0d5ede0bff
2 changed files with 11 additions and 6 deletions
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue