Skip to content

Commit

Permalink
Fix TestE2E_Migration (#1702)
Browse files Browse the repository at this point in the history
* Fix test

* Small fix
  • Loading branch information
goran-ethernal authored Jul 5, 2023
1 parent 7c05311 commit 18e5529
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 28 deletions.
21 changes: 17 additions & 4 deletions command/genesis/params.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,10 @@ func (p *genesisParams) validateFlags() error {
return errValidatorsNotSpecified
}

if err := p.parsePremineInfo(); err != nil {
return err
}

if p.isPolyBFTConsensus() {
if err := p.extractNativeTokenMetadata(); err != nil {
return err
Expand Down Expand Up @@ -478,10 +482,9 @@ func (p *genesisParams) validateRewardWallet() error {
return nil
}

// validatePremineInfo validates whether reserve account (0x0 address) is premined
func (p *genesisParams) validatePremineInfo() error {
// parsePremineInfo parses premine flag
func (p *genesisParams) parsePremineInfo() error {
p.premineInfos = make([]*premineInfo, 0, len(p.premine))
isReserveAccPremined := false

for _, premine := range p.premine {
premineInfo, err := parsePremineInfo(premine)
Expand All @@ -490,9 +493,19 @@ func (p *genesisParams) validatePremineInfo() error {
}

p.premineInfos = append(p.premineInfos, premineInfo)
}

return nil
}

// validatePremineInfo validates whether reserve account (0x0 address) is premined
func (p *genesisParams) validatePremineInfo() error {
isReserveAccPremined := false

for _, premineInfo := range p.premineInfos {
if premineInfo.address == types.ZeroAddress {
isReserveAccPremined = true
// we have premine of zero address, just return
return nil
}
}

Expand Down
36 changes: 23 additions & 13 deletions command/genesis/params_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,24 +124,25 @@ func Test_validatePremineInfo(t *testing.T) {
t.Parallel()

cases := []struct {
name string
premineRaw []string
expectedPremines []*premineInfo
expectErrMsg string
name string
premineRaw []string
expectedPremines []*premineInfo
expectValidateErrMsg string
expectedParseErrMsg string
}{
{
name: "invalid premine balance",
premineRaw: []string{"0x12345:loremIpsum"},
expectedPremines: []*premineInfo{},
expectErrMsg: "invalid premine balance amount provided",
name: "invalid premine balance",
premineRaw: []string{"0x12345:loremIpsum"},
expectedPremines: []*premineInfo{},
expectedParseErrMsg: "invalid premine balance amount provided",
},
{
name: "missing zero address premine",
premineRaw: []string{types.StringToAddress("12").String()},
expectedPremines: []*premineInfo{
{address: types.StringToAddress("12"), amount: command.DefaultPremineBalance},
},
expectErrMsg: errReserveAccMustBePremined.Error(),
expectValidateErrMsg: errReserveAccMustBePremined.Error(),
},
{
name: "valid premine information",
Expand All @@ -153,7 +154,7 @@ func Test_validatePremineInfo(t *testing.T) {
{address: types.StringToAddress("1"), amount: ethgo.Ether(10)},
{address: types.ZeroAddress, amount: ethgo.Ether(10000)},
},
expectErrMsg: "",
expectValidateErrMsg: "",
},
}

Expand All @@ -163,10 +164,19 @@ func Test_validatePremineInfo(t *testing.T) {
t.Parallel()

p := &genesisParams{premine: c.premineRaw}
err := p.validatePremineInfo()
err := p.parsePremineInfo()
if c.expectedParseErrMsg != "" {
require.ErrorContains(t, err, c.expectedParseErrMsg)

if c.expectErrMsg != "" {
require.ErrorContains(t, err, c.expectErrMsg)
return
} else {
require.NoError(t, err)
}

err = p.validatePremineInfo()

if c.expectValidateErrMsg != "" {
require.ErrorContains(t, err, c.expectValidateErrMsg)
} else {
require.NoError(t, err)
}
Expand Down
21 changes: 10 additions & 11 deletions e2e-polybft/e2e/migration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import (
itrie "github.com/0xPolygon/polygon-edge/state/immutable-trie"
"github.com/0xPolygon/polygon-edge/txrelayer"
"github.com/0xPolygon/polygon-edge/types"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/syndtr/goleveldb/leveldb"
"github.com/umbracle/ethgo"
Expand All @@ -41,14 +40,14 @@ func TestE2E_Migration(t *testing.T) {
userAddr,
ethgo.Latest,
)
assert.NoError(t, err)
assert.Equal(t, balanceSender.Cmp(initialBalance), 0)
require.NoError(t, err)
require.Equal(t, balanceSender.Cmp(initialBalance), 0)

balanceReceiver, err := rpcClient.Eth().GetBalance(
userAddr2,
ethgo.Latest,
)
assert.NoError(t, err)
require.NoError(t, err)

if balanceReceiver.Uint64() != 0 {
t.Fatal("balanceReceiver is not 0")
Expand All @@ -65,8 +64,8 @@ func TestE2E_Migration(t *testing.T) {
Gas: 1000000,
Value: sendAmount,
}, userKey)
assert.NoError(t, err)
assert.NotNil(t, receipt)
require.NoError(t, err)
require.NotNil(t, receipt)

receipt, err = relayer.SendTransaction(&ethgo.Transaction{
From: userAddr,
Expand All @@ -91,14 +90,14 @@ func TestE2E_Migration(t *testing.T) {
userAddr,
ethgo.Latest,
)
assert.NoError(t, err)
require.NoError(t, err)

balanceReceiver, err = rpcClient.Eth().GetBalance(
userAddr2,
ethgo.Latest,
)
assert.NoError(t, err)
assert.Equal(t, sendAmount, balanceReceiver)
require.NoError(t, err)
require.Equal(t, sendAmount, balanceReceiver)

block, err := rpcClient.Eth().GetBlockByNumber(ethgo.Latest, true)
if err != nil {
Expand Down Expand Up @@ -163,8 +162,8 @@ func TestE2E_Migration(t *testing.T) {
t.Fatal(err)
}

assert.Equal(t, balanceSender, senderBalanceAfterMigration)
assert.Equal(t, balanceReceiver, receiverBalanceAfterMigration)
require.Equal(t, balanceSender, senderBalanceAfterMigration)
require.Equal(t, balanceReceiver, receiverBalanceAfterMigration)

deployedCode, err := cluster.Servers[0].JSONRPC().Eth().GetCode(deployedContractBalance, ethgo.Latest)
if err != nil {
Expand Down

0 comments on commit 18e5529

Please sign in to comment.