Skip to content

Commit b40660c

Browse files
committed
test(runtime): cover request ownership scopes
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: c483dd99-07c0-4a20-8bf7-04613353a821
1 parent 261368c commit b40660c

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

test/Orleans.Runtime.Tests/ClientConnectionTests/GatewayInFlightRequestTrackerTests.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,43 @@ public void RemovingOldDestinationDoesNotStealSameIdRetry()
150150
Assert.Equal(0, tracker.Count);
151151
}
152152

153+
[Fact]
154+
public void RemovingOldGenerationDoesNotStealSameEndpointRetry()
155+
{
156+
var oldGeneration = SiloAddress.New(new IPEndPoint(Silo1.Endpoint.Address, Silo1.Endpoint.Port), 1);
157+
var newGeneration = SiloAddress.New(new IPEndPoint(Silo1.Endpoint.Address, Silo1.Endpoint.Port), 2);
158+
var tracker = CreateTracker();
159+
var original = CreateMessage(1, Message.Directions.Request, oldGeneration);
160+
var retry = CreateMessage(1, Message.Directions.Request, newGeneration);
161+
Assert.True(tracker.Track(original));
162+
Assert.True(tracker.Track(retry));
163+
164+
Assert.False(tracker.TryRemove(original.Id, oldGeneration, out _));
165+
Assert.Equal(1, tracker.Count);
166+
Assert.True(tracker.TryRemove(retry.Id, newGeneration, out var removed));
167+
Assert.Equal(newGeneration, removed.TargetSilo);
168+
Assert.Equal(0, tracker.Count);
169+
}
170+
171+
[Fact]
172+
public void SameCorrelationIdIsIsolatedByClientTracker()
173+
{
174+
var firstClient = CreateTracker();
175+
var secondClient = CreateTracker();
176+
var firstRequest = CreateMessage(1, Message.Directions.Request, Silo1);
177+
var secondRequest = CreateMessage(1, Message.Directions.Request, Silo2);
178+
Assert.True(firstClient.Track(firstRequest));
179+
Assert.True(secondClient.Track(secondRequest));
180+
181+
Assert.True(firstClient.TryRemove(firstRequest.Id, Silo1, out _));
182+
183+
Assert.Equal(0, firstClient.Count);
184+
Assert.Equal(1, secondClient.Count);
185+
Assert.True(secondClient.TryRemove(secondRequest.Id, Silo2, out var removed));
186+
Assert.Equal(Silo2, removed.TargetSilo);
187+
Assert.Equal(0, secondClient.Count);
188+
}
189+
153190
[Fact]
154191
public void ClearRemovesAllRequestsOnDisconnect()
155192
{

0 commit comments

Comments
 (0)