github.com/ari-anchor/sei-tendermint@v0.0.0-20230519144642-dc826b7b56bb/test/e2e/generator/generate_test.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "math/rand" 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 10 e2e "github.com/ari-anchor/sei-tendermint/test/e2e/pkg" 11 ) 12 13 func TestGenerator(t *testing.T) { 14 manifests, err := Generate(rand.New(rand.NewSource(randomSeed)), Options{}) 15 require.NoError(t, err) 16 require.True(t, len(manifests) >= 24, "insufficient combinations %d", len(manifests)) 17 18 // this just means that the numbers reported by the test 19 // failures map to the test cases that you'd see locally. 20 e2e.SortManifests(manifests, false /* ascending */) 21 22 for idx, m := range manifests { 23 t.Run(fmt.Sprintf("Case%04d", idx), func(t *testing.T) { 24 numStateSyncs := 0 25 for name, node := range m.Nodes { 26 if node.StateSync != e2e.StateSyncDisabled { 27 numStateSyncs++ 28 } 29 t.Run(name, func(t *testing.T) { 30 t.Run("StateSync", func(t *testing.T) { 31 if node.StartAt > m.InitialHeight+5 && !node.Stateless() { 32 require.NotEqual(t, node.StateSync, e2e.StateSyncDisabled) 33 } 34 if node.StateSync != e2e.StateSyncDisabled { 35 require.Zero(t, node.Seeds, node.StateSync) 36 require.True(t, len(node.PersistentPeers) >= 2 || len(node.PersistentPeers) == 0, 37 "peers: %v", node.PersistentPeers) 38 } 39 }) 40 if e2e.Mode(node.Mode) != e2e.ModeLight { 41 t.Run("PrivvalProtocol", func(t *testing.T) { 42 require.NotZero(t, node.PrivvalProtocol) 43 }) 44 } 45 }) 46 } 47 require.True(t, numStateSyncs <= 2) 48 }) 49 } 50 }