e2e: backport minor reliability improvements (#6967)

This commit is contained in:
Sam Kleinman
2021-09-21 17:29:56 -04:00
committed by GitHub
parent 849461aab2
commit 294a9695b4
3 changed files with 7 additions and 18 deletions

View File

@@ -15,7 +15,6 @@ var (
// separate testnet for each combination (Cartesian product) of options. // separate testnet for each combination (Cartesian product) of options.
testnetCombinations = map[string][]interface{}{ testnetCombinations = map[string][]interface{}{
"topology": {"single", "quad", "large"}, "topology": {"single", "quad", "large"},
"ipv6": {false, true},
"initialHeight": {0, 1000}, "initialHeight": {0, 1000},
"initialState": { "initialState": {
map[string]string{}, map[string]string{},
@@ -26,11 +25,12 @@ var (
// The following specify randomly chosen values for testnet nodes. // The following specify randomly chosen values for testnet nodes.
nodeDatabases = uniformChoice{"goleveldb", "cleveldb", "rocksdb", "boltdb", "badgerdb"} nodeDatabases = uniformChoice{"goleveldb", "cleveldb", "rocksdb", "boltdb", "badgerdb"}
ipv6 = uniformChoice{false, true}
// FIXME: grpc disabled due to https://github.com/tendermint/tendermint/issues/5439 // FIXME: grpc disabled due to https://github.com/tendermint/tendermint/issues/5439
nodeABCIProtocols = uniformChoice{"unix", "tcp", "builtin"} // "grpc" nodeABCIProtocols = uniformChoice{"unix", "tcp", "builtin"} // "grpc"
nodePrivvalProtocols = uniformChoice{"file", "unix", "tcp"} nodePrivvalProtocols = uniformChoice{"file", "unix", "tcp"}
// FIXME: v2 disabled due to flake // FIXME: v2 disabled due to flake
nodeFastSyncs = uniformChoice{"", "v0"} // "v2" nodeFastSyncs = uniformChoice{"v0"} // "v2"
nodeStateSyncs = uniformChoice{false, true} nodeStateSyncs = uniformChoice{false, true}
nodePersistIntervals = uniformChoice{0, 1, 5} nodePersistIntervals = uniformChoice{0, 1, 5}
nodeSnapshotIntervals = uniformChoice{0, 3} nodeSnapshotIntervals = uniformChoice{0, 3}
@@ -66,7 +66,7 @@ func Generate(r *rand.Rand) ([]e2e.Manifest, error) {
// generateTestnet generates a single testnet with the given options. // generateTestnet generates a single testnet with the given options.
func generateTestnet(r *rand.Rand, opt map[string]interface{}) (e2e.Manifest, error) { func generateTestnet(r *rand.Rand, opt map[string]interface{}) (e2e.Manifest, error) {
manifest := e2e.Manifest{ manifest := e2e.Manifest{
IPv6: opt["ipv6"].(bool), IPv6: ipv6.Choose(r).(bool),
InitialHeight: int64(opt["initialHeight"].(int)), InitialHeight: int64(opt["initialHeight"].(int)),
InitialState: opt["initialState"].(map[string]string), InitialState: opt["initialState"].(map[string]string),
Validators: &map[string]int64{}, Validators: &map[string]int64{},

View File

@@ -17,9 +17,6 @@ import (
// Tests that any initial state given in genesis has made it into the app. // Tests that any initial state given in genesis has made it into the app.
func TestApp_InitialState(t *testing.T) { func TestApp_InitialState(t *testing.T) {
testNode(t, func(t *testing.T, node e2e.Node) { testNode(t, func(t *testing.T, node e2e.Node) {
if node.Stateless() {
return
}
if len(node.Testnet.InitialState) == 0 { if len(node.Testnet.InitialState) == 0 {
return return
} }
@@ -39,12 +36,6 @@ func TestApp_InitialState(t *testing.T) {
// block and the node sync status. // block and the node sync status.
func TestApp_Hash(t *testing.T) { func TestApp_Hash(t *testing.T) {
testNode(t, func(t *testing.T, node e2e.Node) { testNode(t, func(t *testing.T, node e2e.Node) {
// disables tests for light clients
// see https://github.com/tendermint/tendermint/issues/6671
if node.Mode == e2e.ModeSeed || node.Mode == e2e.ModeLight {
return
}
client, err := node.Client() client, err := node.Client()
require.NoError(t, err) require.NoError(t, err)
info, err := client.ABCIInfo(ctx) info, err := client.ABCIInfo(ctx)
@@ -66,12 +57,6 @@ func TestApp_Hash(t *testing.T) {
// Tests that we can set a value and retrieve it. // Tests that we can set a value and retrieve it.
func TestApp_Tx(t *testing.T) { func TestApp_Tx(t *testing.T) {
testNode(t, func(t *testing.T, node e2e.Node) { testNode(t, func(t *testing.T, node e2e.Node) {
// disables tests for light clients
// see https://github.com/tendermint/tendermint/issues/6671
if node.Mode == e2e.ModeSeed || node.Mode == e2e.ModeLight {
return
}
client, err := node.Client() client, err := node.Client()
require.NoError(t, err) require.NoError(t, err)

View File

@@ -50,6 +50,10 @@ func testNode(t *testing.T, testFunc func(*testing.T, e2e.Node)) {
} }
for _, node := range nodes { for _, node := range nodes {
if node.Stateless() {
continue
}
node := *node node := *node
t.Run(node.Name, func(t *testing.T) { t.Run(node.Name, func(t *testing.T) {
t.Parallel() t.Parallel()