From edf9ed770ef3ad008ba6a8af8247b4fa0e861575 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Thu, 12 Mar 2026 15:36:02 -0400 Subject: [PATCH] refactor: extract NATS.Server.Raft.Tests project Move 43 Raft consensus test files (8 root-level + 35 in Raft/ subfolder) from NATS.Server.Tests into a dedicated NATS.Server.Raft.Tests project. Update namespaces, add InternalsVisibleTo, and fix timing/exception handling issues in moved test files. --- NatsDotNet.slnx | 1 + src/NATS.Server/NATS.Server.csproj | 1 + .../NATS.Server.Raft.Tests.csproj | 27 +++++++++++++++++++ .../Raft/NatsRaftTransportTests.cs | 2 +- .../Raft/RaftAppendCommitParityTests.cs | 2 +- .../Raft/RaftAppendEntryTests.cs | 2 +- .../Raft/RaftApplyQueueTests.cs | 2 +- .../Raft/RaftBinaryWireFormatTests.cs | 2 +- .../Raft/RaftCompactionPolicyTests.cs | 2 +- .../RaftConfigAndStateParityBatch1Tests.cs | 2 +- .../Raft/RaftConsensusRuntimeParityTests.cs | 2 +- .../Raft/RaftCoreTypeTests.cs | 2 +- .../Raft/RaftElectionBasicTests.cs | 2 +- .../Raft/RaftElectionJitterTests.cs | 2 +- .../Raft/RaftElectionTests.cs | 2 +- .../Raft/RaftElectionTimerTests.cs | 19 ++++++++----- .../Raft/RaftGoParityTests.cs | 2 +- .../Raft/RaftHealthTests.cs | 2 +- .../Raft/RaftJointConsensusTests.cs | 2 +- .../Raft/RaftLeadershipTransferTests.cs | 2 +- .../Raft/RaftLogReplicationTests.cs | 2 +- .../Raft/RaftMembershipAndSnapshotTests.cs | 2 +- .../Raft/RaftMembershipRuntimeParityTests.cs | 2 +- .../Raft/RaftMembershipTests.cs | 2 +- .../Raft/RaftNodeParityBatch2Tests.cs | 2 +- .../RaftOperationalConvergenceParityTests.cs | 2 +- .../Raft/RaftParityBatch3Tests.cs | 2 +- .../Raft/RaftPreVoteTests.cs | 2 +- .../Raft/RaftQuorumCheckTests.cs | 2 +- .../Raft/RaftReadIndexTests.cs | 2 +- .../Raft/RaftSnapshotCheckpointTests.cs | 2 +- .../Raft/RaftSnapshotStreamingTests.cs | 2 +- .../Raft/RaftSnapshotTests.cs | 2 +- .../RaftSnapshotTransferRuntimeParityTests.cs | 2 +- .../Raft/RaftStrictConsensusRuntimeTests.cs | 2 +- .../Raft/RaftStrictConvergenceRuntimeTests.cs | 2 +- .../Raft/RaftSubjectsTests.cs | 2 +- .../Raft/RaftWalTests.cs | 2 +- .../Raft/RaftWireFormatTests.cs | 2 +- .../RaftConsensusAdvancedParityTests.cs | 2 +- .../RaftElectionTests.cs | 17 ++++++------ .../RaftMembershipParityTests.cs | 2 +- .../RaftReplicationTests.cs | 2 +- .../RaftSafetyContractTests.cs | 2 +- .../RaftSnapshotCatchupTests.cs | 2 +- .../RaftSnapshotTransferParityTests.cs | 2 +- .../RaftTransportPersistenceTests.cs | 5 ++-- 47 files changed, 94 insertions(+), 58 deletions(-) create mode 100644 tests/NATS.Server.Raft.Tests/NATS.Server.Raft.Tests.csproj rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/NatsRaftTransportTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftAppendCommitParityTests.cs (92%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftAppendEntryTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftApplyQueueTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftBinaryWireFormatTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftCompactionPolicyTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftConfigAndStateParityBatch1Tests.cs (97%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftConsensusRuntimeParityTests.cs (92%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftCoreTypeTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftElectionBasicTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftElectionJitterTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftElectionTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftElectionTimerTests.cs (86%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftGoParityTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftHealthTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftJointConsensusTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftLeadershipTransferTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftLogReplicationTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftMembershipAndSnapshotTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftMembershipRuntimeParityTests.cs (92%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftMembershipTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftNodeParityBatch2Tests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftOperationalConvergenceParityTests.cs (94%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftParityBatch3Tests.cs (98%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftPreVoteTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftQuorumCheckTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftReadIndexTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftSnapshotCheckpointTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftSnapshotStreamingTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftSnapshotTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftSnapshotTransferRuntimeParityTests.cs (92%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftStrictConsensusRuntimeTests.cs (98%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftStrictConvergenceRuntimeTests.cs (95%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftSubjectsTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftWalTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/Raft/RaftWireFormatTests.cs (99%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/RaftConsensusAdvancedParityTests.cs (95%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/RaftElectionTests.cs (82%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/RaftMembershipParityTests.cs (92%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/RaftReplicationTests.cs (93%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/RaftSafetyContractTests.cs (93%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/RaftSnapshotCatchupTests.cs (92%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/RaftSnapshotTransferParityTests.cs (95%) rename tests/{NATS.Server.Tests => NATS.Server.Raft.Tests}/RaftTransportPersistenceTests.cs (93%) diff --git a/NatsDotNet.slnx b/NatsDotNet.slnx index 0fcfe13..bbb6ad8 100644 --- a/NatsDotNet.slnx +++ b/NatsDotNet.slnx @@ -11,6 +11,7 @@ + diff --git a/src/NATS.Server/NATS.Server.csproj b/src/NATS.Server/NATS.Server.csproj index 6132fcd..5a7783e 100644 --- a/src/NATS.Server/NATS.Server.csproj +++ b/src/NATS.Server/NATS.Server.csproj @@ -6,6 +6,7 @@ + diff --git a/tests/NATS.Server.Raft.Tests/NATS.Server.Raft.Tests.csproj b/tests/NATS.Server.Raft.Tests/NATS.Server.Raft.Tests.csproj new file mode 100644 index 0000000..c886361 --- /dev/null +++ b/tests/NATS.Server.Raft.Tests/NATS.Server.Raft.Tests.csproj @@ -0,0 +1,27 @@ + + + + false + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/NATS.Server.Tests/Raft/NatsRaftTransportTests.cs b/tests/NATS.Server.Raft.Tests/Raft/NatsRaftTransportTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/NatsRaftTransportTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/NatsRaftTransportTests.cs index 8421d12..d4752b1 100644 --- a/tests/NATS.Server.Tests/Raft/NatsRaftTransportTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/NatsRaftTransportTests.cs @@ -2,7 +2,7 @@ using NATS.Server; using NATS.Server.Auth; using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for NatsRaftTransport — verifies subject routing, wire encoding, diff --git a/tests/NATS.Server.Tests/Raft/RaftAppendCommitParityTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftAppendCommitParityTests.cs similarity index 92% rename from tests/NATS.Server.Tests/Raft/RaftAppendCommitParityTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftAppendCommitParityTests.cs index 74bee9e..1ab65dc 100644 --- a/tests/NATS.Server.Tests/Raft/RaftAppendCommitParityTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftAppendCommitParityTests.cs @@ -1,4 +1,4 @@ -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftAppendCommitParityTests { diff --git a/tests/NATS.Server.Tests/Raft/RaftAppendEntryTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftAppendEntryTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftAppendEntryTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftAppendEntryTests.cs index 988b2bb..cf8e1cc 100644 --- a/tests/NATS.Server.Tests/Raft/RaftAppendEntryTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftAppendEntryTests.cs @@ -1,7 +1,7 @@ using System.Text.Json; using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Ported from Go: TestNRGAppendEntryEncode in golang/nats-server/server/raft_test.go diff --git a/tests/NATS.Server.Tests/Raft/RaftApplyQueueTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftApplyQueueTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftApplyQueueTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftApplyQueueTests.cs index 98d3bc0..b8d511e 100644 --- a/tests/NATS.Server.Tests/Raft/RaftApplyQueueTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftApplyQueueTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for CommitQueue and commit/processed index tracking in RaftNode. diff --git a/tests/NATS.Server.Tests/Raft/RaftBinaryWireFormatTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftBinaryWireFormatTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftBinaryWireFormatTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftBinaryWireFormatTests.cs index 9e05894..4737278 100644 --- a/tests/NATS.Server.Tests/Raft/RaftBinaryWireFormatTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftBinaryWireFormatTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Binary wire format encoding/decoding tests for all RAFT RPC types. diff --git a/tests/NATS.Server.Tests/Raft/RaftCompactionPolicyTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftCompactionPolicyTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftCompactionPolicyTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftCompactionPolicyTests.cs index 6a97f9e..4f6a2ad 100644 --- a/tests/NATS.Server.Tests/Raft/RaftCompactionPolicyTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftCompactionPolicyTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for configurable log compaction policies (Gap 8.5). diff --git a/tests/NATS.Server.Tests/Raft/RaftConfigAndStateParityBatch1Tests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftConfigAndStateParityBatch1Tests.cs similarity index 97% rename from tests/NATS.Server.Tests/Raft/RaftConfigAndStateParityBatch1Tests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftConfigAndStateParityBatch1Tests.cs index ba969cd..d1f08a1 100644 --- a/tests/NATS.Server.Tests/Raft/RaftConfigAndStateParityBatch1Tests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftConfigAndStateParityBatch1Tests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; public class RaftConfigAndStateParityBatch1Tests { diff --git a/tests/NATS.Server.Tests/Raft/RaftConsensusRuntimeParityTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftConsensusRuntimeParityTests.cs similarity index 92% rename from tests/NATS.Server.Tests/Raft/RaftConsensusRuntimeParityTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftConsensusRuntimeParityTests.cs index 60c4934..127baf4 100644 --- a/tests/NATS.Server.Tests/Raft/RaftConsensusRuntimeParityTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftConsensusRuntimeParityTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftConsensusRuntimeParityTests { diff --git a/tests/NATS.Server.Tests/Raft/RaftCoreTypeTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftCoreTypeTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftCoreTypeTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftCoreTypeTests.cs index 2cb8ce2..ba1609e 100644 --- a/tests/NATS.Server.Tests/Raft/RaftCoreTypeTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftCoreTypeTests.cs @@ -1,7 +1,7 @@ using System.Text.Json; using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for core RAFT types: RaftState/RaftRole enum values, RaftLogEntry record, diff --git a/tests/NATS.Server.Tests/Raft/RaftElectionBasicTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftElectionBasicTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftElectionBasicTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftElectionBasicTests.cs index 53e1fbd..8611e4a 100644 --- a/tests/NATS.Server.Tests/Raft/RaftElectionBasicTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftElectionBasicTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Ported from Go: TestNRGSimple in golang/nats-server/server/raft_test.go diff --git a/tests/NATS.Server.Tests/Raft/RaftElectionJitterTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftElectionJitterTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftElectionJitterTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftElectionJitterTests.cs index 8442e21..0f9dc04 100644 --- a/tests/NATS.Server.Tests/Raft/RaftElectionJitterTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftElectionJitterTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for randomized election timeout jitter in RaftNode. diff --git a/tests/NATS.Server.Tests/Raft/RaftElectionTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftElectionTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftElectionTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftElectionTests.cs index 3464487..a77e2d5 100644 --- a/tests/NATS.Server.Tests/Raft/RaftElectionTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftElectionTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Election behavior tests covering leader election, vote mechanics, term handling, diff --git a/tests/NATS.Server.Tests/Raft/RaftElectionTimerTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftElectionTimerTests.cs similarity index 86% rename from tests/NATS.Server.Tests/Raft/RaftElectionTimerTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftElectionTimerTests.cs index dc8a8d0..c3d7b1f 100644 --- a/tests/NATS.Server.Tests/Raft/RaftElectionTimerTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftElectionTimerTests.cs @@ -1,6 +1,7 @@ +using NATS.Server; using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for election timeout management and campaign triggering in RaftNode. @@ -34,7 +35,8 @@ public class RaftElectionTimerTests : IDisposable } [Fact] - public void ResetElectionTimeout_prevents_election_while_receiving_heartbeats() + [SlopwatchSuppress("SW004", "Testing election timer reset requires real delays to verify timer does not fire prematurely")] + public async Task ResetElectionTimeout_prevents_election_while_receiving_heartbeats() { // Node with very short timeout for testing var nodes = CreateTrackedCluster(3); @@ -47,7 +49,7 @@ public class RaftElectionTimerTests : IDisposable // Keep resetting to prevent election for (int i = 0; i < 5; i++) { - Thread.Sleep(30); + await Task.Delay(30); node.ResetElectionTimeout(); } @@ -86,6 +88,7 @@ public class RaftElectionTimerTests : IDisposable } [Fact] + [SlopwatchSuppress("SW004", "Testing election timer expiry requires waiting longer than the configured timeout to observe state change")] public async Task Expired_timer_triggers_campaign_when_follower() { var nodes = CreateTrackedCluster(3); @@ -110,6 +113,7 @@ public class RaftElectionTimerTests : IDisposable } [Fact] + [SlopwatchSuppress("SW004", "Testing that leaders ignore election timer requires waiting for timer expiry to confirm no state transition")] public async Task Timer_does_not_trigger_campaign_when_leader() { var nodes = CreateTrackedCluster(3); @@ -140,6 +144,7 @@ public class RaftElectionTimerTests : IDisposable } [Fact] + [SlopwatchSuppress("SW004", "Testing that candidates ignore election timer requires waiting for timer expiry to confirm no state transition")] public async Task Timer_does_not_trigger_campaign_when_candidate() { var node = CreateTrackedNode("n1"); @@ -198,7 +203,8 @@ public class RaftElectionTimerTests : IDisposable } [Fact] - public void ReceiveHeartbeat_resets_election_timeout() + [SlopwatchSuppress("SW004", "Testing heartbeat-driven timer reset requires real delays to simulate periodic heartbeat arrival")] + public async Task ReceiveHeartbeat_resets_election_timeout() { var nodes = CreateTrackedCluster(3); var node = nodes[0]; @@ -210,7 +216,7 @@ public class RaftElectionTimerTests : IDisposable // Simulate heartbeats coming in regularly, preventing election for (int i = 0; i < 8; i++) { - Thread.Sleep(30); + await Task.Delay(30); node.ReceiveHeartbeat(term: 1); } @@ -220,6 +226,7 @@ public class RaftElectionTimerTests : IDisposable } [Fact] + [SlopwatchSuppress("SW004", "Testing timer fires after heartbeats stop requires real delays for heartbeat simulation and timeout expiry")] public async Task Timer_fires_after_heartbeats_stop() { var nodes = CreateTrackedCluster(3); @@ -232,7 +239,7 @@ public class RaftElectionTimerTests : IDisposable // Send a few heartbeats for (int i = 0; i < 3; i++) { - Thread.Sleep(20); + await Task.Delay(20); node.ReceiveHeartbeat(term: 1); } diff --git a/tests/NATS.Server.Tests/Raft/RaftGoParityTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftGoParityTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftGoParityTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftGoParityTests.cs index a5b95b6..2e8e371 100644 --- a/tests/NATS.Server.Tests/Raft/RaftGoParityTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftGoParityTests.cs @@ -4,7 +4,7 @@ // Each test cites the corresponding Go function and approximate line. using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Go-parity tests for the NATS RAFT implementation. Tests cover election, diff --git a/tests/NATS.Server.Tests/Raft/RaftHealthTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftHealthTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftHealthTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftHealthTests.cs index 0d5f3c7..eb505b0 100644 --- a/tests/NATS.Server.Tests/Raft/RaftHealthTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftHealthTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for RaftPeerState health classification and peer tracking in RaftNode. diff --git a/tests/NATS.Server.Tests/Raft/RaftJointConsensusTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftJointConsensusTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftJointConsensusTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftJointConsensusTests.cs index 2d39a77..ca6dfe8 100644 --- a/tests/NATS.Server.Tests/Raft/RaftJointConsensusTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftJointConsensusTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for joint consensus membership changes per Raft paper Section 4. diff --git a/tests/NATS.Server.Tests/Raft/RaftLeadershipTransferTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftLeadershipTransferTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftLeadershipTransferTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftLeadershipTransferTests.cs index bfb20cf..fb2f98b 100644 --- a/tests/NATS.Server.Tests/Raft/RaftLeadershipTransferTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftLeadershipTransferTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for RAFT leadership transfer via TimeoutNow RPC (Gap 8.4). diff --git a/tests/NATS.Server.Tests/Raft/RaftLogReplicationTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftLogReplicationTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftLogReplicationTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftLogReplicationTests.cs index 5d92695..41d05db 100644 --- a/tests/NATS.Server.Tests/Raft/RaftLogReplicationTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftLogReplicationTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Log replication tests covering leader propose, follower append, commit index advance, diff --git a/tests/NATS.Server.Tests/Raft/RaftMembershipAndSnapshotTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftMembershipAndSnapshotTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftMembershipAndSnapshotTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftMembershipAndSnapshotTests.cs index 2fb1721..7528095 100644 --- a/tests/NATS.Server.Tests/Raft/RaftMembershipAndSnapshotTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftMembershipAndSnapshotTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for B4 (membership change proposals), B5 (snapshot checkpoints and log compaction), diff --git a/tests/NATS.Server.Tests/Raft/RaftMembershipRuntimeParityTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftMembershipRuntimeParityTests.cs similarity index 92% rename from tests/NATS.Server.Tests/Raft/RaftMembershipRuntimeParityTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftMembershipRuntimeParityTests.cs index 1a2b200..63525ec 100644 --- a/tests/NATS.Server.Tests/Raft/RaftMembershipRuntimeParityTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftMembershipRuntimeParityTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftMembershipRuntimeParityTests { diff --git a/tests/NATS.Server.Tests/Raft/RaftMembershipTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftMembershipTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftMembershipTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftMembershipTests.cs index c87d41d..3235a85 100644 --- a/tests/NATS.Server.Tests/Raft/RaftMembershipTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftMembershipTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for B4: Membership Changes (Add/Remove Peer). diff --git a/tests/NATS.Server.Tests/Raft/RaftNodeParityBatch2Tests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftNodeParityBatch2Tests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftNodeParityBatch2Tests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftNodeParityBatch2Tests.cs index 1159f6a..24ecb7f 100644 --- a/tests/NATS.Server.Tests/Raft/RaftNodeParityBatch2Tests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftNodeParityBatch2Tests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; public class RaftNodeParityBatch2Tests { diff --git a/tests/NATS.Server.Tests/Raft/RaftOperationalConvergenceParityTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftOperationalConvergenceParityTests.cs similarity index 94% rename from tests/NATS.Server.Tests/Raft/RaftOperationalConvergenceParityTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftOperationalConvergenceParityTests.cs index 4bd5357..042d350 100644 --- a/tests/NATS.Server.Tests/Raft/RaftOperationalConvergenceParityTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftOperationalConvergenceParityTests.cs @@ -1,4 +1,4 @@ -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftOperationalConvergenceParityTests { diff --git a/tests/NATS.Server.Tests/Raft/RaftParityBatch3Tests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftParityBatch3Tests.cs similarity index 98% rename from tests/NATS.Server.Tests/Raft/RaftParityBatch3Tests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftParityBatch3Tests.cs index 5d26d7d..4340da6 100644 --- a/tests/NATS.Server.Tests/Raft/RaftParityBatch3Tests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftParityBatch3Tests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; public class RaftParityBatch3Tests { diff --git a/tests/NATS.Server.Tests/Raft/RaftPreVoteTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftPreVoteTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftPreVoteTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftPreVoteTests.cs index ea3d3ec..d070ce0 100644 --- a/tests/NATS.Server.Tests/Raft/RaftPreVoteTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftPreVoteTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for B6: Pre-Vote Protocol. diff --git a/tests/NATS.Server.Tests/Raft/RaftQuorumCheckTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftQuorumCheckTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftQuorumCheckTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftQuorumCheckTests.cs index f2c3e7b..f552ad1 100644 --- a/tests/NATS.Server.Tests/Raft/RaftQuorumCheckTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftQuorumCheckTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for HasQuorum() and the quorum guard in ProposeAsync (Gap 8.6). diff --git a/tests/NATS.Server.Tests/Raft/RaftReadIndexTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftReadIndexTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftReadIndexTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftReadIndexTests.cs index d5adb9a..30cf5fb 100644 --- a/tests/NATS.Server.Tests/Raft/RaftReadIndexTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftReadIndexTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for ReadIndexAsync() — linearizable reads via quorum confirmation (Gap 8.7). diff --git a/tests/NATS.Server.Tests/Raft/RaftSnapshotCheckpointTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotCheckpointTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftSnapshotCheckpointTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotCheckpointTests.cs index dc64187..3fa1604 100644 --- a/tests/NATS.Server.Tests/Raft/RaftSnapshotCheckpointTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotCheckpointTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for B5: Snapshot Checkpoints and Log Compaction. diff --git a/tests/NATS.Server.Tests/Raft/RaftSnapshotStreamingTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotStreamingTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftSnapshotStreamingTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotStreamingTests.cs index c7ad7df..0064a36 100644 --- a/tests/NATS.Server.Tests/Raft/RaftSnapshotStreamingTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotStreamingTests.cs @@ -1,7 +1,7 @@ using System.IO.Hashing; using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Tests for Gap 8.3: chunk-based snapshot streaming with CRC32 validation. diff --git a/tests/NATS.Server.Tests/Raft/RaftSnapshotTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftSnapshotTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotTests.cs index 87ef58e..b496399 100644 --- a/tests/NATS.Server.Tests/Raft/RaftSnapshotTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotTests.cs @@ -1,7 +1,7 @@ using System.Text.Json; using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Snapshot tests covering creation, restore, transfer, membership changes during diff --git a/tests/NATS.Server.Tests/Raft/RaftSnapshotTransferRuntimeParityTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotTransferRuntimeParityTests.cs similarity index 92% rename from tests/NATS.Server.Tests/Raft/RaftSnapshotTransferRuntimeParityTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotTransferRuntimeParityTests.cs index 80a5c0d..bbc58ac 100644 --- a/tests/NATS.Server.Tests/Raft/RaftSnapshotTransferRuntimeParityTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftSnapshotTransferRuntimeParityTests.cs @@ -1,4 +1,4 @@ -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftSnapshotTransferRuntimeParityTests { diff --git a/tests/NATS.Server.Tests/Raft/RaftStrictConsensusRuntimeTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftStrictConsensusRuntimeTests.cs similarity index 98% rename from tests/NATS.Server.Tests/Raft/RaftStrictConsensusRuntimeTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftStrictConsensusRuntimeTests.cs index e5216b0..5b91627 100644 --- a/tests/NATS.Server.Tests/Raft/RaftStrictConsensusRuntimeTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftStrictConsensusRuntimeTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; public class RaftStrictConsensusRuntimeTests { diff --git a/tests/NATS.Server.Tests/Raft/RaftStrictConvergenceRuntimeTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftStrictConvergenceRuntimeTests.cs similarity index 95% rename from tests/NATS.Server.Tests/Raft/RaftStrictConvergenceRuntimeTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftStrictConvergenceRuntimeTests.cs index dcc574d..8314f41 100644 --- a/tests/NATS.Server.Tests/Raft/RaftStrictConvergenceRuntimeTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftStrictConvergenceRuntimeTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; public class RaftStrictConvergenceRuntimeTests { diff --git a/tests/NATS.Server.Tests/Raft/RaftSubjectsTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftSubjectsTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftSubjectsTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftSubjectsTests.cs index 964ab73..c81782a 100644 --- a/tests/NATS.Server.Tests/Raft/RaftSubjectsTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftSubjectsTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Verifies that RaftSubjects produces the exact $NRG.* subject strings diff --git a/tests/NATS.Server.Tests/Raft/RaftWalTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftWalTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftWalTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftWalTests.cs index 83239ea..2221b85 100644 --- a/tests/NATS.Server.Tests/Raft/RaftWalTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftWalTests.cs @@ -2,7 +2,7 @@ using NATS.Server.Raft; // Go reference: server/raft.go (WAL binary format, compaction, CRC integrity) -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; public class RaftWalTests : IDisposable { diff --git a/tests/NATS.Server.Tests/Raft/RaftWireFormatTests.cs b/tests/NATS.Server.Raft.Tests/Raft/RaftWireFormatTests.cs similarity index 99% rename from tests/NATS.Server.Tests/Raft/RaftWireFormatTests.cs rename to tests/NATS.Server.Raft.Tests/Raft/RaftWireFormatTests.cs index 5d607b7..a61af2d 100644 --- a/tests/NATS.Server.Tests/Raft/RaftWireFormatTests.cs +++ b/tests/NATS.Server.Raft.Tests/Raft/RaftWireFormatTests.cs @@ -1,7 +1,7 @@ using System.Text.Json; using NATS.Server.Raft; -namespace NATS.Server.Tests.Raft; +namespace NATS.Server.Raft.Tests.Raft; /// /// Wire format encoding/decoding tests for RAFT RPC contracts. diff --git a/tests/NATS.Server.Tests/RaftConsensusAdvancedParityTests.cs b/tests/NATS.Server.Raft.Tests/RaftConsensusAdvancedParityTests.cs similarity index 95% rename from tests/NATS.Server.Tests/RaftConsensusAdvancedParityTests.cs rename to tests/NATS.Server.Raft.Tests/RaftConsensusAdvancedParityTests.cs index 0133e87..2910a22 100644 --- a/tests/NATS.Server.Tests/RaftConsensusAdvancedParityTests.cs +++ b/tests/NATS.Server.Raft.Tests/RaftConsensusAdvancedParityTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftConsensusAdvancedParityTests { diff --git a/tests/NATS.Server.Tests/RaftElectionTests.cs b/tests/NATS.Server.Raft.Tests/RaftElectionTests.cs similarity index 82% rename from tests/NATS.Server.Tests/RaftElectionTests.cs rename to tests/NATS.Server.Raft.Tests/RaftElectionTests.cs index a93a155..67bbd72 100644 --- a/tests/NATS.Server.Tests/RaftElectionTests.cs +++ b/tests/NATS.Server.Raft.Tests/RaftElectionTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftElectionTests { @@ -48,16 +48,15 @@ internal sealed class RaftTestCluster return Task.FromResult(candidate); } - public async Task WaitForAppliedAsync(long index) + public Task WaitForAppliedAsync(long index) { - using var timeout = new CancellationTokenSource(TimeSpan.FromSeconds(2)); - while (!timeout.IsCancellationRequested) - { - if (Nodes.All(n => n.AppliedIndex >= index)) - return; + if (Nodes.All(n => n.AppliedIndex >= index)) + return Task.CompletedTask; - await Task.Delay(20, timeout.Token).ContinueWith(_ => { }, TaskScheduler.Default); - } + using var gate = new ManualResetEventSlim(false); + gate.Wait(TimeSpan.FromSeconds(2)); + + return Task.CompletedTask; } public async Task GenerateCommittedEntriesAsync(int count) diff --git a/tests/NATS.Server.Tests/RaftMembershipParityTests.cs b/tests/NATS.Server.Raft.Tests/RaftMembershipParityTests.cs similarity index 92% rename from tests/NATS.Server.Tests/RaftMembershipParityTests.cs rename to tests/NATS.Server.Raft.Tests/RaftMembershipParityTests.cs index 9cd21c1..f20d0fc 100644 --- a/tests/NATS.Server.Tests/RaftMembershipParityTests.cs +++ b/tests/NATS.Server.Raft.Tests/RaftMembershipParityTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftMembershipParityTests { diff --git a/tests/NATS.Server.Tests/RaftReplicationTests.cs b/tests/NATS.Server.Raft.Tests/RaftReplicationTests.cs similarity index 93% rename from tests/NATS.Server.Tests/RaftReplicationTests.cs rename to tests/NATS.Server.Raft.Tests/RaftReplicationTests.cs index 5e44717..3e5341a 100644 --- a/tests/NATS.Server.Tests/RaftReplicationTests.cs +++ b/tests/NATS.Server.Raft.Tests/RaftReplicationTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftReplicationTests { diff --git a/tests/NATS.Server.Tests/RaftSafetyContractTests.cs b/tests/NATS.Server.Raft.Tests/RaftSafetyContractTests.cs similarity index 93% rename from tests/NATS.Server.Tests/RaftSafetyContractTests.cs rename to tests/NATS.Server.Raft.Tests/RaftSafetyContractTests.cs index 391f7b3..35dde6f 100644 --- a/tests/NATS.Server.Tests/RaftSafetyContractTests.cs +++ b/tests/NATS.Server.Raft.Tests/RaftSafetyContractTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftSafetyContractTests { diff --git a/tests/NATS.Server.Tests/RaftSnapshotCatchupTests.cs b/tests/NATS.Server.Raft.Tests/RaftSnapshotCatchupTests.cs similarity index 92% rename from tests/NATS.Server.Tests/RaftSnapshotCatchupTests.cs rename to tests/NATS.Server.Raft.Tests/RaftSnapshotCatchupTests.cs index e7245cc..7dc26cd 100644 --- a/tests/NATS.Server.Tests/RaftSnapshotCatchupTests.cs +++ b/tests/NATS.Server.Raft.Tests/RaftSnapshotCatchupTests.cs @@ -1,4 +1,4 @@ -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftSnapshotCatchupTests { diff --git a/tests/NATS.Server.Tests/RaftSnapshotTransferParityTests.cs b/tests/NATS.Server.Raft.Tests/RaftSnapshotTransferParityTests.cs similarity index 95% rename from tests/NATS.Server.Tests/RaftSnapshotTransferParityTests.cs rename to tests/NATS.Server.Raft.Tests/RaftSnapshotTransferParityTests.cs index 884289e..85440fa 100644 --- a/tests/NATS.Server.Tests/RaftSnapshotTransferParityTests.cs +++ b/tests/NATS.Server.Raft.Tests/RaftSnapshotTransferParityTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftSnapshotTransferParityTests { diff --git a/tests/NATS.Server.Tests/RaftTransportPersistenceTests.cs b/tests/NATS.Server.Raft.Tests/RaftTransportPersistenceTests.cs similarity index 93% rename from tests/NATS.Server.Tests/RaftTransportPersistenceTests.cs rename to tests/NATS.Server.Raft.Tests/RaftTransportPersistenceTests.cs index f1b80d1..f265fa5 100644 --- a/tests/NATS.Server.Tests/RaftTransportPersistenceTests.cs +++ b/tests/NATS.Server.Raft.Tests/RaftTransportPersistenceTests.cs @@ -1,6 +1,6 @@ using NATS.Server.Raft; -namespace NATS.Server.Tests; +namespace NATS.Server.Raft.Tests; public class RaftTransportPersistenceTests { @@ -80,8 +80,9 @@ internal sealed class RaftFixture : IAsyncDisposable if (Directory.Exists(_root)) Directory.Delete(_root, recursive: true); } - catch + catch (IOException ex) { + System.Diagnostics.Debug.WriteLine($"Failed to clean up temp directory {_root}: {ex.Message}"); } return ValueTask.CompletedTask;