lotus/build/builtin_actors_test.go
2023-11-15 13:06:51 +01:00

46 lines
1.3 KiB
Go

package build_test
import (
"testing"
"github.com/stretchr/testify/require"
actorstypes "github.com/filecoin-project/go-state-types/actors"
"github.com/filecoin-project/go-state-types/manifest"
"github.com/filecoin-project/lotus/build"
"github.com/filecoin-project/lotus/chain/actors"
)
// Test that the embedded metadata is correct.
func TestEmbeddedMetadata(t *testing.T) {
metadata, err := build.ReadEmbeddedBuiltinActorsMetadata()
require.NoError(t, err)
for i, v1 := range metadata {
v2 := build.EmbeddedBuiltinActorsMetadata[i]
require.Equal(t, v1.Network, v2.Network)
require.Equal(t, v1.Version, v2.Version)
require.Equal(t, v1.ManifestCid, v2.ManifestCid)
require.Equal(t, v1.Actors, v2.Actors)
}
}
// Test that we're registering the manifest correctly.
func TestRegistration(t *testing.T) {
for _, av := range []actorstypes.Version{actorstypes.Version8, actorstypes.Version9} {
manifestCid, found := actors.GetManifest(av)
require.True(t, found)
require.True(t, manifestCid.Defined())
for _, key := range manifest.GetBuiltinActorsKeys(av) {
actorCid, found := actors.GetActorCodeID(av, key)
require.True(t, found)
name, version, found := actors.GetActorMetaByCode(actorCid)
require.True(t, found)
require.Equal(t, av, version)
require.Equal(t, key, name)
}
}
}