Commit 05829202 authored by Felipe Andrade's avatar Felipe Andrade

test edge cases

parent 16ef6f35
...@@ -135,7 +135,7 @@ func TestConsensus(t *testing.T) { ...@@ -135,7 +135,7 @@ func TestConsensus(t *testing.T) {
require.Equal(t, 1, len(consensusGroup)) require.Equal(t, 1, len(consensusGroup))
}) })
t.Run("prevent using a backend lagging behind 2", func(t *testing.T) { t.Run("prevent using a backend lagging behind - at limit", func(t *testing.T) {
h1.ResetOverrides() h1.ResetOverrides()
h2.ResetOverrides() h2.ResetOverrides()
bg.Consensus.Unban() bg.Consensus.Unban()
...@@ -146,6 +146,7 @@ func TestConsensus(t *testing.T) { ...@@ -146,6 +146,7 @@ func TestConsensus(t *testing.T) {
Response: buildGetBlockResponse("0x1", "hash1"), Response: buildGetBlockResponse("0x1", "hash1"),
}) })
// 0x1 + 50 = 0x33
h2.AddOverride(&ms.MethodTemplate{ h2.AddOverride(&ms.MethodTemplate{
Method: "eth_getBlockByNumber", Method: "eth_getBlockByNumber",
Block: "latest", Block: "latest",
...@@ -170,6 +171,41 @@ func TestConsensus(t *testing.T) { ...@@ -170,6 +171,41 @@ func TestConsensus(t *testing.T) {
require.Equal(t, 2, len(consensusGroup)) require.Equal(t, 2, len(consensusGroup))
}) })
t.Run("prevent using a backend lagging behind - one before limit", func(t *testing.T) {
h1.ResetOverrides()
h2.ResetOverrides()
bg.Consensus.Unban()
h1.AddOverride(&ms.MethodTemplate{
Method: "eth_getBlockByNumber",
Block: "latest",
Response: buildGetBlockResponse("0x1", "hash1"),
})
// 0x1 + 49 = 0x32
h2.AddOverride(&ms.MethodTemplate{
Method: "eth_getBlockByNumber",
Block: "latest",
Response: buildGetBlockResponse("0x32", "hash0x100"),
})
h2.AddOverride(&ms.MethodTemplate{
Method: "eth_getBlockByNumber",
Block: "0x100",
Response: buildGetBlockResponse("0x32", "hash0x100"),
})
for _, be := range bg.Backends {
bg.Consensus.UpdateBackend(ctx, be)
}
bg.Consensus.UpdateBackendGroupConsensus(ctx)
require.Equal(t, "0x1", bg.Consensus.GetConsensusBlockNumber().String())
consensusGroup := bg.Consensus.GetConsensusGroup()
require.Equal(t, 2, len(consensusGroup))
})
t.Run("prevent using a backend not in sync", func(t *testing.T) { t.Run("prevent using a backend not in sync", func(t *testing.T) {
h1.ResetOverrides() h1.ResetOverrides()
h2.ResetOverrides() h2.ResetOverrides()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment