Skip to content

vms/platformvm: Use snowtest.Context helper #2515

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 74 commits into from
Dec 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
d0d3eba
wip
dhrubabasu Dec 19, 2023
6c1e74a
Create `snowtest` pkg
dhrubabasu Dec 19, 2023
ea165a2
Remove unused `AcceptorTracker` struct
dhrubabasu Dec 19, 2023
dcbba27
merged
dhrubabasu Dec 19, 2023
58bb63c
merged
dhrubabasu Dec 19, 2023
ade3df8
reduce diff
dhrubabasu Dec 19, 2023
0867efd
nit
dhrubabasu Dec 19, 2023
f2da5e6
merged
dhrubabasu Dec 19, 2023
8c84496
nit
dhrubabasu Dec 19, 2023
515f59d
more
dhrubabasu Dec 19, 2023
2590ada
rename
dhrubabasu Dec 19, 2023
093b49e
Merge branch 'snowtest-pkg' into snowtest
dhrubabasu Dec 19, 2023
3d3cd0a
more
dhrubabasu Dec 19, 2023
1d89d0d
nit
dhrubabasu Dec 19, 2023
2b0c117
revert platformvm changes
dhrubabasu Dec 19, 2023
ae4c4bc
wip
dhrubabasu Dec 19, 2023
fb4db8d
Merge branch 'snowtest' into snowtest-pchain
dhrubabasu Dec 19, 2023
de23359
nit
dhrubabasu Dec 19, 2023
77755ea
passing
dhrubabasu Dec 19, 2023
b1a1b04
reduce diff
dhrubabasu Dec 19, 2023
84a4f50
reduce diff
dhrubabasu Dec 19, 2023
f6104d8
nit
dhrubabasu Dec 19, 2023
fc184af
nit
dhrubabasu Dec 19, 2023
e365b53
nit
dhrubabasu Dec 19, 2023
55839c3
nit
dhrubabasu Dec 19, 2023
aaf837f
nit
dhrubabasu Dec 19, 2023
eb3555b
ints
dhrubabasu Dec 19, 2023
7253d20
fix test
dhrubabasu Dec 19, 2023
7fde193
more test fixes
dhrubabasu Dec 19, 2023
98894d4
nits
dhrubabasu Dec 19, 2023
97222bf
merged
dhrubabasu Dec 19, 2023
b142ade
nit
dhrubabasu Dec 19, 2023
f7c4eac
`vms/avm`: Remove usage of `require.Contains` from service tests
dhrubabasu Dec 19, 2023
7c4f2b3
reduce diff
dhrubabasu Dec 19, 2023
8b07900
Merge branch 'snowtest' into snowtest-pchain
dhrubabasu Dec 19, 2023
fec29f3
passing
dhrubabasu Dec 19, 2023
5f77768
nit
dhrubabasu Dec 19, 2023
c509492
Merge branch 'snowtest' into snowtest-pchain
dhrubabasu Dec 19, 2023
5bccb80
Merge branch 'avm-service-tests' into snowtest
dhrubabasu Dec 19, 2023
7dacd91
rename
dhrubabasu Dec 19, 2023
2700a28
Merge branch 'snowtest' into snowtest-pchain
dhrubabasu Dec 19, 2023
01ee0f0
rename
dhrubabasu Dec 19, 2023
36218de
simplify
dhrubabasu Dec 20, 2023
4f8bef4
nits
dhrubabasu Dec 20, 2023
a8890fd
Merge branch 'snowtest' into snowtest-pchain
dhrubabasu Dec 20, 2023
24578e1
Merge branch 'dev' into avm-service-tests
dhrubabasu Dec 20, 2023
6cf5263
Merge branch 'dev' into avm-service-tests
dhrubabasu Dec 20, 2023
d041fe0
Merge branch 'dev' into avm-service-tests
dhrubabasu Dec 20, 2023
ae21773
nit
dhrubabasu Dec 20, 2023
395bd22
nit
dhrubabasu Dec 20, 2023
032168e
Merge branch 'avm-service-tests' into snowtest
dhrubabasu Dec 20, 2023
35bc21b
Merge branch 'snowtest' into snowtest-pchain
dhrubabasu Dec 20, 2023
8a24fe0
nit
dhrubabasu Dec 20, 2023
d4019d2
nit
dhrubabasu Dec 20, 2023
570c41d
Merge branch 'snowtest' into snowtest-pchain
dhrubabasu Dec 20, 2023
eba249d
nit
dhrubabasu Dec 20, 2023
5351310
nit
dhrubabasu Dec 20, 2023
835154f
Merge branch 'dev' into avm-service-tests
dhrubabasu Dec 20, 2023
3d81a67
merged
dhrubabasu Dec 20, 2023
20c38d1
Merge branch 'snowtest' into snowtest-pchain
dhrubabasu Dec 20, 2023
4e80e4e
Merge branch 'dev' into snowtest
dhrubabasu Dec 20, 2023
4ab63e8
Merge branch 'dev' into snowtest
dhrubabasu Dec 20, 2023
aa6f0ca
merged
dhrubabasu Dec 21, 2023
9b700c4
nit
dhrubabasu Dec 21, 2023
a756fa6
Merge branch 'dev' into snowtest
dhrubabasu Dec 21, 2023
19430d6
Merge branch 'snowtest' into snowtest-pchain
dhrubabasu Dec 21, 2023
64f3635
Merge branch 'dev' into snowtest
dhrubabasu Dec 21, 2023
f7e5810
Merge branch 'snowtest' into snowtest-pchain
dhrubabasu Dec 21, 2023
57beea7
hoist `AVAXAssetID`
dhrubabasu Dec 21, 2023
e681f81
nits
dhrubabasu Dec 21, 2023
1e9913a
Merge branch 'snowtest' into snowtest-pchain
dhrubabasu Dec 21, 2023
da404a7
Merge branch 'dev' into snowtest-pchain
StephenButtolph Dec 21, 2023
b243f3d
Merge branch 'dev' into snowtest-pchain
StephenButtolph Dec 21, 2023
8b7d10f
Merge branch 'dev' into snowtest-pchain
StephenButtolph Dec 21, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 9 additions & 40 deletions vms/platformvm/block/builder/helpers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
package builder

