Commit 254b5e13 authored by anikaraghu's avatar anikaraghu Committed by GitHub

Add e2e test for sequencer failover (#9713)

* E2E test

* Fix compile errors

* Check error
parent 70c0778d
...@@ -136,3 +136,31 @@ func TestSequencerFailover_ConductorRPC(t *testing.T) { ...@@ -136,3 +136,31 @@ func TestSequencerFailover_ConductorRPC(t *testing.T) {
require.Equal(t, 2, len(membership), "Expected 2 members in cluster after removal") require.Equal(t, 2, len(membership), "Expected 2 members in cluster after removal")
require.NotContains(t, membership, fid, "Expected follower to be removed from cluster") require.NotContains(t, membership, fid, "Expected follower to be removed from cluster")
} }
// [Category: Sequencer Failover]
// Test that the sequencer can successfully failover to a new sequencer once the active sequencer goes down.
func TestSequencerFailover_ActiveSequencerDown(t *testing.T) {
sys, conductors := setupSequencerFailoverTest(t)
defer sys.Close()
ctx := context.Background()
leaderId, leader := findLeader(t, conductors)
err := sys.RollupNodes[leaderId].Stop(ctx) // Stop the current leader sequencer
require.NoError(t, err)
// The leadership change should occur with no errors
newID := waitForLeadershipChange(t, leader, leaderId, conductors, sys)
require.NotEqual(t, leaderId, newID, "Expected leader to change")
// Confirm the new leader is different from the old leader
newLeaderId, _ := findLeader(t, conductors)
require.NotEqual(t, leaderId, newLeaderId, "Expected leader to change")
// Check that the sequencer is healthy
require.True(t, healthy(t, ctx, conductors[newLeaderId]))
// Check if the new leader is sequencing
active, err := sys.RollupClient(newLeaderId).SequencerActive(ctx)
require.NoError(t, err)
require.True(t, active, "Expected new leader to be sequencing")
}
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