Skip to content

Commit

Permalink
Relayer and Validator node types are represented as enum flags in E2E…
Browse files Browse the repository at this point in the history
… framework (#1962)

* Relayer and isValidator are represented as enum flags

* CR fix
  • Loading branch information
jelacamarko committed Oct 9, 2023
1 parent b2334ac commit 5e11256
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 10 deletions.
4 changes: 2 additions & 2 deletions e2e-polybft/e2e/consensus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -233,10 +233,10 @@ func TestE2E_Consensus_RegisterValidator(t *testing.T) {

// start the first and the second validator
cluster.InitTestServer(t, cluster.Config.ValidatorPrefix+strconv.Itoa(validatorSetSize+1),
cluster.Bridge.JSONRPCAddr(), true, false)
cluster.Bridge.JSONRPCAddr(), framework.Validator)

cluster.InitTestServer(t, cluster.Config.ValidatorPrefix+strconv.Itoa(validatorSetSize+2),
cluster.Bridge.JSONRPCAddr(), true, false)
cluster.Bridge.JSONRPCAddr(), framework.Validator)

// collect the first and the second validator from the cluster
firstValidator := cluster.Servers[validatorSetSize]
Expand Down
2 changes: 1 addition & 1 deletion e2e-polybft/e2e/migration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,6 @@ func TestE2E_Migration(t *testing.T) {
_, err = cluster.InitSecrets("test-chain-8", 1)
require.NoError(t, err)

cluster.InitTestServer(t, "test-chain-8", cluster.Bridge.JSONRPCAddr(), false, false)
cluster.InitTestServer(t, "test-chain-8", cluster.Bridge.JSONRPCAddr(), frameworkpolybft.None)
require.NoError(t, cluster.WaitForBlock(33, time.Minute))
}
33 changes: 26 additions & 7 deletions e2e-polybft/framework/test-cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,22 @@ const (
nonValidatorPrefix = "test-non-validator-"
)

type NodeType int

const (
None NodeType = 0
Validator NodeType = 1 << iota
Relayer NodeType = 2
)

func (nt NodeType) IsSet(value NodeType) bool {
return nt&value == value
}

func (nt *NodeType) Append(value NodeType) {
*nt |= value
}

var (
startTime int64
testRewardWalletAddr = types.StringToAddress("0xFFFFFFFF")
Expand Down Expand Up @@ -639,22 +655,25 @@ func NewTestCluster(t *testing.T, validatorsCount int, opts ...ClusterOption) *T
require.NoError(t, err)

for i := 1; i <= int(cluster.Config.ValidatorSetSize); i++ {
nodeType := Validator
if i == 1 {
nodeType.Append(Relayer)
}

dir := cluster.Config.ValidatorPrefix + strconv.Itoa(i)
cluster.InitTestServer(t, dir, cluster.Bridge.JSONRPCAddr(),
true, i == 1 /* relayer */)
cluster.InitTestServer(t, dir, cluster.Bridge.JSONRPCAddr(), nodeType)
}

for i := 1; i <= cluster.Config.NonValidatorCount; i++ {
dir := nonValidatorPrefix + strconv.Itoa(i)
cluster.InitTestServer(t, dir, cluster.Bridge.JSONRPCAddr(),
false, false /* relayer */)
cluster.InitTestServer(t, dir, cluster.Bridge.JSONRPCAddr(), None)
}

return cluster
}

func (c *TestCluster) InitTestServer(t *testing.T,
dataDir string, bridgeJSONRPC string, isValidator bool, relayer bool) {
dataDir string, bridgeJSONRPC string, nodeType NodeType) {
t.Helper()

logLevel := os.Getenv(envLogLevel)
Expand All @@ -669,11 +688,11 @@ func (c *TestCluster) InitTestServer(t *testing.T,

srv := NewTestServer(t, c.Config, bridgeJSONRPC, func(config *TestServerConfig) {
config.DataDir = dataDir
config.Seal = isValidator
config.Seal = nodeType.IsSet(Validator)
config.Chain = c.Config.Dir("genesis.json")
config.P2PPort = c.getOpenPort()
config.LogLevel = logLevel
config.Relayer = relayer
config.Relayer = nodeType.IsSet(Relayer)
config.NumBlockConfirmations = c.Config.NumBlockConfirmations
config.BridgeJSONRPC = bridgeJSONRPC
config.RelayerTrackerPollInterval = c.Config.RelayerTrackerPollInterval
Expand Down

0 comments on commit 5e11256

Please sign in to comment.