Merge fix/669-event-continuation: event HistoryRead continuation points + open-ended reads (#669)

This commit is contained in:
Joseph Doherty
2026-10-11 08:37:39 -04:00
7 changed files with 719 additions and 20 deletions
@@ -40,6 +40,22 @@ public abstract class RawReadConformance : ConformanceBase
Values(await B.CreateDataSource().ReadRawAsync("A", At(-1), At(100), uint.MaxValue, Ct)).Length.ShouldBe(5);
}
/// <summary>
/// #669: the node manager now pages an open-ended read (Part 11: only a StartTime / only an EndTime) with
/// <c>DateTime.MaxValue</c> / <c>DateTime.MinValue</c> as the missing bound, so every backend must bind both
/// extremes without overflow, ±infinity or a cast error.
/// </summary>
[Fact]
public async Task Extreme_bounds_MaxValue_and_MinValue_are_safe()
{
await ConformanceData.SeedAAsync(B);
var max = new DateTime(DateTime.MaxValue.Ticks, DateTimeKind.Utc);
var min = new DateTime(0, DateTimeKind.Utc);
Values(await B.CreateDataSource().ReadRawAsync("A", At(10), max, 2, Ct)).ShouldBe([20d, 30d]);
Values(await B.CreateDataSource().ReadRawAsync("A", At(100), min, 2, Ct)).ShouldBe([50d, 40d]);
Values(await B.CreateDataSource().ReadRawAsync("A", At(10), max, 0, Ct)).ShouldBe([20d, 30d, 40d, 50d]);
}
[Fact]
public async Task Reverse_read_is_descending_over_end_exclusive_start_inclusive()
{