From 9b2efd5ace6b0c3d7bccb8ea1c93644e0096d422 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Tue, 22 Jun 2021 17:07:14 +0100 Subject: [PATCH 1/3] try to deflake window post itests. --- itests/wdpost_dispute_test.go | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/itests/wdpost_dispute_test.go b/itests/wdpost_dispute_test.go index bf1a01e60..24b831df3 100644 --- a/itests/wdpost_dispute_test.go +++ b/itests/wdpost_dispute_test.go @@ -49,26 +49,11 @@ func TestWindowPostDispute(t *testing.T) { Miner(&evilMiner, &client, opts, kit.PresealSectors(0)). Start() - { - addrinfo, err := client.NetAddrsListen(ctx) - if err != nil { - t.Fatal(err) - } - - if err := chainMiner.NetConnect(ctx, addrinfo); err != nil { - t.Fatal(err) - } - - if err := evilMiner.NetConnect(ctx, addrinfo); err != nil { - t.Fatal(err) - } - } - defaultFrom, err := client.WalletDefaultAddress(ctx) require.NoError(t, err) // Mine with the _second_ node (the good one). - ens.BeginMining(blocktime, &chainMiner) + ens.InterconnectAll().BeginMining(blocktime, &chainMiner) // Give the chain miner enough sectors to win every block. chainMiner.PledgeSectors(ctx, 10, 0, nil) @@ -84,7 +69,7 @@ func TestWindowPostDispute(t *testing.T) { t.Logf("Running one proving period\n") - waitUntil := di.PeriodStart + di.WPoStProvingPeriod*2 + waitUntil := di.PeriodStart + di.WPoStProvingPeriod*2 + 1 t.Logf("End for head.Height > %d", waitUntil) ts := client.WaitTillChain(ctx, kit.HeightAtLeast(waitUntil)) @@ -257,7 +242,7 @@ func TestWindowPostDisputeFails(t *testing.T) { require.NoError(t, err) t.Log("Running one proving period") - waitUntil := di.PeriodStart + di.WPoStProvingPeriod*2 + waitUntil := di.PeriodStart + di.WPoStProvingPeriod*2 + 1 t.Logf("End for head.Height > %d", waitUntil) ts := client.WaitTillChain(ctx, kit.HeightAtLeast(waitUntil)) From 120dd149793a7baf314c78d80bf7f50994ff610a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Tue, 22 Jun 2021 17:18:07 +0100 Subject: [PATCH 2/3] avoid double close. --- itests/gateway_test.go | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/itests/gateway_test.go b/itests/gateway_test.go index 0f73befa5..6d30bb46e 100644 --- a/itests/gateway_test.go +++ b/itests/gateway_test.go @@ -19,7 +19,6 @@ import ( "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/api/client" - "github.com/filecoin-project/lotus/chain/actors/policy" "github.com/filecoin-project/lotus/chain/stmgr" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/cli" @@ -35,12 +34,6 @@ const ( maxStateWaitLookbackLimit = stmgr.LookbackNoLimit ) -func init() { - policy.SetSupportedProofTypes(abi.RegisteredSealProof_StackedDrg2KiBV1) - policy.SetConsensusMinerMinPower(abi.NewStoragePower(2048)) - policy.SetMinVerifiedDealSize(abi.NewStoragePower(256)) -} - // TestGatewayWalletMsig tests that API calls to wallet and msig can be made on a lite // node that is connected through a gateway to a full API node func TestGatewayWalletMsig(t *testing.T) { @@ -49,7 +42,6 @@ func TestGatewayWalletMsig(t *testing.T) { blocktime := 5 * time.Millisecond ctx := context.Background() nodes := startNodes(ctx, t, blocktime, maxLookbackCap, maxStateWaitLookbackLimit) - defer nodes.closer() lite := nodes.lite full := nodes.full @@ -181,7 +173,6 @@ func TestGatewayMsigCLI(t *testing.T) { blocktime := 5 * time.Millisecond ctx := context.Background() nodes := startNodesWithFunds(ctx, t, blocktime, maxLookbackCap, maxStateWaitLookbackLimit) - defer nodes.closer() lite := nodes.lite runMultisigTests(t, lite) @@ -193,7 +184,6 @@ func TestGatewayDealFlow(t *testing.T) { blocktime := 5 * time.Millisecond ctx := context.Background() nodes := startNodesWithFunds(ctx, t, blocktime, maxLookbackCap, maxStateWaitLookbackLimit) - defer nodes.closer() time.Sleep(5 * time.Second) @@ -216,16 +206,14 @@ func TestGatewayCLIDealFlow(t *testing.T) { blocktime := 5 * time.Millisecond ctx := context.Background() nodes := startNodesWithFunds(ctx, t, blocktime, maxLookbackCap, maxStateWaitLookbackLimit) - defer nodes.closer() kit.RunClientTest(t, cli.Commands, nodes.lite) } type testNodes struct { - lite *kit.TestFullNode - full *kit.TestFullNode - miner *kit.TestMiner - closer jsonrpc.ClientCloser + lite *kit.TestFullNode + full *kit.TestFullNode + miner *kit.TestMiner } func startNodesWithFunds( @@ -298,7 +286,7 @@ func startNodes( ), ).Start().InterconnectAll() - return &testNodes{lite: &lite, full: full, miner: miner, closer: closer} + return &testNodes{lite: &lite, full: full, miner: miner} } func sendFunds(ctx context.Context, fromNode *kit.TestFullNode, fromAddr address.Address, toAddr address.Address, amt types.BigInt) error { From 2e9e1c2330b9dcb3eca7fdd6682aab6a8db98176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Tue, 22 Jun 2021 18:15:38 +0100 Subject: [PATCH 3/3] avoid double BlockMiner instantiation. --- itests/kit/ensemble.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/itests/kit/ensemble.go b/itests/kit/ensemble.go index 2e04c37c8..788aa40c0 100644 --- a/itests/kit/ensemble.go +++ b/itests/kit/ensemble.go @@ -109,6 +109,7 @@ type Ensemble struct { active struct { fullnodes []*TestFullNode miners []*TestMiner + bms map[*TestMiner]*BlockMiner } genesis struct { miners []genesis.Miner @@ -125,6 +126,7 @@ func NewEnsemble(t *testing.T, opts ...EnsembleOpt) *Ensemble { } n := &Ensemble{t: t, options: &options} + n.active.bms = make(map[*TestMiner]*BlockMiner) // add accounts from ensemble options to genesis. for _, acc := range options.accounts { @@ -597,7 +599,14 @@ func (n *Ensemble) BeginMining(blocktime time.Duration, miners ...*TestMiner) [] var bms []*BlockMiner if len(miners) == 0 { - miners = n.active.miners + // no miners have been provided explicitly, instantiate block miners + // for all active miners that aren't still mining. + for _, m := range n.active.miners { + if _, ok := n.active.bms[m]; ok { + continue // skip, already have a block miner + } + miners = append(miners, m) + } } for _, m := range miners { @@ -606,6 +615,8 @@ func (n *Ensemble) BeginMining(blocktime time.Duration, miners ...*TestMiner) [] n.t.Cleanup(bm.Stop) bms = append(bms, bm) + + n.active.bms[m] = bm } return bms