diff --git a/x/evm/genesis.go b/x/evm/genesis.go index d5e786356..15a9d72de 100644 --- a/x/evm/genesis.go +++ b/x/evm/genesis.go @@ -30,7 +30,7 @@ func (gs GenesisState) Validate() error { seenAccounts := make(map[string]bool) for _, acc := range gs.Accounts { if seenAccounts[acc.Address] { - return fmt.Errorf("duplicated genesis account %s", acc.Address) + return fmt.Errorf("duplicate genesis account %s", acc.Address) } if err := acc.Validate(); err != nil { return fmt.Errorf("invalid genesis account %s: %w", acc.Address, err) diff --git a/x/evm/genesis_test.go b/x/evm/genesis_test.go index a9684c9e6..46c30f2d2 100644 --- a/x/evm/genesis_test.go +++ b/x/evm/genesis_test.go @@ -1,6 +1,7 @@ package evm_test import ( + "encoding/json" "testing" gethcommon "github.com/ethereum/go-ethereum/common" @@ -87,12 +88,11 @@ func (s *GenesisSuite) TestValidateGenesis() { testCases := []struct { name string genState *evm.GenesisState - expPass bool + wantErr string }{ { name: "default", genState: evm.DefaultGenesisState(), - expPass: true, }, { name: "valid genesis", @@ -109,12 +109,10 @@ func (s *GenesisSuite) TestValidateGenesis() { }, Params: evm.DefaultParams(), }, - expPass: true, }, { name: "empty genesis", genState: &evm.GenesisState{}, - expPass: false, }, { name: "copied genesis", @@ -122,25 +120,23 @@ func (s *GenesisSuite) TestValidateGenesis() { Accounts: evm.DefaultGenesisState().Accounts, Params: evm.DefaultGenesisState().Params, }, - expPass: true, }, { - name: "invalid genesis", + name: "happy genesis with account", genState: &evm.GenesisState{ Accounts: []evm.GenesisAccount{ { - Address: gethcommon.Address{}.String(), + Address: gethcommon.Address{}.String(), // zero address }, }, }, - expPass: false, }, { name: "invalid genesis account", genState: &evm.GenesisState{ Accounts: []evm.GenesisAccount{ { - Address: "123456", + Address: "123456", // not a valid ethereum hex address Code: s.code, Storage: evm.Storage{ @@ -150,34 +146,11 @@ func (s *GenesisSuite) TestValidateGenesis() { }, Params: evm.DefaultParams(), }, - expPass: false, + wantErr: "not a valid ethereum hex address", }, { - name: "duplicated genesis account", - genState: &evm.GenesisState{ - Accounts: []evm.GenesisAccount{ - { - Address: s.address, - - Code: s.code, - Storage: evm.Storage{ - evm.NewStateFromEthHashes(s.hash, s.hash), - }, - }, - { - Address: s.address, - - Code: s.code, - Storage: evm.Storage{ - evm.NewStateFromEthHashes(s.hash, s.hash), - }, - }, - }, - }, - expPass: false, - }, - { - name: "duplicated tx log", + name: "duplicate account", + wantErr: "duplicate genesis account", genState: &evm.GenesisState{ Accounts: []evm.GenesisAccount{ { @@ -188,14 +161,6 @@ func (s *GenesisSuite) TestValidateGenesis() { {Key: s.hash.String()}, }, }, - }, - }, - expPass: false, - }, - { - name: "invalid tx log", - genState: &evm.GenesisState{ - Accounts: []evm.GenesisAccount{ { Address: s.address, @@ -206,23 +171,25 @@ func (s *GenesisSuite) TestValidateGenesis() { }, }, }, - expPass: false, }, { name: "happy: empty params", genState: &evm.GenesisState{ Params: evm.Params{}, }, - expPass: true, }, } for _, tc := range testCases { - err := tc.genState.Validate() - if tc.expPass { - s.Require().NoError(err, tc.name) - continue - } - s.Require().Error(err, tc.name) + s.Run(tc.name, func() { + err := tc.genState.Validate() + jsonBz, _ := json.Marshal(tc.genState) + jsonStr := string(jsonBz) + if tc.wantErr != "" { + s.Require().ErrorContains(err, tc.wantErr, jsonStr) + return + } + s.Require().NoError(err, jsonStr) + }) } }