feat: execute full-repo remaining parity closure plan
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
using NATS.Server.Raft;
|
||||
|
||||
namespace NATS.Server.Tests;
|
||||
|
||||
public class RaftConsensusRuntimeParityTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task Raft_cluster_commits_with_next_index_backtracking_semantics()
|
||||
{
|
||||
var cluster = RaftTestCluster.Create(3);
|
||||
await cluster.GenerateCommittedEntriesAsync(5);
|
||||
await cluster.WaitForAppliedAsync(5);
|
||||
|
||||
cluster.Nodes.All(n => n.AppliedIndex >= 5).ShouldBeTrue();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using NATS.Server.Raft;
|
||||
|
||||
namespace NATS.Server.Tests;
|
||||
|
||||
public class RaftMembershipRuntimeParityTests
|
||||
{
|
||||
[Fact]
|
||||
public void Raft_membership_add_remove_round_trips()
|
||||
{
|
||||
var node = new RaftNode("N1");
|
||||
node.AddMember("N2");
|
||||
node.AddMember("N3");
|
||||
node.Members.ShouldContain("N2");
|
||||
node.Members.ShouldContain("N3");
|
||||
|
||||
node.RemoveMember("N2");
|
||||
node.Members.ShouldNotContain("N2");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace NATS.Server.Tests;
|
||||
|
||||
public class RaftSnapshotTransferRuntimeParityTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task Raft_snapshot_install_catches_up_lagging_follower()
|
||||
{
|
||||
var cluster = RaftTestCluster.Create(3);
|
||||
await cluster.GenerateCommittedEntriesAsync(3);
|
||||
await cluster.RestartLaggingFollowerAsync();
|
||||
await cluster.WaitForFollowerCatchupAsync();
|
||||
|
||||
cluster.LaggingFollower.AppliedIndex.ShouldBeGreaterThan(0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user