Improve AddVerifiedClient test

This commit is contained in:
Łukasz Magiera 2021-06-01 21:28:48 +02:00
parent ee21351aa0
commit 2f0a9f6c40
2 changed files with 148 additions and 121 deletions

View File

@ -122,14 +122,12 @@ var OneFull = DefaultFullOpts(1)
var TwoFull = DefaultFullOpts(2)
var FullNodeWithLatestActorsAt = func(upgradeHeight abi.ChainEpoch) FullNodeOpts {
if upgradeHeight == -1 {
// Attention: Update this when introducing new actor versions or your tests will be sad
upgradeHeight = 4
return FullNodeWithActorsUpgradeAt(network.Version13, upgradeHeight)
}
return FullNodeOpts{
Opts: func(nodes []TestNode) node.Option {
return node.Override(new(stmgr.UpgradeSchedule), stmgr.UpgradeSchedule{{
var FullNodeWithActorsUpgradeAt = func(version network.Version, upgradeHeight abi.ChainEpoch) FullNodeOpts {
fullSchedule := stmgr.UpgradeSchedule{{
// prepare for upgrade.
Network: network.Version9,
Height: 1,
@ -144,9 +142,25 @@ var FullNodeWithLatestActorsAt = func(upgradeHeight abi.ChainEpoch) FullNodeOpts
Migration: stmgr.UpgradeActorsV4,
}, {
Network: network.Version13,
Height: upgradeHeight,
Height: 4,
Migration: stmgr.UpgradeActorsV5,
}})
}}
schedule := stmgr.UpgradeSchedule{}
for _, upgrade := range fullSchedule {
if upgrade.Network > version {
break
}
schedule = append(schedule, upgrade)
}
if upgradeHeight > 0 {
schedule[len(schedule)-1].Height = upgradeHeight
}
return FullNodeOpts{
Opts: func(nodes []TestNode) node.Option {
return node.Override(new(stmgr.UpgradeSchedule), fullSchedule)
},
}
}

View File

@ -2,6 +2,7 @@ package test
import (
"context"
"github.com/filecoin-project/go-state-types/network"
"strings"
lapi "github.com/filecoin-project/lotus/api"
@ -19,8 +20,10 @@ import (
)
func AddVerifiedClient(t *testing.T, b APIBuilder) {
test := func(nv network.Version, shouldWork bool) func(*testing.T) {
return func(t *testing.T) {
nodes, miners := b(t, []FullNodeOpts{FullNodeWithLatestActorsAt(-1)}, OneMiner)
nodes, miners := b(t, []FullNodeOpts{FullNodeWithActorsUpgradeAt(nv, -1)}, OneMiner)
api := nodes[0].FullNode.(*impl.FullNodeAPI)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
@ -120,7 +123,17 @@ func AddVerifiedClient(t *testing.T, b APIBuilder) {
Value: big.Zero(),
}
if _, err = api.MpoolPushMessage(ctx, msg, nil); !strings.Contains(err.Error(), "verified client already exists") {
t.Fatal("Add datacap to an exist verified client should fail")
_, err = api.MpoolPushMessage(ctx, msg, nil)
if shouldWork && err != nil {
t.Fatal("expected nil err", err)
}
if !shouldWork && err == nil || !strings.Contains(err.Error(), "verified client already exists") {
t.Fatal("Add datacap to an existing verified client should fail")
}
}
}
t.Run("nv12", test(network.Version12, false))
t.Run("nv13", test(network.Version13, true))
}