From a809807aa32f7344e434c19e8b8c6d564e8e415a Mon Sep 17 00:00:00 2001 From: Dhruba Basu <7675102+dhrubabasu@users.noreply.github.com> Date: Fri, 22 Dec 2023 17:54:18 -0500 Subject: [PATCH] Remove `snow.DefaultContextTest` (#2518) --- api/server/server_test.go | 4 +- go.mod | 2 +- go.sum | 4 +- indexer/index_test.go | 9 +- indexer/indexer_test.go | 21 +- network/test_network.go | 6 +- snow/consensus/snowman/consensus_test.go | 95 ++++++---- snow/consensus/snowman/network_test.go | 7 +- snow/context.go | 19 -- .../avalanche/bootstrap/bootstrapper_test.go | 3 +- .../avalanche/state/unique_vertex_test.go | 13 +- snow/engine/common/queue/jobs_test.go | 11 +- .../snowman/bootstrap/bootstrapper_test.go | 9 +- snow/engine/snowman/config_test.go | 8 +- .../snowman/syncer/state_syncer_test.go | 48 +++-- snow/engine/snowman/transitive_test.go | 18 +- snow/networking/benchlist/benchlist_test.go | 9 +- snow/networking/handler/handler_test.go | 21 +- snow/networking/handler/health_test.go | 3 +- snow/networking/handler/message_queue_test.go | 3 +- snow/networking/router/chain_router_test.go | 35 ++-- snow/networking/sender/sender_test.go | 179 ++++++++---------- snow/snowtest/snowtest.go | 53 ++++-- .../txs/add_subnet_validator_test.go | 6 +- vms/platformvm/txs/create_chain_test.go | 4 +- .../executor/staker_tx_verification_test.go | 35 ++-- vms/platformvm/utxo/handler_test.go | 6 +- vms/platformvm/vm_test.go | 3 +- vms/proposervm/batched_vm_test.go | 3 +- vms/proposervm/state_syncable_vm_test.go | 3 +- vms/proposervm/vm_regression_test.go | 3 +- vms/proposervm/vm_test.go | 18 +- vms/rpcchainvm/batched_vm_test.go | 4 +- vms/rpcchainvm/state_syncable_vm_test.go | 3 +- vms/rpcchainvm/with_context_vm_test.go | 4 +- 35 files changed, 367 insertions(+), 305 deletions(-) diff --git a/api/server/server_test.go b/api/server/server_test.go index 9f6f3732e591..865e090c10f1 100644 --- a/api/server/server_test.go +++ b/api/server/server_test.go @@ -11,6 +11,7 @@ import ( "github.com/stretchr/testify/require" "github.com/ava-labs/avalanchego/snow" + "github.com/ava-labs/avalanchego/snow/snowtest" ) func TestRejectMiddleware(t *testing.T) { @@ -58,7 +59,8 @@ func TestRejectMiddleware(t *testing.T) { t.Run(tt.name, func(t *testing.T) { require := require.New(t) - ctx := &snow.ConsensusContext{} + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) ctx.State.Set(snow.EngineState{ State: tt.state, }) diff --git a/go.mod b/go.mod index f165bfa3ed70..4f5855df0c4a 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/DataDog/zstd v1.5.2 github.com/Microsoft/go-winio v0.5.2 github.com/NYTimes/gziphandler v1.1.1 - github.com/ava-labs/coreth v0.12.9-rc.9.0.20231219231451-224728dbacb4 + github.com/ava-labs/coreth v0.12.9-rc.9.0.20231222191417-2e3f762373e9 github.com/ava-labs/ledger-avalanche/go v0.0.0-20231102202641-ae2ebdaeac34 github.com/btcsuite/btcd/btcutil v1.1.3 github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811 diff --git a/go.sum b/go.sum index 9c5c86ffbb1d..35f8b1814109 100644 --- a/go.sum +++ b/go.sum @@ -66,8 +66,8 @@ github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/ava-labs/coreth v0.12.9-rc.9.0.20231219231451-224728dbacb4 h1:LXL5nSxcblyBFR5/zdO4TAqSWqoB15bT3sGb1Nkh7o4= -github.com/ava-labs/coreth v0.12.9-rc.9.0.20231219231451-224728dbacb4/go.mod h1:84JZyt3colgzGI/jOYGB5Wzxr/wNP0zjebHiWZjFthk= +github.com/ava-labs/coreth v0.12.9-rc.9.0.20231222191417-2e3f762373e9 h1:DiJBkm2IJ/My4u5DP4gq2wIbdflFRuZJbDm8DbgNDdg= +github.com/ava-labs/coreth v0.12.9-rc.9.0.20231222191417-2e3f762373e9/go.mod h1:Xftjgk8T46k5/pWSQWcmdPanNl68kTcufd9S4kB58bM= github.com/ava-labs/ledger-avalanche/go v0.0.0-20231102202641-ae2ebdaeac34 h1:mg9Uw6oZFJKytJxgxnl3uxZOs/SB8CVHg6Io4Tf99Zc= github.com/ava-labs/ledger-avalanche/go v0.0.0-20231102202641-ae2ebdaeac34/go.mod h1:pJxaT9bUgeRNVmNRgtCHb7sFDIRKy7CzTQVi8gGNT6g= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= diff --git a/indexer/index_test.go b/indexer/index_test.go index 7edab5823feb..dbac03430a3f 100644 --- a/indexer/index_test.go +++ b/indexer/index_test.go @@ -28,7 +28,8 @@ func TestIndex(t *testing.T) { require.NoError(codec.RegisterCodec(codecVersion, linearcodec.NewDefault())) baseDB := memdb.New() db := versiondb.New(baseDB) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) indexIntf, err := newIndex(db, logging.NoLog{}, codec, mockable.Clock{}) require.NoError(err) @@ -116,7 +117,8 @@ func TestIndexGetContainerByRangeMaxPageSize(t *testing.T) { codec := codec.NewDefaultManager() require.NoError(codec.RegisterCodec(codecVersion, linearcodec.NewDefault())) db := memdb.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) indexIntf, err := newIndex(db, logging.NoLog{}, codec, mockable.Clock{}) require.NoError(err) idx := indexIntf.(*index) @@ -156,7 +158,8 @@ func TestDontIndexSameContainerTwice(t *testing.T) { codec := codec.NewDefaultManager() require.NoError(codec.RegisterCodec(codecVersion, linearcodec.NewDefault())) db := memdb.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) idx, err := newIndex(db, logging.NoLog{}, codec, mockable.Clock{}) require.NoError(err) diff --git a/indexer/indexer_test.go b/indexer/indexer_test.go index bf651101ed61..fd5abe1ddc6b 100644 --- a/indexer/indexer_test.go +++ b/indexer/indexer_test.go @@ -154,8 +154,8 @@ func TestIndexer(t *testing.T) { idxr.clock.Set(now) // Assert state is right - chain1Ctx := snowtest.ConsensusContext() - chain1Ctx.ChainID = ids.GenerateTestID() + snow1Ctx := snowtest.Context(t, snowtest.CChainID) + chain1Ctx := snowtest.ConsensusContext(snow1Ctx) isIncomplete, err := idxr.isIncomplete(chain1Ctx.ChainID) require.NoError(err) require.False(isIncomplete) @@ -259,8 +259,8 @@ func TestIndexer(t *testing.T) { require.Contains(server.endpoints, "/block") // Register a DAG chain - chain2Ctx := snowtest.ConsensusContext() - chain2Ctx.ChainID = ids.GenerateTestID() + snow2Ctx := snowtest.Context(t, snowtest.XChainID) + chain2Ctx := snowtest.ConsensusContext(snow2Ctx) isIncomplete, err = idxr.isIncomplete(chain2Ctx.ChainID) require.NoError(err) require.False(isIncomplete) @@ -419,8 +419,8 @@ func TestIncompleteIndex(t *testing.T) { require.False(idxr.indexingEnabled) // Register a chain - chain1Ctx := snowtest.ConsensusContext() - chain1Ctx.ChainID = ids.GenerateTestID() + snow1Ctx := snowtest.Context(t, snowtest.CChainID) + chain1Ctx := snowtest.ConsensusContext(snow1Ctx) isIncomplete, err := idxr.isIncomplete(chain1Ctx.ChainID) require.NoError(err) require.False(isIncomplete) @@ -501,10 +501,11 @@ func TestIgnoreNonDefaultChains(t *testing.T) { require.IsType(&indexer{}, idxrIntf) idxr := idxrIntf.(*indexer) - // Assert state is right - chain1Ctx := snowtest.ConsensusContext() - chain1Ctx.ChainID = ids.GenerateTestID() - chain1Ctx.SubnetID = ids.GenerateTestID() + // Create chain1Ctx for a random subnet + chain. + chain1Ctx := snowtest.ConsensusContext(&snow.Context{ + ChainID: ids.GenerateTestID(), + SubnetID: ids.GenerateTestID(), + }) // RegisterChain should return without adding an index for this chain chainVM := mocks.NewMockChainVM(ctrl) diff --git a/network/test_network.go b/network/test_network.go index 4f9b12fa48d8..1d3bcd933844 100644 --- a/network/test_network.go +++ b/network/test_network.go @@ -20,7 +20,6 @@ import ( "github.com/ava-labs/avalanchego/network/throttling" "github.com/ava-labs/avalanchego/snow/networking/router" "github.com/ava-labs/avalanchego/snow/networking/tracker" - "github.com/ava-labs/avalanchego/snow/snowtest" "github.com/ava-labs/avalanchego/snow/uptime" "github.com/ava-labs/avalanchego/snow/validators" "github.com/ava-labs/avalanchego/staking" @@ -187,7 +186,6 @@ func NewTestNetwork( networkConfig.TLSConfig = tlsConfig networkConfig.TLSKey = tlsCert.PrivateKey.(crypto.Signer) - ctx := snowtest.ConsensusContext() beacons := validators.NewManager() networkConfig.Validators = currentValidators networkConfig.Beacons = beacons @@ -207,7 +205,7 @@ func NewTestNetwork( return nil, err } networkConfig.CPUTargeter = tracker.NewTargeter( - ctx.Log, + logging.NoLog{}, &tracker.TargeterConfig{ VdrAlloc: float64(runtime.NumCPU()), MaxNonVdrUsage: .8 * float64(runtime.NumCPU()), @@ -217,7 +215,7 @@ func NewTestNetwork( networkConfig.ResourceTracker.CPUTracker(), ) networkConfig.DiskTargeter = tracker.NewTargeter( - ctx.Log, + logging.NoLog{}, &tracker.TargeterConfig{ VdrAlloc: 1000 * units.GiB, MaxNonVdrUsage: 1000 * units.GiB, diff --git a/snow/consensus/snowman/consensus_test.go b/snow/consensus/snowman/consensus_test.go index 0894f2290b77..375f81d5b3a8 100644 --- a/snow/consensus/snowman/consensus_test.go +++ b/snow/consensus/snowman/consensus_test.go @@ -94,7 +94,8 @@ func InitializeTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -119,7 +120,8 @@ func NumProcessingTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -161,7 +163,8 @@ func AddToTailTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -200,7 +203,8 @@ func AddToNonTailTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -248,7 +252,8 @@ func AddToUnknownTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -288,7 +293,8 @@ func StatusOrProcessingPreviouslyAcceptedTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -317,7 +323,8 @@ func StatusOrProcessingPreviouslyRejectedTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -354,7 +361,8 @@ func StatusOrProcessingUnissuedTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -391,7 +399,8 @@ func StatusOrProcessingIssuedTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -430,7 +439,8 @@ func RecordPollAcceptSingleBlockTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -472,7 +482,8 @@ func RecordPollAcceptAndRejectTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -525,7 +536,8 @@ func RecordPollSplitVoteNoChangeTest(t *testing.T, factory Factory) { require := require.New(t) sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) registerer := prometheus.NewRegistry() ctx.Registerer = registerer @@ -588,7 +600,8 @@ func RecordPollWhenFinalizedTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -613,7 +626,8 @@ func RecordPollRejectTransitivelyTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -683,7 +697,8 @@ func RecordPollTransitivelyResetConfidenceTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -775,7 +790,8 @@ func RecordPollInvalidVoteTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -816,7 +832,8 @@ func RecordPollTransitiveVotingTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 3, AlphaPreference: 3, @@ -926,7 +943,8 @@ func RecordPollDivergedVotingTest(t *testing.T, factory Factory) { sm := factory.New() require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1029,7 +1047,8 @@ func RecordPollDivergedVotingWithNoConflictingBitTest(t *testing.T, factory Fact sm := factory.New() require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1133,7 +1152,8 @@ func RecordPollChangePreferredChainTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1240,7 +1260,8 @@ func LastAcceptedTest(t *testing.T, factory Factory) { sm := factory.New() require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1324,7 +1345,8 @@ func MetricsProcessingErrorTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1353,7 +1375,8 @@ func MetricsAcceptedErrorTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1382,7 +1405,8 @@ func MetricsRejectedErrorTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1411,7 +1435,8 @@ func ErrorOnInitialRejectionTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1450,7 +1475,8 @@ func ErrorOnAcceptTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1487,7 +1513,8 @@ func ErrorOnRejectSiblingTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1533,7 +1560,8 @@ func ErrorOnTransitiveRejectionTest(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1609,7 +1637,7 @@ func RandomizedConsistencyTest(t *testing.T, factory Factory) { n := NewNetwork(params, numColors, source) for i := 0; i < numNodes; i++ { - require.NoError(n.AddNode(factory.New())) + require.NoError(n.AddNode(t, factory.New())) } for !n.Finalized() { @@ -1623,7 +1651,8 @@ func ErrorOnAddDecidedBlockTest(t *testing.T, factory Factory) { sm := factory.New() require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1653,7 +1682,8 @@ func ErrorOnAddDuplicateBlockIDTest(t *testing.T, factory Factory) { sm := factory.New() require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.Parameters{ K: 1, AlphaPreference: 1, @@ -1717,7 +1747,8 @@ func RecordPollWithDefaultParameters(t *testing.T, factory Factory) { sm := factory.New() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) params := snowball.DefaultParameters require.NoError(sm.Initialize(ctx, params, GenesisID, GenesisHeight, GenesisTimestamp)) diff --git a/snow/consensus/snowman/network_test.go b/snow/consensus/snowman/network_test.go index 3102c0cae573..9b402450c2de 100644 --- a/snow/consensus/snowman/network_test.go +++ b/snow/consensus/snowman/network_test.go @@ -5,6 +5,7 @@ package snowman import ( "context" + "testing" "github.com/ava-labs/avalanchego/ids" "github.com/ava-labs/avalanchego/snow/choices" @@ -65,8 +66,10 @@ func (n *Network) shuffleColors() { utils.Sort(n.colors) } -func (n *Network) AddNode(sm Consensus) error { - if err := sm.Initialize(snowtest.ConsensusContext(), n.params, Genesis.ID(), Genesis.Height(), Genesis.Timestamp()); err != nil { +func (n *Network) AddNode(t testing.TB, sm Consensus) error { + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) + if err := sm.Initialize(ctx, n.params, Genesis.ID(), Genesis.Height(), Genesis.Timestamp()); err != nil { return err } diff --git a/snow/context.go b/snow/context.go index 086243868bc2..60e2a305eb2b 100644 --- a/snow/context.go +++ b/snow/context.go @@ -96,22 +96,3 @@ type ConsensusContext struct { // True iff this chain is currently state-syncing StateSyncing utils.Atomic[bool] } - -func DefaultContextTest() *Context { - sk, err := bls.NewSecretKey() - if err != nil { - panic(err) - } - pk := bls.PublicFromSecretKey(sk) - return &Context{ - NetworkID: 0, - SubnetID: ids.Empty, - ChainID: ids.Empty, - NodeID: ids.EmptyNodeID, - PublicKey: pk, - Log: logging.NoLog{}, - BCLookup: ids.NewAliaser(), - Metrics: metrics.NewOptionalGatherer(), - ChainDataDir: "", - } -} diff --git a/snow/engine/avalanche/bootstrap/bootstrapper_test.go b/snow/engine/avalanche/bootstrap/bootstrapper_test.go index 8efaef5ee647..1ef3ef7102ef 100644 --- a/snow/engine/avalanche/bootstrap/bootstrapper_test.go +++ b/snow/engine/avalanche/bootstrap/bootstrapper_test.go @@ -56,7 +56,8 @@ func (t *testTx) Accept(ctx context.Context) error { func newConfig(t *testing.T) (Config, ids.NodeID, *common.SenderTest, *vertex.TestManager, *vertex.TestVM) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() db := memdb.New() diff --git a/snow/engine/avalanche/state/unique_vertex_test.go b/snow/engine/avalanche/state/unique_vertex_test.go index 4d6dcc55e385..cdd503157dbd 100644 --- a/snow/engine/avalanche/state/unique_vertex_test.go +++ b/snow/engine/avalanche/state/unique_vertex_test.go @@ -13,11 +13,11 @@ import ( "github.com/ava-labs/avalanchego/database/memdb" "github.com/ava-labs/avalanchego/ids" - "github.com/ava-labs/avalanchego/snow" "github.com/ava-labs/avalanchego/snow/choices" "github.com/ava-labs/avalanchego/snow/consensus/snowstorm" "github.com/ava-labs/avalanchego/snow/engine/avalanche/vertex" "github.com/ava-labs/avalanchego/utils/hashing" + "github.com/ava-labs/avalanchego/utils/logging" ) var errUnknownTx = errors.New("unknown tx") @@ -29,13 +29,12 @@ func newTestSerializer(t *testing.T, parse func(context.Context, []byte) (snowst vm.ParseTxF = parse baseDB := memdb.New() - ctx := snow.DefaultContextTest() s := NewSerializer( SerializerConfig{ - ChainID: ctx.ChainID, + ChainID: ids.Empty, VM: &vm, DB: baseDB, - Log: ctx.Log, + Log: logging.NoLog{}, }, ) @@ -260,9 +259,9 @@ func TestParseVertexWithIncorrectChainID(t *testing.T) { func TestParseVertexWithInvalidTxs(t *testing.T) { require := require.New(t) - ctx := snow.DefaultContextTest() + chainID := ids.Empty statelessVertex, err := vertex.Build( // regular, non-stop vertex - ctx.ChainID, + chainID, 0, nil, [][]byte{{1}}, @@ -290,7 +289,7 @@ func TestParseVertexWithInvalidTxs(t *testing.T) { require.ErrorIs(err, errUnknownVertex) childStatelessVertex, err := vertex.Build( // regular, non-stop vertex - ctx.ChainID, + chainID, 1, []ids.ID{id}, [][]byte{{2}}, diff --git a/snow/engine/common/queue/jobs_test.go b/snow/engine/common/queue/jobs_test.go index f5db64d66dfc..a50b3cb60e8a 100644 --- a/snow/engine/common/queue/jobs_test.go +++ b/snow/engine/common/queue/jobs_test.go @@ -116,7 +116,8 @@ func TestPushAndExecute(t *testing.T) { return job, nil } - count, err := jobs.ExecuteAll(context.Background(), snowtest.ConsensusContext(), &common.Halter{}, false) + snowCtx := snowtest.Context(t, snowtest.CChainID) + count, err := jobs.ExecuteAll(context.Background(), snowtest.ConsensusContext(snowCtx), &common.Halter{}, false) require.NoError(err) require.Equal(1, count) @@ -182,7 +183,8 @@ func TestRemoveDependency(t *testing.T) { } } - count, err := jobs.ExecuteAll(context.Background(), snowtest.ConsensusContext(), &common.Halter{}, false) + snowCtx := snowtest.Context(t, snowtest.CChainID) + count, err := jobs.ExecuteAll(context.Background(), snowtest.ConsensusContext(snowCtx), &common.Halter{}, false) require.NoError(err) require.Equal(2, count) require.True(executed0) @@ -355,7 +357,8 @@ func TestHandleJobWithMissingDependencyOnRunnableStack(t *testing.T) { } } - _, err = jobs.ExecuteAll(context.Background(), snowtest.ConsensusContext(), &common.Halter{}, false) + snowCtx := snowtest.Context(t, snowtest.CChainID) + _, err = jobs.ExecuteAll(context.Background(), snowtest.ConsensusContext(snowCtx), &common.Halter{}, false) // Assert that the database closed error on job1 causes ExecuteAll // to fail in the middle of execution. require.ErrorIs(err, database.ErrClosed) @@ -387,7 +390,7 @@ func TestHandleJobWithMissingDependencyOnRunnableStack(t *testing.T) { require.NoError(err) require.True(hasNext) - count, err := jobs.ExecuteAll(context.Background(), snowtest.ConsensusContext(), &common.Halter{}, false) + count, err := jobs.ExecuteAll(context.Background(), snowtest.ConsensusContext(snowCtx), &common.Halter{}, false) require.NoError(err) require.Equal(2, count) require.True(executed1) diff --git a/snow/engine/snowman/bootstrap/bootstrapper_test.go b/snow/engine/snowman/bootstrap/bootstrapper_test.go index d78ee2fe3e61..363af8c11488 100644 --- a/snow/engine/snowman/bootstrap/bootstrapper_test.go +++ b/snow/engine/snowman/bootstrap/bootstrapper_test.go @@ -39,7 +39,8 @@ var errUnknownBlock = errors.New("unknown block") func newConfig(t *testing.T) (Config, ids.NodeID, *common.SenderTest, *block.TestVM) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() @@ -105,7 +106,8 @@ func TestBootstrapperStartsOnlyIfEnoughStakeIsConnected(t *testing.T) { sender.Default(true) vm.Default(true) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) // create boostrapper configuration peers := validators.NewManager() sampleK := 2 @@ -1315,7 +1317,8 @@ func TestBootstrapContinueAfterHalt(t *testing.T) { func TestBootstrapNoParseOnNew(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) peers := validators.NewManager() sender := &common.SenderTest{} diff --git a/snow/engine/snowman/config_test.go b/snow/engine/snowman/config_test.go index 36e01d0d8f14..2991a092bdfc 100644 --- a/snow/engine/snowman/config_test.go +++ b/snow/engine/snowman/config_test.go @@ -4,6 +4,8 @@ package snowman import ( + "testing" + "github.com/ava-labs/avalanchego/snow/consensus/snowball" "github.com/ava-labs/avalanchego/snow/consensus/snowman" "github.com/ava-labs/avalanchego/snow/engine/common" @@ -13,9 +15,11 @@ import ( "github.com/ava-labs/avalanchego/snow/validators" ) -func DefaultConfig() Config { +func DefaultConfig(t testing.TB) Config { + ctx := snowtest.Context(t, snowtest.PChainID) + return Config{ - Ctx: snowtest.ConsensusContext(), + Ctx: snowtest.ConsensusContext(ctx), VM: &block.TestVM{}, Sender: &common.SenderTest{}, Validators: validators.NewManager(), diff --git a/snow/engine/snowman/syncer/state_syncer_test.go b/snow/engine/snowman/syncer/state_syncer_test.go index 7e6b58694375..bb0ed52e6bae 100644 --- a/snow/engine/snowman/syncer/state_syncer_test.go +++ b/snow/engine/snowman/syncer/state_syncer_test.go @@ -39,7 +39,8 @@ func TestStateSyncerIsEnabledIfVMSupportsStateSyncing(t *testing.T) { require := require.New(t) // Build state syncer - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) sender := &common.SenderTest{T: t} // Non state syncableVM case @@ -109,7 +110,8 @@ func TestStateSyncerIsEnabledIfVMSupportsStateSyncing(t *testing.T) { func TestStateSyncingStartsOnlyIfEnoughStakeIsConnected(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) alpha, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -151,7 +153,8 @@ func TestStateSyncingStartsOnlyIfEnoughStakeIsConnected(t *testing.T) { func TestStateSyncLocalSummaryIsIncludedAmongFrontiersIfAvailable(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -188,7 +191,8 @@ func TestStateSyncLocalSummaryIsIncludedAmongFrontiersIfAvailable(t *testing.T) func TestStateSyncNotFoundOngoingSummaryIsNotIncludedAmongFrontiers(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -218,7 +222,8 @@ func TestStateSyncNotFoundOngoingSummaryIsNotIncludedAmongFrontiers(t *testing.T func TestBeaconsAreReachedForFrontiersUponStartup(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -256,7 +261,8 @@ func TestBeaconsAreReachedForFrontiersUponStartup(t *testing.T) { func TestUnRequestedStateSummaryFrontiersAreDropped(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -345,7 +351,8 @@ func TestUnRequestedStateSummaryFrontiersAreDropped(t *testing.T) { func TestMalformedStateSummaryFrontiersAreDropped(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -413,7 +420,8 @@ func TestMalformedStateSummaryFrontiersAreDropped(t *testing.T) { func TestLateResponsesFromUnresponsiveFrontiersAreNotRecorded(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -495,7 +503,8 @@ func TestLateResponsesFromUnresponsiveFrontiersAreNotRecorded(t *testing.T) { func TestStateSyncIsRestartedIfTooManyFrontierSeedersTimeout(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -583,7 +592,8 @@ func TestStateSyncIsRestartedIfTooManyFrontierSeedersTimeout(t *testing.T) { func TestVoteRequestsAreSentAsAllFrontierBeaconsResponded(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -653,7 +663,8 @@ func TestVoteRequestsAreSentAsAllFrontierBeaconsResponded(t *testing.T) { func TestUnRequestedVotesAreDropped(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -769,7 +780,8 @@ func TestUnRequestedVotesAreDropped(t *testing.T) { func TestVotesForUnknownSummariesAreDropped(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -871,7 +883,8 @@ func TestVotesForUnknownSummariesAreDropped(t *testing.T) { func TestStateSummaryIsPassedToVMAsMajorityOfVotesIsCastedForIt(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -1015,7 +1028,8 @@ func TestStateSummaryIsPassedToVMAsMajorityOfVotesIsCastedForIt(t *testing.T) { func TestVotingIsRestartedIfMajorityIsNotReachedDueToTimeouts(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -1120,7 +1134,8 @@ func TestVotingIsRestartedIfMajorityIsNotReachedDueToTimeouts(t *testing.T) { func TestStateSyncIsStoppedIfEnoughVotesAreCastedWithNoClearMajority(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) @@ -1265,7 +1280,8 @@ func TestStateSyncIsStoppedIfEnoughVotesAreCastedWithNoClearMajority(t *testing. func TestStateSyncIsDoneOnceVMNotifies(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) beacons := buildTestPeers(t, ctx.SubnetID) totalWeight, err := beacons.TotalWeight(ctx.SubnetID) require.NoError(err) diff --git a/snow/engine/snowman/transitive_test.go b/snow/engine/snowman/transitive_test.go index 738f20440c58..c06dc5c924cf 100644 --- a/snow/engine/snowman/transitive_test.go +++ b/snow/engine/snowman/transitive_test.go @@ -98,7 +98,7 @@ func setup(t *testing.T, engCfg Config) (ids.NodeID, validators.Manager, *common } func setupDefaultConfig(t *testing.T) (ids.NodeID, validators.Manager, *common.SenderTest, *block.TestVM, *Transitive, snowman.Block) { - engCfg := DefaultConfig() + engCfg := DefaultConfig(t) return setup(t, engCfg) } @@ -328,7 +328,7 @@ func TestEngineQuery(t *testing.T) { func TestEngineMultipleQuery(t *testing.T) { require := require.New(t) - engCfg := DefaultConfig() + engCfg := DefaultConfig(t) engCfg.Params = snowball.Parameters{ K: 3, AlphaPreference: 2, @@ -747,7 +747,7 @@ func TestEngineRepoll(t *testing.T) { func TestVoteCanceling(t *testing.T) { require := require.New(t) - engCfg := DefaultConfig() + engCfg := DefaultConfig(t) engCfg.Params = snowball.Parameters{ K: 3, AlphaPreference: 2, @@ -851,7 +851,7 @@ func TestVoteCanceling(t *testing.T) { func TestEngineNoQuery(t *testing.T) { require := require.New(t) - engCfg := DefaultConfig() + engCfg := DefaultConfig(t) sender := &common.SenderTest{T: t} engCfg.Sender = sender @@ -904,7 +904,7 @@ func TestEngineNoQuery(t *testing.T) { func TestEngineNoRepollQuery(t *testing.T) { require := require.New(t) - engCfg := DefaultConfig() + engCfg := DefaultConfig(t) sender := &common.SenderTest{T: t} engCfg.Sender = sender @@ -1596,7 +1596,7 @@ func TestEnginePushQueryRequestIDConflict(t *testing.T) { func TestEngineAggressivePolling(t *testing.T) { require := require.New(t) - engCfg := DefaultConfig() + engCfg := DefaultConfig(t) engCfg.Params.ConcurrentRepolls = 2 vals := validators.NewManager() @@ -1684,7 +1684,7 @@ func TestEngineAggressivePolling(t *testing.T) { func TestEngineDoubleChit(t *testing.T) { require := require.New(t) - engCfg := DefaultConfig() + engCfg := DefaultConfig(t) engCfg.Params = snowball.Parameters{ K: 2, AlphaPreference: 2, @@ -1794,7 +1794,7 @@ func TestEngineDoubleChit(t *testing.T) { func TestEngineBuildBlockLimit(t *testing.T) { require := require.New(t) - engCfg := DefaultConfig() + engCfg := DefaultConfig(t) engCfg.Params.K = 1 engCfg.Params.AlphaPreference = 1 engCfg.Params.AlphaConfidence = 1 @@ -2816,7 +2816,7 @@ func TestEngineBuildBlockWithCachedNonVerifiedParent(t *testing.T) { func TestEngineApplyAcceptedFrontierInQueryFailed(t *testing.T) { require := require.New(t) - engCfg := DefaultConfig() + engCfg := DefaultConfig(t) engCfg.Params = snowball.Parameters{ K: 1, AlphaPreference: 1, diff --git a/snow/networking/benchlist/benchlist_test.go b/snow/networking/benchlist/benchlist_test.go index aef4513edf6d..5e068e78aef4 100644 --- a/snow/networking/benchlist/benchlist_test.go +++ b/snow/networking/benchlist/benchlist_test.go @@ -20,7 +20,8 @@ var minimumFailingDuration = 5 * time.Minute func TestBenchlistAdd(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() vdrID0 := ids.GenerateTestNodeID() vdrID1 := ids.GenerateTestNodeID() @@ -144,7 +145,8 @@ func TestBenchlistAdd(t *testing.T) { func TestBenchlistMaxStake(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() vdrID0 := ids.GenerateTestNodeID() vdrID1 := ids.GenerateTestNodeID() @@ -257,7 +259,8 @@ func TestBenchlistMaxStake(t *testing.T) { func TestBenchlistRemove(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() vdrID0 := ids.GenerateTestNodeID() vdrID1 := ids.GenerateTestNodeID() diff --git a/snow/networking/handler/handler_test.go b/snow/networking/handler/handler_test.go index 80330f872f45..71c3042c1807 100644 --- a/snow/networking/handler/handler_test.go +++ b/snow/networking/handler/handler_test.go @@ -41,7 +41,8 @@ func TestHandlerDropsTimedOutMessages(t *testing.T) { called := make(chan struct{}) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() vdr0 := ids.GenerateTestNodeID() @@ -136,7 +137,8 @@ func TestHandlerClosesOnError(t *testing.T) { require := require.New(t) closed := make(chan struct{}, 1) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() require.NoError(vdrs.AddStaker(ctx.SubnetID, ids.GenerateTestNodeID(), nil, ids.Empty, 1)) @@ -227,7 +229,8 @@ func TestHandlerDropsGossipDuringBootstrapping(t *testing.T) { require := require.New(t) closed := make(chan struct{}, 1) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() require.NoError(vdrs.AddStaker(ctx.SubnetID, ids.GenerateTestNodeID(), nil, ids.Empty, 1)) @@ -304,7 +307,8 @@ func TestHandlerDropsGossipDuringBootstrapping(t *testing.T) { func TestHandlerDispatchInternal(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) msgFromVMChan := make(chan common.Message) vdrs := validators.NewManager() require.NoError(vdrs.AddStaker(ctx.SubnetID, ids.GenerateTestNodeID(), nil, ids.Empty, 1)) @@ -373,7 +377,8 @@ func TestHandlerDispatchInternal(t *testing.T) { func TestHandlerSubnetConnector(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() require.NoError(vdrs.AddStaker(ctx.SubnetID, ids.GenerateTestNodeID(), nil, ids.Empty, 1)) @@ -548,7 +553,8 @@ func TestDynamicEngineTypeDispatch(t *testing.T) { require := require.New(t) messageReceived := make(chan struct{}) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() require.NoError(vdrs.AddStaker(ctx.SubnetID, ids.GenerateTestNodeID(), nil, ids.Empty, 1)) @@ -621,7 +627,8 @@ func TestDynamicEngineTypeDispatch(t *testing.T) { func TestHandlerStartError(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) resourceTracker, err := tracker.NewResourceTracker( prometheus.NewRegistry(), resource.NoUsage, diff --git a/snow/networking/handler/health_test.go b/snow/networking/handler/health_test.go index 3b1335417fa1..31c3d35ce348 100644 --- a/snow/networking/handler/health_test.go +++ b/snow/networking/handler/health_test.go @@ -48,7 +48,8 @@ func TestHealthCheckSubnet(t *testing.T) { t.Run(name, func(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() diff --git a/snow/networking/handler/message_queue_test.go b/snow/networking/handler/message_queue_test.go index 3930bcf4522b..266843772c3c 100644 --- a/snow/networking/handler/message_queue_test.go +++ b/snow/networking/handler/message_queue_test.go @@ -26,7 +26,8 @@ func TestQueue(t *testing.T) { ctrl := gomock.NewController(t) require := require.New(t) cpuTracker := tracker.NewMockTracker(ctrl) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() vdr1ID, vdr2ID := ids.GenerateTestNodeID(), ids.GenerateTestNodeID() require.NoError(vdrs.AddStaker(ctx.SubnetID, vdr1ID, nil, ids.Empty, 1)) diff --git a/snow/networking/router/chain_router_test.go b/snow/networking/router/chain_router_test.go index 6e08f8e7b7c2..d99fecd1af00 100644 --- a/snow/networking/router/chain_router_test.go +++ b/snow/networking/router/chain_router_test.go @@ -15,7 +15,6 @@ import ( "go.uber.org/mock/gomock" - "github.com/ava-labs/avalanchego/api/metrics" "github.com/ava-labs/avalanchego/ids" "github.com/ava-labs/avalanchego/message" "github.com/ava-labs/avalanchego/proto/pb/p2p" @@ -49,7 +48,8 @@ const ( func TestShutdown(t *testing.T) { require := require.New(t) - chainCtx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + chainCtx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() require.NoError(vdrs.AddStaker(chainCtx.SubnetID, ids.GenerateTestNodeID(), nil, ids.Empty, 1)) benchlist := benchlist.NewNoBenchlist() @@ -184,7 +184,8 @@ func TestShutdown(t *testing.T) { func TestShutdownTimesOut(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) nodeID := ids.EmptyNodeID vdrs := validators.NewManager() require.NoError(vdrs.AddStaker(ctx.SubnetID, ids.GenerateTestNodeID(), nil, ids.Empty, 1)) @@ -378,7 +379,8 @@ func TestRouterTimeout(t *testing.T) { wg = sync.WaitGroup{} ) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() require.NoError(vdrs.AddStaker(ctx.SubnetID, ids.GenerateTestNodeID(), nil, ids.Empty, 1)) @@ -727,7 +729,8 @@ func TestRouterHonorsRequestedEngine(t *testing.T) { h := handler.NewMockHandler(ctrl) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) h.EXPECT().Context().Return(ctx).AnyTimes() h.EXPECT().SetOnStopped(gomock.Any()).AnyTimes() h.EXPECT().Stop(gomock.Any()).AnyTimes() @@ -951,7 +954,8 @@ func TestValidatorOnlyMessageDrops(t *testing.T) { calledF := false wg := sync.WaitGroup{} - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) sb := subnets.New(ctx.NodeID, subnets.Config{ValidatorOnly: true}) vdrs := validators.NewManager() vID := ids.GenerateTestNodeID() @@ -1103,13 +1107,10 @@ func TestConnectedSubnet(t *testing.T) { )) // Create bootstrapper, engine and handler - platform := snowtest.ConsensusContext() - platform.ChainID = constants.PlatformChainID - platform.SubnetID = constants.PrimaryNetworkID - platform.Registerer = prometheus.NewRegistry() - platform.Metrics = metrics.NewOptionalGatherer() - platform.Executing.Set(false) - platform.State.Set(snow.EngineState{ + snowCtx := snowtest.Context(t, snowtest.PChainID) + ctx := snowtest.ConsensusContext(snowCtx) + ctx.Executing.Set(false) + ctx.State.Set(snow.EngineState{ Type: engineType, State: snow.NormalOp, }) @@ -1128,7 +1129,7 @@ func TestConnectedSubnet(t *testing.T) { } platformHandler := handler.NewMockHandler(ctrl) - platformHandler.EXPECT().Context().Return(platform).AnyTimes() + platformHandler.EXPECT().Context().Return(ctx).AnyTimes() platformHandler.EXPECT().SetOnStopped(gomock.Any()).AnyTimes() platformHandler.EXPECT().Push(gomock.Any(), myConnectedMsg).Times(1) platformHandler.EXPECT().Push(gomock.Any(), mySubnetConnectedMsg0).Times(1) @@ -1222,7 +1223,8 @@ func TestValidatorOnlyAllowedNodeMessageDrops(t *testing.T) { calledF := false wg := sync.WaitGroup{} - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) allowedID := ids.GenerateTestNodeID() allowedSet := set.Of(allowedID) sb := subnets.New(ctx.NodeID, subnets.Config{ValidatorOnly: true, AllowedNodes: allowedSet}) @@ -1547,7 +1549,8 @@ func newChainRouterTest(t *testing.T) (*ChainRouter, *common.EngineTest) { )) // Create bootstrapper, engine and handler - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.PChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() require.NoError(t, vdrs.AddStaker(ctx.SubnetID, ids.GenerateTestNodeID(), nil, ids.Empty, 1)) diff --git a/snow/networking/sender/sender_test.go b/snow/networking/sender/sender_test.go index b4ba9db4f89a..69363b2eeb67 100644 --- a/snow/networking/sender/sender_test.go +++ b/snow/networking/sender/sender_test.go @@ -54,7 +54,8 @@ var defaultSubnetConfig = subnets.Config{ func TestTimeout(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() require.NoError(vdrs.AddStaker(ctx.SubnetID, ids.GenerateTestNodeID(), nil, ids.Empty, 1)) benchlist := benchlist.NewNoBenchlist() @@ -113,7 +114,7 @@ func TestTimeout(t *testing.T) { ) require.NoError(err) - ctx2 := snowtest.ConsensusContext() + ctx2 := snowtest.ConsensusContext(snowCtx) resourceTracker, err := tracker.NewResourceTracker( prometheus.NewRegistry(), resource.NoUsage, @@ -318,7 +319,8 @@ func TestTimeout(t *testing.T) { func TestReliableMessages(t *testing.T) { require := require.New(t) - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() require.NoError(vdrs.AddStaker(ctx.SubnetID, ids.BuildTestNodeID([]byte{1}), nil, ids.Empty, 1)) benchlist := benchlist.NewNoBenchlist() @@ -378,7 +380,7 @@ func TestReliableMessages(t *testing.T) { ) require.NoError(err) - ctx2 := snowtest.ConsensusContext() + ctx2 := snowtest.ConsensusContext(snowCtx) resourceTracker, err := tracker.NewResourceTracker( prometheus.NewRegistry(), resource.NoUsage, @@ -464,7 +466,8 @@ func TestReliableMessagesToMyself(t *testing.T) { require := require.New(t) benchlist := benchlist.NewNoBenchlist() - ctx := snowtest.ConsensusContext() + snowCtx := snowtest.Context(t, snowtest.CChainID) + ctx := snowtest.ConsensusContext(snowCtx) vdrs := validators.NewManager() require.NoError(vdrs.AddStaker(ctx.SubnetID, ids.GenerateTestNodeID(), nil, ids.Empty, 1)) tm, err := timeout.NewManager( @@ -523,7 +526,7 @@ func TestReliableMessagesToMyself(t *testing.T) { ) require.NoError(err) - ctx2 := snowtest.ConsensusContext() + ctx2 := snowtest.ConsensusContext(snowCtx) resourceTracker, err := tracker.NewResourceTracker( prometheus.NewRegistry(), resource.NoUsage, @@ -607,26 +610,16 @@ func TestReliableMessagesToMyself(t *testing.T) { func TestSender_Bootstrap_Requests(t *testing.T) { var ( - chainID = ids.GenerateTestID() - subnetID = ids.GenerateTestID() - myNodeID = ids.GenerateTestNodeID() successNodeID = ids.GenerateTestNodeID() failedNodeID = ids.GenerateTestNodeID() deadline = time.Second requestID = uint32(1337) - ctx = snow.DefaultContextTest() heights = []uint64{1, 2, 3} containerIDs = []ids.ID{ids.GenerateTestID(), ids.GenerateTestID()} engineType = p2p.EngineType_ENGINE_TYPE_SNOWMAN ) - ctx.ChainID = chainID - ctx.SubnetID = subnetID - ctx.NodeID = myNodeID - snowCtx := &snow.ConsensusContext{ - Context: ctx, - Registerer: prometheus.NewRegistry(), - AvalancheRegisterer: prometheus.NewRegistry(), - } + snowCtx := snowtest.Context(t, snowtest.PChainID) + ctx := snowtest.ConsensusContext(snowCtx) type test struct { name string @@ -645,21 +638,21 @@ func TestSender_Bootstrap_Requests(t *testing.T) { failedMsgF: func(nodeID ids.NodeID) message.InboundMessage { return message.InternalGetStateSummaryFrontierFailed( nodeID, - chainID, + ctx.ChainID, requestID, ) }, assertMsgToMyself: func(require *require.Assertions, msg message.InboundMessage) { require.IsType(&p2p.GetStateSummaryFrontier{}, msg.Message()) innerMsg := msg.Message().(*p2p.GetStateSummaryFrontier) - require.Equal(chainID[:], innerMsg.ChainId) + require.Equal(ctx.ChainID[:], innerMsg.ChainId) require.Equal(requestID, innerMsg.RequestId) require.Equal(uint64(deadline), innerMsg.Deadline) }, expectedResponseOp: message.StateSummaryFrontierOp, setMsgCreatorExpect: func(msgCreator *message.MockOutboundMsgBuilder) { msgCreator.EXPECT().GetStateSummaryFrontier( - chainID, + ctx.ChainID, requestID, deadline, ).Return(nil, nil) @@ -669,7 +662,7 @@ func TestSender_Bootstrap_Requests(t *testing.T) { gomock.Any(), // Outbound message // Note [myNodeID] is not in this set set.Of(successNodeID, failedNodeID), - subnetID, // Subnet ID + ctx.SubnetID, // Subnet ID gomock.Any(), ).Return(set.Of(successNodeID)) }, @@ -686,14 +679,14 @@ func TestSender_Bootstrap_Requests(t *testing.T) { failedMsgF: func(nodeID ids.NodeID) message.InboundMessage { return message.InternalGetAcceptedStateSummaryFailed( nodeID, - chainID, + ctx.ChainID, requestID, ) }, assertMsgToMyself: func(require *require.Assertions, msg message.InboundMessage) { require.IsType(&p2p.GetAcceptedStateSummary{}, msg.Message()) innerMsg := msg.Message().(*p2p.GetAcceptedStateSummary) - require.Equal(chainID[:], innerMsg.ChainId) + require.Equal(ctx.ChainID[:], innerMsg.ChainId) require.Equal(requestID, innerMsg.RequestId) require.Equal(uint64(deadline), innerMsg.Deadline) require.Equal(heights, innerMsg.Heights) @@ -701,7 +694,7 @@ func TestSender_Bootstrap_Requests(t *testing.T) { expectedResponseOp: message.AcceptedStateSummaryOp, setMsgCreatorExpect: func(msgCreator *message.MockOutboundMsgBuilder) { msgCreator.EXPECT().GetAcceptedStateSummary( - chainID, + ctx.ChainID, requestID, deadline, heights, @@ -712,7 +705,7 @@ func TestSender_Bootstrap_Requests(t *testing.T) { gomock.Any(), // Outbound message // Note [myNodeID] is not in this set set.Of(successNodeID, failedNodeID), - subnetID, // Subnet ID + ctx.SubnetID, // Subnet ID gomock.Any(), ).Return(set.Of(successNodeID)) }, @@ -725,7 +718,7 @@ func TestSender_Bootstrap_Requests(t *testing.T) { failedMsgF: func(nodeID ids.NodeID) message.InboundMessage { return message.InternalGetAcceptedFrontierFailed( nodeID, - chainID, + ctx.ChainID, requestID, engineType, ) @@ -733,7 +726,7 @@ func TestSender_Bootstrap_Requests(t *testing.T) { assertMsgToMyself: func(require *require.Assertions, msg message.InboundMessage) { require.IsType(&p2p.GetAcceptedFrontier{}, msg.Message()) innerMsg := msg.Message().(*p2p.GetAcceptedFrontier) - require.Equal(chainID[:], innerMsg.ChainId) + require.Equal(ctx.ChainID[:], innerMsg.ChainId) require.Equal(requestID, innerMsg.RequestId) require.Equal(uint64(deadline), innerMsg.Deadline) require.Equal(engineType, innerMsg.EngineType) @@ -741,7 +734,7 @@ func TestSender_Bootstrap_Requests(t *testing.T) { expectedResponseOp: message.AcceptedFrontierOp, setMsgCreatorExpect: func(msgCreator *message.MockOutboundMsgBuilder) { msgCreator.EXPECT().GetAcceptedFrontier( - chainID, + ctx.ChainID, requestID, deadline, engineType, @@ -752,7 +745,7 @@ func TestSender_Bootstrap_Requests(t *testing.T) { gomock.Any(), // Outbound message // Note [myNodeID] is not in this set set.Of(successNodeID, failedNodeID), - subnetID, // Subnet ID + ctx.SubnetID, // Subnet ID gomock.Any(), ).Return(set.Of(successNodeID)) }, @@ -766,7 +759,7 @@ func TestSender_Bootstrap_Requests(t *testing.T) { failedMsgF: func(nodeID ids.NodeID) message.InboundMessage { return message.InternalGetAcceptedFailed( nodeID, - chainID, + ctx.ChainID, requestID, engineType, ) @@ -774,7 +767,7 @@ func TestSender_Bootstrap_Requests(t *testing.T) { assertMsgToMyself: func(require *require.Assertions, msg message.InboundMessage) { require.IsType(&p2p.GetAccepted{}, msg.Message()) innerMsg := msg.Message().(*p2p.GetAccepted) - require.Equal(chainID[:], innerMsg.ChainId) + require.Equal(ctx.ChainID[:], innerMsg.ChainId) require.Equal(requestID, innerMsg.RequestId) require.Equal(uint64(deadline), innerMsg.Deadline) require.Equal(engineType, innerMsg.EngineType) @@ -782,7 +775,7 @@ func TestSender_Bootstrap_Requests(t *testing.T) { expectedResponseOp: message.AcceptedOp, setMsgCreatorExpect: func(msgCreator *message.MockOutboundMsgBuilder) { msgCreator.EXPECT().GetAccepted( - chainID, + ctx.ChainID, requestID, deadline, containerIDs, @@ -794,7 +787,7 @@ func TestSender_Bootstrap_Requests(t *testing.T) { gomock.Any(), // Outbound message // Note [myNodeID] is not in this set set.Of(successNodeID, failedNodeID), - subnetID, // Subnet ID + ctx.SubnetID, // Subnet ID gomock.Any(), ).Return(set.Of(successNodeID)) }, @@ -815,14 +808,17 @@ func TestSender_Bootstrap_Requests(t *testing.T) { externalSender = NewMockExternalSender(ctrl) timeoutManager = timeout.NewMockManager(ctrl) router = router.NewMockRouter(ctrl) - nodeIDs = set.Of(successNodeID, failedNodeID, myNodeID) + nodeIDs = set.Of(successNodeID, failedNodeID, ctx.NodeID) nodeIDsCopy set.Set[ids.NodeID] ) nodeIDsCopy.Union(nodeIDs) - snowCtx.Registerer = prometheus.NewRegistry() + + // Instantiate new registerers to avoid duplicate metrics + // registration + ctx.Registerer = prometheus.NewRegistry() sender, err := New( - snowCtx, + ctx, msgCreator, externalSender, router, @@ -841,8 +837,8 @@ func TestSender_Bootstrap_Requests(t *testing.T) { router.EXPECT().RegisterRequest( gomock.Any(), // Context nodeID, // Node ID - chainID, // Source Chain - chainID, // Destination Chain + ctx.ChainID, // Source Chain + ctx.ChainID, // Destination Chain requestID, // Request ID tt.expectedResponseOp, // Operation expectedFailedMsg, // Failure Message @@ -879,25 +875,15 @@ func TestSender_Bootstrap_Requests(t *testing.T) { func TestSender_Bootstrap_Responses(t *testing.T) { var ( - chainID = ids.GenerateTestID() - subnetID = ids.GenerateTestID() - myNodeID = ids.GenerateTestNodeID() destinationNodeID = ids.GenerateTestNodeID() deadline = time.Second requestID = uint32(1337) - ctx = snow.DefaultContextTest() summaryIDs = []ids.ID{ids.GenerateTestID(), ids.GenerateTestID()} summary = []byte{1, 2, 3} engineType = p2p.EngineType_ENGINE_TYPE_AVALANCHE ) - ctx.ChainID = chainID - ctx.SubnetID = subnetID - ctx.NodeID = myNodeID - snowCtx := &snow.ConsensusContext{ - Context: ctx, - Registerer: prometheus.NewRegistry(), - AvalancheRegisterer: prometheus.NewRegistry(), - } + snowCtx := snowtest.Context(t, snowtest.PChainID) + ctx := snowtest.ConsensusContext(snowCtx) type test struct { name string @@ -912,7 +898,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { name: "StateSummaryFrontier", setMsgCreatorExpect: func(msgCreator *message.MockOutboundMsgBuilder) { msgCreator.EXPECT().StateSummaryFrontier( - chainID, + ctx.ChainID, requestID, summary, ).Return(nil, nil) // Don't care about the message @@ -920,7 +906,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { assertMsgToMyself: func(require *require.Assertions, msg message.InboundMessage) { require.IsType(&p2p.StateSummaryFrontier{}, msg.Message()) innerMsg := msg.Message().(*p2p.StateSummaryFrontier) - require.Equal(chainID[:], innerMsg.ChainId) + require.Equal(ctx.ChainID[:], innerMsg.ChainId) require.Equal(requestID, innerMsg.RequestId) require.Equal(summary, innerMsg.Summary) }, @@ -928,7 +914,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { externalSender.EXPECT().Send( gomock.Any(), // Outbound message set.Of(destinationNodeID), // Node IDs - subnetID, // Subnet ID + ctx.SubnetID, // Subnet ID gomock.Any(), ).Return(nil) }, @@ -940,7 +926,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { name: "AcceptedStateSummary", setMsgCreatorExpect: func(msgCreator *message.MockOutboundMsgBuilder) { msgCreator.EXPECT().AcceptedStateSummary( - chainID, + ctx.ChainID, requestID, summaryIDs, ).Return(nil, nil) // Don't care about the message @@ -948,7 +934,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { assertMsgToMyself: func(require *require.Assertions, msg message.InboundMessage) { require.IsType(&p2p.AcceptedStateSummary{}, msg.Message()) innerMsg := msg.Message().(*p2p.AcceptedStateSummary) - require.Equal(chainID[:], innerMsg.ChainId) + require.Equal(ctx.ChainID[:], innerMsg.ChainId) require.Equal(requestID, innerMsg.RequestId) for i, summaryID := range summaryIDs { require.Equal(summaryID[:], innerMsg.SummaryIds[i]) @@ -958,7 +944,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { externalSender.EXPECT().Send( gomock.Any(), // Outbound message set.Of(destinationNodeID), // Node IDs - subnetID, // Subnet ID + ctx.SubnetID, // Subnet ID gomock.Any(), ).Return(nil) }, @@ -970,7 +956,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { name: "AcceptedFrontier", setMsgCreatorExpect: func(msgCreator *message.MockOutboundMsgBuilder) { msgCreator.EXPECT().AcceptedFrontier( - chainID, + ctx.ChainID, requestID, summaryIDs[0], ).Return(nil, nil) // Don't care about the message @@ -978,7 +964,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { assertMsgToMyself: func(require *require.Assertions, msg message.InboundMessage) { require.IsType(&p2p.AcceptedFrontier{}, msg.Message()) innerMsg := msg.Message().(*p2p.AcceptedFrontier) - require.Equal(chainID[:], innerMsg.ChainId) + require.Equal(ctx.ChainID[:], innerMsg.ChainId) require.Equal(requestID, innerMsg.RequestId) require.Equal(summaryIDs[0][:], innerMsg.ContainerId) }, @@ -986,7 +972,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { externalSender.EXPECT().Send( gomock.Any(), // Outbound message set.Of(destinationNodeID), // Node IDs - subnetID, // Subnet ID + ctx.SubnetID, // Subnet ID gomock.Any(), ).Return(nil) }, @@ -998,7 +984,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { name: "Accepted", setMsgCreatorExpect: func(msgCreator *message.MockOutboundMsgBuilder) { msgCreator.EXPECT().Accepted( - chainID, + ctx.ChainID, requestID, summaryIDs, ).Return(nil, nil) // Don't care about the message @@ -1006,7 +992,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { assertMsgToMyself: func(require *require.Assertions, msg message.InboundMessage) { require.IsType(&p2p.Accepted{}, msg.Message()) innerMsg := msg.Message().(*p2p.Accepted) - require.Equal(chainID[:], innerMsg.ChainId) + require.Equal(ctx.ChainID[:], innerMsg.ChainId) require.Equal(requestID, innerMsg.RequestId) for i, summaryID := range summaryIDs { require.Equal(summaryID[:], innerMsg.ContainerIds[i]) @@ -1016,7 +1002,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { externalSender.EXPECT().Send( gomock.Any(), // Outbound message set.Of(destinationNodeID), // Node IDs - subnetID, // Subnet ID + ctx.SubnetID, // Subnet ID gomock.Any(), ).Return(nil) }, @@ -1040,11 +1026,11 @@ func TestSender_Bootstrap_Responses(t *testing.T) { // Instantiate new registerers to avoid duplicate metrics // registration - snowCtx.Registerer = prometheus.NewRegistry() - snowCtx.AvalancheRegisterer = prometheus.NewRegistry() + ctx.Registerer = prometheus.NewRegistry() + ctx.AvalancheRegisterer = prometheus.NewRegistry() sender, err := New( - snowCtx, + ctx, msgCreator, externalSender, router, @@ -1068,7 +1054,7 @@ func TestSender_Bootstrap_Responses(t *testing.T) { close(calledHandleInbound) }, ) - tt.sendF(require, sender, myNodeID) + tt.sendF(require, sender, ctx.NodeID) <-calledHandleInbound } @@ -1087,24 +1073,14 @@ func TestSender_Bootstrap_Responses(t *testing.T) { func TestSender_Single_Request(t *testing.T) { var ( - chainID = ids.GenerateTestID() - subnetID = ids.GenerateTestID() - myNodeID = ids.GenerateTestNodeID() destinationNodeID = ids.GenerateTestNodeID() deadline = time.Second requestID = uint32(1337) - ctx = snow.DefaultContextTest() containerID = ids.GenerateTestID() engineType = p2p.EngineType_ENGINE_TYPE_SNOWMAN ) - ctx.ChainID = chainID - ctx.SubnetID = subnetID - ctx.NodeID = myNodeID - snowCtx := &snow.ConsensusContext{ - Context: ctx, - Registerer: prometheus.NewRegistry(), - AvalancheRegisterer: prometheus.NewRegistry(), - } + snowCtx := snowtest.Context(t, snowtest.PChainID) + ctx := snowtest.ConsensusContext(snowCtx) type test struct { name string @@ -1122,7 +1098,7 @@ func TestSender_Single_Request(t *testing.T) { failedMsgF: func(nodeID ids.NodeID) message.InboundMessage { return message.InternalGetAncestorsFailed( nodeID, - chainID, + ctx.ChainID, requestID, engineType, ) @@ -1130,14 +1106,14 @@ func TestSender_Single_Request(t *testing.T) { assertMsgToMyself: func(require *require.Assertions, msg message.InboundMessage) { require.IsType(&message.GetAncestorsFailed{}, msg.Message()) innerMsg := msg.Message().(*message.GetAncestorsFailed) - require.Equal(chainID, innerMsg.ChainID) + require.Equal(ctx.ChainID, innerMsg.ChainID) require.Equal(requestID, innerMsg.RequestID) require.Equal(engineType, innerMsg.EngineType) }, expectedResponseOp: message.AncestorsOp, setMsgCreatorExpect: func(msgCreator *message.MockOutboundMsgBuilder) { msgCreator.EXPECT().GetAncestors( - chainID, + ctx.ChainID, requestID, deadline, containerID, @@ -1148,7 +1124,7 @@ func TestSender_Single_Request(t *testing.T) { externalSender.EXPECT().Send( gomock.Any(), // Outbound message set.Of(destinationNodeID), // Node IDs - subnetID, + ctx.SubnetID, gomock.Any(), ).Return(sentTo) }, @@ -1161,7 +1137,7 @@ func TestSender_Single_Request(t *testing.T) { failedMsgF: func(nodeID ids.NodeID) message.InboundMessage { return message.InternalGetFailed( nodeID, - chainID, + ctx.ChainID, requestID, engineType, ) @@ -1169,14 +1145,14 @@ func TestSender_Single_Request(t *testing.T) { assertMsgToMyself: func(require *require.Assertions, msg message.InboundMessage) { require.IsType(&message.GetFailed{}, msg.Message()) innerMsg := msg.Message().(*message.GetFailed) - require.Equal(chainID, innerMsg.ChainID) + require.Equal(ctx.ChainID, innerMsg.ChainID) require.Equal(requestID, innerMsg.RequestID) require.Equal(engineType, innerMsg.EngineType) }, expectedResponseOp: message.PutOp, setMsgCreatorExpect: func(msgCreator *message.MockOutboundMsgBuilder) { msgCreator.EXPECT().Get( - chainID, + ctx.ChainID, requestID, deadline, containerID, @@ -1187,7 +1163,7 @@ func TestSender_Single_Request(t *testing.T) { externalSender.EXPECT().Send( gomock.Any(), // Outbound message set.Of(destinationNodeID), // Node IDs - subnetID, + ctx.SubnetID, gomock.Any(), ).Return(sentTo) }, @@ -1208,10 +1184,13 @@ func TestSender_Single_Request(t *testing.T) { timeoutManager = timeout.NewMockManager(ctrl) router = router.NewMockRouter(ctrl) ) - snowCtx.Registerer = prometheus.NewRegistry() + + // Instantiate new registerers to avoid duplicate metrics + // registration + ctx.Registerer = prometheus.NewRegistry() sender, err := New( - snowCtx, + ctx, msgCreator, externalSender, router, @@ -1227,12 +1206,12 @@ func TestSender_Single_Request(t *testing.T) { // Case: sending to myself { // Make sure we register requests with the router - expectedFailedMsg := tt.failedMsgF(myNodeID) + expectedFailedMsg := tt.failedMsgF(ctx.NodeID) router.EXPECT().RegisterRequest( gomock.Any(), // Context - myNodeID, // Node ID - chainID, // Source Chain - chainID, // Destination Chain + ctx.NodeID, // Node ID + ctx.ChainID, // Source Chain + ctx.ChainID, // Destination Chain requestID, // Request ID tt.expectedResponseOp, // Operation expectedFailedMsg, // Failure Message @@ -1251,14 +1230,14 @@ func TestSender_Single_Request(t *testing.T) { }, ) - tt.sendF(require, sender, myNodeID) + tt.sendF(require, sender, ctx.NodeID) <-calledHandleInbound } // Case: Node is benched { - timeoutManager.EXPECT().IsBenched(destinationNodeID, chainID).Return(true) + timeoutManager.EXPECT().IsBenched(destinationNodeID, ctx.ChainID).Return(true) timeoutManager.EXPECT().RegisterRequestToUnreachableValidator() @@ -1267,8 +1246,8 @@ func TestSender_Single_Request(t *testing.T) { router.EXPECT().RegisterRequest( gomock.Any(), // Context destinationNodeID, // Node ID - chainID, // Source Chain - chainID, // Destination Chain + ctx.ChainID, // Source Chain + ctx.ChainID, // Destination Chain requestID, // Request ID tt.expectedResponseOp, // Operation expectedFailedMsg, // Failure Message @@ -1294,7 +1273,7 @@ func TestSender_Single_Request(t *testing.T) { // Case: Node is not myself, not benched and send fails { - timeoutManager.EXPECT().IsBenched(destinationNodeID, chainID).Return(false) + timeoutManager.EXPECT().IsBenched(destinationNodeID, ctx.ChainID).Return(false) timeoutManager.EXPECT().RegisterRequestToUnreachableValidator() @@ -1303,8 +1282,8 @@ func TestSender_Single_Request(t *testing.T) { router.EXPECT().RegisterRequest( gomock.Any(), // Context destinationNodeID, // Node ID - chainID, // Source Chain - chainID, // Destination Chain + ctx.ChainID, // Source Chain + ctx.ChainID, // Destination Chain requestID, // Request ID tt.expectedResponseOp, // Operation expectedFailedMsg, // Failure Message diff --git a/snow/snowtest/snowtest.go b/snow/snowtest/snowtest.go index 2c103214688b..2450ebaf941d 100644 --- a/snow/snowtest/snowtest.go +++ b/snow/snowtest/snowtest.go @@ -12,10 +12,13 @@ import ( "github.com/stretchr/testify/require" + "github.com/ava-labs/avalanchego/api/metrics" "github.com/ava-labs/avalanchego/ids" "github.com/ava-labs/avalanchego/snow" "github.com/ava-labs/avalanchego/snow/validators" "github.com/ava-labs/avalanchego/utils/constants" + "github.com/ava-labs/avalanchego/utils/crypto/bls" + "github.com/ava-labs/avalanchego/utils/logging" ) var ( @@ -35,9 +38,9 @@ func (noOpAcceptor) Accept(*snow.ConsensusContext, ids.ID, []byte) error { return nil } -func ConsensusContext() *snow.ConsensusContext { +func ConsensusContext(ctx *snow.Context) *snow.ConsensusContext { return &snow.ConsensusContext{ - Context: snow.DefaultContextTest(), + Context: ctx, Registerer: prometheus.NewRegistry(), AvalancheRegisterer: prometheus.NewRegistry(), BlockAcceptor: noOpAcceptor{}, @@ -49,29 +52,24 @@ func ConsensusContext() *snow.ConsensusContext { func Context(tb testing.TB, chainID ids.ID) *snow.Context { require := require.New(tb) - ctx := snow.DefaultContextTest() + secretKey, err := bls.NewSecretKey() + require.NoError(err) + publicKey := bls.PublicFromSecretKey(secretKey) - ctx.NetworkID = constants.UnitTestID - ctx.SubnetID = constants.PrimaryNetworkID - ctx.ChainID = chainID - ctx.XChainID = XChainID - ctx.CChainID = CChainID - ctx.AVAXAssetID = AVAXAssetID - - aliaser := ctx.BCLookup.(ids.Aliaser) + aliaser := ids.NewAliaser() require.NoError(aliaser.Alias(constants.PlatformChainID, "P")) require.NoError(aliaser.Alias(constants.PlatformChainID, constants.PlatformChainID.String())) - require.NoError(aliaser.Alias(ctx.XChainID, "X")) - require.NoError(aliaser.Alias(ctx.XChainID, ctx.XChainID.String())) - require.NoError(aliaser.Alias(ctx.CChainID, "C")) - require.NoError(aliaser.Alias(ctx.CChainID, ctx.CChainID.String())) + require.NoError(aliaser.Alias(XChainID, "X")) + require.NoError(aliaser.Alias(XChainID, XChainID.String())) + require.NoError(aliaser.Alias(CChainID, "C")) + require.NoError(aliaser.Alias(CChainID, CChainID.String())) - ctx.ValidatorState = &validators.TestState{ + validatorState := &validators.TestState{ GetSubnetIDF: func(_ context.Context, chainID ids.ID) (ids.ID, error) { subnetID, ok := map[ids.ID]ids.ID{ constants.PlatformChainID: constants.PrimaryNetworkID, - ctx.XChainID: constants.PrimaryNetworkID, - ctx.CChainID: constants.PrimaryNetworkID, + XChainID: constants.PrimaryNetworkID, + CChainID: constants.PrimaryNetworkID, }[chainID] if !ok { return ids.Empty, errMissing @@ -80,5 +78,22 @@ func Context(tb testing.TB, chainID ids.ID) *snow.Context { }, } - return ctx + return &snow.Context{ + NetworkID: constants.UnitTestID, + SubnetID: constants.PrimaryNetworkID, + ChainID: chainID, + NodeID: ids.EmptyNodeID, + PublicKey: publicKey, + + XChainID: XChainID, + CChainID: CChainID, + AVAXAssetID: AVAXAssetID, + + Log: logging.NoLog{}, + BCLookup: aliaser, + Metrics: metrics.NewOptionalGatherer(), + + ValidatorState: validatorState, + ChainDataDir: "", + } } diff --git a/vms/platformvm/txs/add_subnet_validator_test.go b/vms/platformvm/txs/add_subnet_validator_test.go index 8e07469ea2a0..e5f0684b25d7 100644 --- a/vms/platformvm/txs/add_subnet_validator_test.go +++ b/vms/platformvm/txs/add_subnet_validator_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/require" "github.com/ava-labs/avalanchego/ids" - "github.com/ava-labs/avalanchego/snow" + "github.com/ava-labs/avalanchego/snow/snowtest" "github.com/ava-labs/avalanchego/utils/constants" "github.com/ava-labs/avalanchego/utils/crypto/secp256k1" "github.com/ava-labs/avalanchego/utils/timer/mockable" @@ -22,7 +22,7 @@ import ( func TestAddSubnetValidatorTxSyntacticVerify(t *testing.T) { require := require.New(t) clk := mockable.Clock{} - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.PChainID) signers := [][]*secp256k1.PrivateKey{preFundedKeys} var ( @@ -140,7 +140,7 @@ func TestAddSubnetValidatorTxSyntacticVerify(t *testing.T) { func TestAddSubnetValidatorMarshal(t *testing.T) { require := require.New(t) clk := mockable.Clock{} - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.PChainID) signers := [][]*secp256k1.PrivateKey{preFundedKeys} var ( diff --git a/vms/platformvm/txs/create_chain_test.go b/vms/platformvm/txs/create_chain_test.go index 7154072bd8a9..ae2217c5b605 100644 --- a/vms/platformvm/txs/create_chain_test.go +++ b/vms/platformvm/txs/create_chain_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/require" "github.com/ava-labs/avalanchego/ids" - "github.com/ava-labs/avalanchego/snow" + "github.com/ava-labs/avalanchego/snow/snowtest" "github.com/ava-labs/avalanchego/utils/constants" "github.com/ava-labs/avalanchego/utils/crypto/secp256k1" "github.com/ava-labs/avalanchego/vms/components/avax" @@ -17,7 +17,7 @@ import ( ) func TestUnsignedCreateChainTxVerify(t *testing.T) { - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.PChainID) testSubnet1ID := ids.GenerateTestID() testSubnet1ControlKeys := []*secp256k1.PrivateKey{ preFundedKeys[0], diff --git a/vms/platformvm/txs/executor/staker_tx_verification_test.go b/vms/platformvm/txs/executor/staker_tx_verification_test.go index 231b34a9e30d..065e2cb54707 100644 --- a/vms/platformvm/txs/executor/staker_tx_verification_test.go +++ b/vms/platformvm/txs/executor/staker_tx_verification_test.go @@ -14,6 +14,7 @@ import ( "github.com/ava-labs/avalanchego/database" "github.com/ava-labs/avalanchego/ids" "github.com/ava-labs/avalanchego/snow" + "github.com/ava-labs/avalanchego/snow/snowtest" "github.com/ava-labs/avalanchego/utils" "github.com/ava-labs/avalanchego/utils/constants" "github.com/ava-labs/avalanchego/utils/timer/mockable" @@ -27,6 +28,8 @@ import ( ) func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { + ctx := snowtest.Context(t, snowtest.PChainID) + type test struct { name string backendF func(*gomock.Controller) *Backend @@ -64,8 +67,8 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { BaseTx: txs.BaseTx{ SyntacticallyVerified: true, BaseTx: avax.BaseTx{ - NetworkID: 1, - BlockchainID: ids.GenerateTestID(), + NetworkID: ctx.NetworkID, + BlockchainID: ctx.ChainID, Outs: []*avax.TransferableOutput{}, Ins: []*avax.TransferableInput{}, }, @@ -107,7 +110,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { name: "fail syntactic verification", backendF: func(*gomock.Controller) *Backend { return &Backend{ - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Config: &config.Config{ DurangoTime: activeForkTime, // activate latest fork }, @@ -128,7 +131,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { name: "not bootstrapped", backendF: func(*gomock.Controller) *Backend { return &Backend{ - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Config: &config.Config{ DurangoTime: activeForkTime, // activate latest fork }, @@ -152,7 +155,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { bootstrapped := &utils.Atomic[bool]{} bootstrapped.Set(true) return &Backend{ - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Config: &config.Config{ CortinaTime: activeForkTime, DurangoTime: mockable.MaxTime, @@ -179,7 +182,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { bootstrapped := &utils.Atomic[bool]{} bootstrapped.Set(true) return &Backend{ - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Config: &config.Config{ DurangoTime: activeForkTime, // activate latest fork }, @@ -208,7 +211,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { bootstrapped := &utils.Atomic[bool]{} bootstrapped.Set(true) return &Backend{ - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Config: &config.Config{ DurangoTime: activeForkTime, // activate latest fork }, @@ -237,7 +240,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { bootstrapped := &utils.Atomic[bool]{} bootstrapped.Set(true) return &Backend{ - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Config: &config.Config{ DurangoTime: activeForkTime, // activate latest fork }, @@ -267,7 +270,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { bootstrapped := &utils.Atomic[bool]{} bootstrapped.Set(true) return &Backend{ - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Config: &config.Config{ DurangoTime: activeForkTime, // activate latest fork }, @@ -300,7 +303,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { bootstrapped := &utils.Atomic[bool]{} bootstrapped.Set(true) return &Backend{ - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Config: &config.Config{ DurangoTime: activeForkTime, // activate latest fork }, @@ -333,7 +336,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { bootstrapped := &utils.Atomic[bool]{} bootstrapped.Set(true) return &Backend{ - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Config: &config.Config{ DurangoTime: activeForkTime, // activate latest fork }, @@ -368,7 +371,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { bootstrapped := &utils.Atomic[bool]{} bootstrapped.Set(true) return &Backend{ - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Config: &config.Config{ DurangoTime: activeForkTime, // activate latest fork }, @@ -397,7 +400,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { bootstrapped := &utils.Atomic[bool]{} bootstrapped.Set(true) return &Backend{ - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Config: &config.Config{ DurangoTime: activeForkTime, // activate latest fork }, @@ -447,7 +450,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { AddSubnetValidatorFee: 1, DurangoTime: activeForkTime, // activate latest fork, }, - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Bootstrapped: bootstrapped, } }, @@ -494,7 +497,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { DurangoTime: mockable.MaxTime, AddSubnetValidatorFee: 1, }, - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Bootstrapped: bootstrapped, } }, @@ -545,7 +548,7 @@ func TestVerifyAddPermissionlessValidatorTx(t *testing.T) { AddSubnetValidatorFee: 1, DurangoTime: activeForkTime, // activate latest fork, }, - Ctx: snow.DefaultContextTest(), + Ctx: ctx, Bootstrapped: bootstrapped, } }, diff --git a/vms/platformvm/utxo/handler_test.go b/vms/platformvm/utxo/handler_test.go index f74286987d32..4f1e2e00e8d7 100644 --- a/vms/platformvm/utxo/handler_test.go +++ b/vms/platformvm/utxo/handler_test.go @@ -11,7 +11,7 @@ import ( "github.com/stretchr/testify/require" "github.com/ava-labs/avalanchego/ids" - "github.com/ava-labs/avalanchego/snow" + "github.com/ava-labs/avalanchego/snow/snowtest" "github.com/ava-labs/avalanchego/utils/crypto/secp256k1" "github.com/ava-labs/avalanchego/utils/timer/mockable" "github.com/ava-labs/avalanchego/vms/components/avax" @@ -39,8 +39,10 @@ func TestVerifySpendUTXOs(t *testing.T) { require.NoError(t, fx.InitializeVM(&secp256k1fx.TestVM{})) require.NoError(t, fx.Bootstrapped()) + ctx := snowtest.Context(t, snowtest.PChainID) + h := &handler{ - ctx: snow.DefaultContextTest(), + ctx: ctx, clk: &mockable.Clock{}, fx: fx, } diff --git a/vms/platformvm/vm_test.go b/vms/platformvm/vm_test.go index 3632cbefc10f..746d9e105968 100644 --- a/vms/platformvm/vm_test.go +++ b/vms/platformvm/vm_test.go @@ -1284,8 +1284,7 @@ func TestBootstrapPartiallyAccepted(t *testing.T) { m := atomic.NewMemory(atomicDB) ctx.SharedMemory = m.NewSharedMemory(ctx.ChainID) - consensusCtx := snowtest.ConsensusContext() - consensusCtx.Context = ctx + consensusCtx := snowtest.ConsensusContext(ctx) ctx.Lock.Lock() msgChan := make(chan common.Message, 1) diff --git a/vms/proposervm/batched_vm_test.go b/vms/proposervm/batched_vm_test.go index 9934e8f13811..476b12e32bc3 100644 --- a/vms/proposervm/batched_vm_test.go +++ b/vms/proposervm/batched_vm_test.go @@ -20,6 +20,7 @@ import ( "github.com/ava-labs/avalanchego/snow/consensus/snowman" "github.com/ava-labs/avalanchego/snow/engine/common" "github.com/ava-labs/avalanchego/snow/engine/snowman/block" + "github.com/ava-labs/avalanchego/snow/snowtest" "github.com/ava-labs/avalanchego/snow/validators" "github.com/ava-labs/avalanchego/utils/math" "github.com/ava-labs/avalanchego/utils/timer/mockable" @@ -1084,7 +1085,7 @@ func initTestRemoteProposerVM( }, nil } - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) ctx.NodeID = ids.NodeIDFromCert(pTestCert) ctx.ValidatorState = valState diff --git a/vms/proposervm/state_syncable_vm_test.go b/vms/proposervm/state_syncable_vm_test.go index 0a4ba6d3bfe1..2e80c5973e86 100644 --- a/vms/proposervm/state_syncable_vm_test.go +++ b/vms/proposervm/state_syncable_vm_test.go @@ -19,6 +19,7 @@ import ( "github.com/ava-labs/avalanchego/snow/consensus/snowman" "github.com/ava-labs/avalanchego/snow/engine/common" "github.com/ava-labs/avalanchego/snow/engine/snowman/block" + "github.com/ava-labs/avalanchego/snow/snowtest" "github.com/ava-labs/avalanchego/vms/proposervm/summary" statelessblock "github.com/ava-labs/avalanchego/vms/proposervm/block" @@ -81,7 +82,7 @@ func helperBuildStateSyncTestObjects(t *testing.T) (*fullVM, *VM) { }, ) - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) ctx.NodeID = ids.NodeIDFromCert(pTestCert) require.NoError(vm.Initialize( diff --git a/vms/proposervm/vm_regression_test.go b/vms/proposervm/vm_regression_test.go index d8b6ea195001..cebc07b3ef43 100644 --- a/vms/proposervm/vm_regression_test.go +++ b/vms/proposervm/vm_regression_test.go @@ -17,6 +17,7 @@ import ( "github.com/ava-labs/avalanchego/snow" "github.com/ava-labs/avalanchego/snow/engine/common" "github.com/ava-labs/avalanchego/snow/engine/snowman/block" + "github.com/ava-labs/avalanchego/snow/snowtest" ) func TestProposerVMInitializeShouldFailIfInnerVMCantVerifyItsHeightIndex(t *testing.T) { @@ -62,7 +63,7 @@ func TestProposerVMInitializeShouldFailIfInnerVMCantVerifyItsHeightIndex(t *test require.NoError(proVM.Shutdown(context.Background())) }() - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) initialState := []byte("genesis state") err := proVM.Initialize( diff --git a/vms/proposervm/vm_test.go b/vms/proposervm/vm_test.go index 97216d9c0905..8308141b6622 100644 --- a/vms/proposervm/vm_test.go +++ b/vms/proposervm/vm_test.go @@ -26,6 +26,7 @@ import ( "github.com/ava-labs/avalanchego/snow/engine/common" "github.com/ava-labs/avalanchego/snow/engine/snowman/block" "github.com/ava-labs/avalanchego/snow/engine/snowman/block/mocks" + "github.com/ava-labs/avalanchego/snow/snowtest" "github.com/ava-labs/avalanchego/snow/validators" "github.com/ava-labs/avalanchego/staking" "github.com/ava-labs/avalanchego/utils" @@ -182,8 +183,7 @@ func initTestProposerVM( }, nil } - ctx := snow.DefaultContextTest() - ctx.ChainID = ids.ID{1} + ctx := snowtest.Context(t, ids.ID{1}) ctx.NodeID = ids.NodeIDFromCert(pTestCert) ctx.ValidatorState = valState @@ -978,7 +978,7 @@ func TestExpiredBuildBlock(t *testing.T) { }, nil } - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) ctx.NodeID = ids.NodeIDFromCert(pTestCert) ctx.ValidatorState = valState @@ -1273,7 +1273,7 @@ func TestInnerVMRollback(t *testing.T) { } } - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) ctx.NodeID = ids.NodeIDFromCert(pTestCert) ctx.ValidatorState = valState @@ -1942,7 +1942,7 @@ func TestRejectedHeightNotIndexed(t *testing.T) { }, nil } - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) ctx.NodeID = ids.NodeIDFromCert(pTestCert) ctx.ValidatorState = valState @@ -2152,7 +2152,7 @@ func TestRejectedOptionHeightNotIndexed(t *testing.T) { }, nil } - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) ctx.NodeID = ids.NodeIDFromCert(pTestCert) ctx.ValidatorState = valState @@ -2303,7 +2303,7 @@ func TestVMInnerBlkCache(t *testing.T) { innerVM.EXPECT().GetBlock(gomock.Any(), innerBlkID).Return(innerBlk, nil) } - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) ctx.NodeID = ids.NodeIDFromCert(pTestCert) require.NoError(vm.Initialize( @@ -2544,7 +2544,7 @@ func TestVM_VerifyBlockWithContext(t *testing.T) { innerVM.EXPECT().GetBlock(gomock.Any(), innerBlkID).Return(innerBlk, nil) } - snowCtx := snow.DefaultContextTest() + snowCtx := snowtest.Context(t, snowtest.CChainID) snowCtx.NodeID = ids.NodeIDFromCert(pTestCert) require.NoError(vm.Initialize( @@ -2703,7 +2703,7 @@ func TestHistoricalBlockDeletion(t *testing.T) { }, } - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) ctx.NodeID = ids.NodeIDFromCert(pTestCert) ctx.ValidatorState = &validators.TestState{ T: t, diff --git a/vms/rpcchainvm/batched_vm_test.go b/vms/rpcchainvm/batched_vm_test.go index 817037dc6e3e..c00ca4e6fc60 100644 --- a/vms/rpcchainvm/batched_vm_test.go +++ b/vms/rpcchainvm/batched_vm_test.go @@ -14,11 +14,11 @@ import ( "github.com/ava-labs/avalanchego/database/memdb" "github.com/ava-labs/avalanchego/ids" - "github.com/ava-labs/avalanchego/snow" "github.com/ava-labs/avalanchego/snow/choices" "github.com/ava-labs/avalanchego/snow/consensus/snowman" "github.com/ava-labs/avalanchego/snow/engine/snowman/block" "github.com/ava-labs/avalanchego/snow/engine/snowman/block/mocks" + "github.com/ava-labs/avalanchego/snow/snowtest" "github.com/ava-labs/avalanchego/vms/components/chain" ) @@ -86,7 +86,7 @@ func TestBatchedParseBlockCaching(t *testing.T) { vm, stopper := buildClientHelper(require, testKey) defer stopper.Stop(context.Background()) - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) require.NoError(vm.Initialize(context.Background(), ctx, memdb.New(), nil, nil, nil, nil, nil, nil)) diff --git a/vms/rpcchainvm/state_syncable_vm_test.go b/vms/rpcchainvm/state_syncable_vm_test.go index 241062616c9b..640255e80ee4 100644 --- a/vms/rpcchainvm/state_syncable_vm_test.go +++ b/vms/rpcchainvm/state_syncable_vm_test.go @@ -21,6 +21,7 @@ import ( "github.com/ava-labs/avalanchego/snow/consensus/snowman" "github.com/ava-labs/avalanchego/snow/engine/snowman/block" "github.com/ava-labs/avalanchego/snow/engine/snowman/block/mocks" + "github.com/ava-labs/avalanchego/snow/snowtest" "github.com/ava-labs/avalanchego/utils/logging" "github.com/ava-labs/avalanchego/vms/rpcchainvm/grpcutils" "github.com/ava-labs/avalanchego/vms/rpcchainvm/runtime" @@ -470,7 +471,7 @@ func TestLastAcceptedBlockPostStateSummaryAccept(t *testing.T) { defer stopper.Stop(context.Background()) // Step 1: initialize VM and check initial LastAcceptedBlock - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) require.NoError(vm.Initialize(context.Background(), ctx, prefixdb.New([]byte{}, memdb.New()), nil, nil, nil, nil, nil, nil)) diff --git a/vms/rpcchainvm/with_context_vm_test.go b/vms/rpcchainvm/with_context_vm_test.go index 65d1e4396964..192a7658e451 100644 --- a/vms/rpcchainvm/with_context_vm_test.go +++ b/vms/rpcchainvm/with_context_vm_test.go @@ -14,10 +14,10 @@ import ( "github.com/ava-labs/avalanchego/database/memdb" "github.com/ava-labs/avalanchego/ids" - "github.com/ava-labs/avalanchego/snow" "github.com/ava-labs/avalanchego/snow/consensus/snowman" "github.com/ava-labs/avalanchego/snow/engine/snowman/block" "github.com/ava-labs/avalanchego/snow/engine/snowman/block/mocks" + "github.com/ava-labs/avalanchego/snow/snowtest" ) var ( @@ -98,7 +98,7 @@ func TestContextVMSummary(t *testing.T) { vm, stopper := buildClientHelper(require, testKey) defer stopper.Stop(context.Background()) - ctx := snow.DefaultContextTest() + ctx := snowtest.Context(t, snowtest.CChainID) require.NoError(vm.Initialize(context.Background(), ctx, memdb.New(), nil, nil, nil, nil, nil, nil))