import (
"context"
"errors"
"testing"
"time"

Expand All @@ -24,6 +22,7 @@ import (
"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/snow"
"github.com/ava-labs/avalanchego/snow/engine/common"
"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/utils"
Expand Down Expand Up @@ -69,18 +68,13 @@ var (
defaultMinValidatorStake = 5 * units.MilliAvax
defaultBalance = 100 * defaultMinValidatorStake
preFundedKeys = secp256k1.TestKeys()
avaxAssetID = ids.ID{'y', 'e', 'e', 't'}
defaultTxFee = uint64(100)
xChainID = ids.Empty.Prefix(0)
cChainID = ids.Empty.Prefix(1)

testSubnet1 *txs.Tx
testSubnet1ControlKeys = preFundedKeys[0:3]

// Node IDs of genesis validators. Initialized in init function
genesisNodeIDs []ids.NodeID

errMissing = errors.New("missing")
)

func init() {
Expand Down Expand Up @@ -127,7 +121,14 @@ func newEnvironment(t *testing.T) *environment {
res.isBootstrapped.Set(true)

res.baseDB = versiondb.New(memdb.New())
res.ctx, res.msm = defaultCtx(res.baseDB)
atomicDB := prefixdb.New([]byte{1}, res.baseDB)
m := atomic.NewMemory(atomicDB)

res.ctx = snowtest.Context(t, snowtest.PChainID)
res.msm = &mutableSharedMemory{
SharedMemory: m.NewSharedMemory(res.ctx.ChainID),
}
res.ctx.SharedMemory = res.msm

res.ctx.Lock.Lock()
defer res.ctx.Lock.Unlock()
Expand Down Expand Up @@ -264,38 +265,6 @@ func defaultState(
return state
}

func defaultCtx(db database.Database) (*snow.Context, *mutableSharedMemory) {
ctx := snow.DefaultContextTest()
ctx.NetworkID = 10
ctx.XChainID = xChainID
ctx.CChainID = cChainID
ctx.AVAXAssetID = avaxAssetID

atomicDB := prefixdb.New([]byte{1}, db)
m := atomic.NewMemory(atomicDB)

msm := &mutableSharedMemory{
SharedMemory: m.NewSharedMemory(ctx.ChainID),
}
ctx.SharedMemory = msm

ctx.ValidatorState = &validators.TestState{
GetSubnetIDF: func(_ context.Context, chainID ids.ID) (ids.ID, error) {
subnetID, ok := map[ids.ID]ids.ID{
constants.PlatformChainID: constants.PrimaryNetworkID,
xChainID: constants.PrimaryNetworkID,
cChainID: constants.PrimaryNetworkID,
}[chainID]
if !ok {
return ids.Empty, errMissing
}
return subnetID, nil
},
}

return ctx, msm
}

func defaultConfig() *config.Config {
return &config.Config{
Chains: chains.TestManager,
Expand Down
2 changes: 1 addition & 1 deletion vms/platformvm/block/builder/standard_block_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func TestAtomicTxImports(t *testing.T) {
peerSharedMemory := m.NewSharedMemory(env.ctx.XChainID)
utxo := &avax.UTXO{
UTXOID: utxoID,
Asset: avax.Asset{ID: avaxAssetID},
Asset: avax.Asset{ID: env.ctx.AVAXAssetID},
Out: &secp256k1fx.TransferOutput{
Amt: amount,
OutputOwners: secp256k1fx.OutputOwners{
Expand Down
44 changes: 8 additions & 36 deletions vms/platformvm/block/executor/helpers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
package executor

import (
"context"
"errors"
"fmt"
"testing"
"time"
Expand All @@ -25,6 +23,7 @@ import (
"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/avalanchego/snow"
"github.com/ava-labs/avalanchego/snow/engine/common"
"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/utils"
Expand Down Expand Up @@ -73,16 +72,12 @@ var (
preFundedKeys = secp256k1.TestKeys()
avaxAssetID = ids.ID{'y', 'e', 'e', 't'}
defaultTxFee = uint64(100)
xChainID = ids.Empty.Prefix(0)
cChainID = ids.Empty.Prefix(1)

genesisBlkID ids.ID
testSubnet1 *txs.Tx

// Node IDs of genesis validators. Initialized in init function
genesisNodeIDs []ids.NodeID

errMissing = errors.New("missing")
)

func init() {
Expand Down Expand Up @@ -138,7 +133,13 @@ func newEnvironment(t *testing.T, ctrl *gomock.Controller) *environment {
res.isBootstrapped.Set(true)

res.baseDB = versiondb.New(memdb.New())
res.ctx = defaultCtx(res.baseDB)
atomicDB := prefixdb.New([]byte{1}, res.baseDB)
m := atomic.NewMemory(atomicDB)

res.ctx = snowtest.Context(t, snowtest.PChainID)
res.ctx.AVAXAssetID = avaxAssetID
res.ctx.SharedMemory = m.NewSharedMemory(res.ctx.ChainID)

res.fx = defaultFx(res.clk, res.ctx.Log, res.isBootstrapped.Get())

rewardsCalc := reward.NewCalculator(res.config.RewardConfig)
Expand Down Expand Up @@ -293,35 +294,6 @@ func defaultState(
return state
}

func defaultCtx(db database.Database) *snow.Context {
ctx := snow.DefaultContextTest()
ctx.NetworkID = 10
ctx.XChainID = xChainID
ctx.CChainID = cChainID
ctx.AVAXAssetID = avaxAssetID

atomicDB := prefixdb.New([]byte{1}, db)
m := atomic.NewMemory(atomicDB)

ctx.SharedMemory = m.NewSharedMemory(ctx.ChainID)

ctx.ValidatorState = &validators.TestState{
GetSubnetIDF: func(_ context.Context, chainID ids.ID) (ids.ID, error) {
subnetID, ok := map[ids.ID]ids.ID{
constants.PlatformChainID: constants.PrimaryNetworkID,
xChainID: constants.PrimaryNetworkID,
cChainID: constants.PrimaryNetworkID,
}[chainID]
if !ok {
return ids.Empty, errMissing
}
return subnetID, nil
},
}

return ctx
}

func defaultConfig() *config.Config {
return &config.Config{
Chains: chains.TestManager,
Expand Down
17 changes: 11 additions & 6 deletions vms/platformvm/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,15 +181,15 @@ func TestGetTxStatus(t *testing.T) {
m := atomic.NewMemory(prefixdb.New([]byte{}, service.vm.db))

sm := m.NewSharedMemory(service.vm.ctx.ChainID)
peerSharedMemory := m.NewSharedMemory(xChainID)
peerSharedMemory := m.NewSharedMemory(service.vm.ctx.XChainID)

// #nosec G404
utxo := &avax.UTXO{
UTXOID: avax.UTXOID{
TxID: ids.GenerateTestID(),
OutputIndex: rand.Uint32(),
},
Asset: avax.Asset{ID: avaxAssetID},
Asset: avax.Asset{ID: service.vm.ctx.AVAXAssetID},
Out: &secp256k1fx.TransferOutput{
Amt: 1234567,
OutputOwners: secp256k1fx.OutputOwners{
Expand Down Expand Up @@ -220,7 +220,12 @@ func TestGetTxStatus(t *testing.T) {
oldSharedMemory := mutableSharedMemory.SharedMemory
mutableSharedMemory.SharedMemory = sm

tx, err := service.vm.txBuilder.NewImportTx(xChainID, ids.ShortEmpty, []*secp256k1.PrivateKey{recipientKey}, ids.ShortEmpty)
tx, err := service.vm.txBuilder.NewImportTx(
service.vm.ctx.XChainID,
ids.ShortEmpty,
[]*secp256k1.PrivateKey{recipientKey},
ids.ShortEmpty,
)
require.NoError(err)

mutableSharedMemory.SharedMemory = oldSharedMemory
Expand Down Expand Up @@ -399,7 +404,7 @@ func TestGetBalance(t *testing.T) {
}()

// Ensure GetStake is correct for each of the genesis validators
genesis, _ := defaultGenesis(t)
genesis, _ := defaultGenesis(t, service.vm.ctx.AVAXAssetID)
for idx, utxo := range genesis.UTXOs {
request := GetBalanceRequest{
Addresses: []string{
Expand Down Expand Up @@ -433,7 +438,7 @@ func TestGetStake(t *testing.T) {
}()

// Ensure GetStake is correct for each of the genesis validators
genesis, _ := defaultGenesis(t)
genesis, _ := defaultGenesis(t, service.vm.ctx.AVAXAssetID)
addrsStrs := []string{}
for i, validator := range genesis.Validators {
addr := fmt.Sprintf("P-%s", validator.RewardOwner.Addresses[0])
Expand Down Expand Up @@ -608,7 +613,7 @@ func TestGetCurrentValidators(t *testing.T) {
service.vm.ctx.Lock.Unlock()
}()

genesis, _ := defaultGenesis(t)
genesis, _ := defaultGenesis(t, service.vm.ctx.AVAXAssetID)

// Call getValidators
args := GetCurrentValidatorsArgs{SubnetID: constants.PrimaryNetworkID}
Expand Down
8 changes: 3 additions & 5 deletions vms/platformvm/txs/add_delegator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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/crypto/secp256k1"
"github.com/ava-labs/avalanchego/utils/timer/mockable"
"github.com/ava-labs/avalanchego/vms/components/avax"
Expand All @@ -23,8 +23,7 @@ var preFundedKeys = secp256k1.TestKeys()
func TestAddDelegatorTxSyntacticVerify(t *testing.T) {
require := require.New(t)
clk := mockable.Clock{}
ctx := snow.DefaultContextTest()
ctx.AVAXAssetID = ids.GenerateTestID()
ctx := snowtest.Context(t, snowtest.PChainID)
signers := [][]*secp256k1.PrivateKey{preFundedKeys}

var (
Expand Down Expand Up @@ -130,8 +129,7 @@ func TestAddDelegatorTxSyntacticVerify(t *testing.T) {
func TestAddDelegatorTxSyntacticVerifyNotAVAX(t *testing.T) {
require := require.New(t)
clk := mockable.Clock{}
ctx := snow.DefaultContextTest()
ctx.AVAXAssetID = ids.GenerateTestID()
ctx := snowtest.Context(t, snowtest.PChainID)
signers := [][]*secp256k1.PrivateKey{preFundedKeys}

var (
Expand Down
8 changes: 3 additions & 5 deletions vms/platformvm/txs/add_validator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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/crypto/secp256k1"
"github.com/ava-labs/avalanchego/utils/timer/mockable"
"github.com/ava-labs/avalanchego/vms/components/avax"
Expand All @@ -22,8 +22,7 @@ import (
func TestAddValidatorTxSyntacticVerify(t *testing.T) {
require := require.New(t)
clk := mockable.Clock{}
ctx := snow.DefaultContextTest()
ctx.AVAXAssetID = ids.GenerateTestID()
ctx := snowtest.Context(t, snowtest.PChainID)
signers := [][]*secp256k1.PrivateKey{preFundedKeys}

var (
Expand Down Expand Up @@ -146,8 +145,7 @@ func TestAddValidatorTxSyntacticVerify(t *testing.T) {
func TestAddValidatorTxSyntacticVerifyNotAVAX(t *testing.T) {
require := require.New(t)
clk := mockable.Clock{}
ctx := snow.DefaultContextTest()
ctx.AVAXAssetID = ids.GenerateTestID()
ctx := snowtest.Context(t, snowtest.PChainID)
signers := [][]*secp256k1.PrivateKey{preFundedKeys}

var (
Expand Down
4 changes: 2 additions & 2 deletions vms/platformvm/txs/executor/export_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ func TestNewExportTx(t *testing.T) {
tests := []test{
{
description: "P->X export",
destinationChainID: xChainID,
destinationChainID: env.ctx.XChainID,
sourceKeys: []*secp256k1.PrivateKey{sourceKey},
timestamp: defaultValidateStartTime,
},
{
description: "P->C export",
destinationChainID: cChainID,
destinationChainID: env.ctx.CChainID,
sourceKeys: []*secp256k1.PrivateKey{sourceKey},
timestamp: env.config.ApricotPhase5Time,
},
Expand Down
Loading