lotus/chain/actors/policy/policy_test.go

81 lines
3.0 KiB
Go
Raw Normal View History

2020-09-25 21:36:36 +00:00
package policy
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/filecoin-project/go-state-types/abi"
"github.com/filecoin-project/go-state-types/network"
2020-10-08 01:09:33 +00:00
builtin0 "github.com/filecoin-project/specs-actors/actors/builtin"
2020-09-25 21:36:36 +00:00
miner0 "github.com/filecoin-project/specs-actors/actors/builtin/miner"
2020-10-08 01:09:33 +00:00
paych0 "github.com/filecoin-project/specs-actors/actors/builtin/paych"
2020-09-29 00:28:16 +00:00
verifreg0 "github.com/filecoin-project/specs-actors/actors/builtin/verifreg"
2020-10-08 01:09:33 +00:00
builtin2 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
2020-09-29 00:28:16 +00:00
miner2 "github.com/filecoin-project/specs-actors/v2/actors/builtin/miner"
2020-10-08 01:09:33 +00:00
paych2 "github.com/filecoin-project/specs-actors/v2/actors/builtin/paych"
2020-09-29 00:28:16 +00:00
verifreg2 "github.com/filecoin-project/specs-actors/v2/actors/builtin/verifreg"
2020-09-25 21:36:36 +00:00
)
func TestSupportedProofTypes(t *testing.T) {
var oldTypes []abi.RegisteredSealProof
for t := range miner0.SupportedProofTypes {
oldTypes = append(oldTypes, t)
}
t.Cleanup(func() {
SetSupportedProofTypes(oldTypes...)
})
SetSupportedProofTypes(abi.RegisteredSealProof_StackedDrg2KiBV1)
require.EqualValues(t,
miner0.SupportedProofTypes,
map[abi.RegisteredSealProof]struct{}{
abi.RegisteredSealProof_StackedDrg2KiBV1: {},
},
)
AddSupportedProofTypes(abi.RegisteredSealProof_StackedDrg8MiBV1)
require.EqualValues(t,
miner0.SupportedProofTypes,
map[abi.RegisteredSealProof]struct{}{
abi.RegisteredSealProof_StackedDrg2KiBV1: {},
abi.RegisteredSealProof_StackedDrg8MiBV1: {},
},
)
}
2020-09-29 00:28:16 +00:00
// Tests assumptions about policies being the same between actor versions.
func TestAssumptions(t *testing.T) {
require.EqualValues(t, miner0.SupportedProofTypes, miner2.PreCommitSealProofTypesV0)
2020-09-29 00:28:16 +00:00
require.Equal(t, miner0.PreCommitChallengeDelay, miner2.PreCommitChallengeDelay)
2020-10-08 01:09:33 +00:00
require.Equal(t, miner0.MaxSectorExpirationExtension, miner2.MaxSectorExpirationExtension)
2020-09-29 00:28:16 +00:00
require.Equal(t, miner0.ChainFinality, miner2.ChainFinality)
require.Equal(t, miner0.WPoStChallengeWindow, miner2.WPoStChallengeWindow)
require.Equal(t, miner0.WPoStProvingPeriod, miner2.WPoStProvingPeriod)
require.Equal(t, miner0.WPoStPeriodDeadlines, miner2.WPoStPeriodDeadlines)
2020-10-08 01:09:33 +00:00
require.Equal(t, miner0.AddressedSectorsMax, miner2.AddressedSectorsMax)
require.Equal(t, paych0.SettleDelay, paych2.SettleDelay)
2020-09-29 00:44:34 +00:00
require.True(t, verifreg0.MinVerifiedDealSize.Equals(verifreg2.MinVerifiedDealSize))
2020-09-29 00:28:16 +00:00
}
2020-10-08 01:09:33 +00:00
func TestPartitionSizes(t *testing.T) {
for _, p := range abi.SealProofInfos {
sizeNew, err := builtin2.PoStProofWindowPoStPartitionSectors(p.WindowPoStProof)
2020-10-08 01:09:33 +00:00
require.NoError(t, err)
sizeOld, err := builtin0.PoStProofWindowPoStPartitionSectors(p.WindowPoStProof)
2020-10-08 01:09:33 +00:00
if err != nil {
// new proof type.
continue
}
require.Equal(t, sizeOld, sizeNew)
}
}
func TestPoStSize(t *testing.T) {
v12PoStSize, err := GetMaxPoStPartitions(network.Version12, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1)
require.Equal(t, 4, v12PoStSize)
require.NoError(t, err)
v13PoStSize, err := GetMaxPoStPartitions(network.Version13, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1)
require.NoError(t, err)
require.Equal(t, 10, v13PoStSize)
}