Skip to content

Commit d9dbbb0

Browse files
Merge pull request #402 from MPCoreDeveloper/diag/compression-reopen-missing-id
test: report exact missing row ids in growing-table reopen survival test
2 parents b144680 + fb23c1d commit d9dbbb0

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

tests/SharpCoreDB.Tests/Storage/SingleFileCompressionTests.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ namespace SharpCoreDB.Tests.Storage;
77
using System;
88
using System.IO;
99
using System.IO.Compression;
10+
using System.Linq;
1011
using System.Security.Cryptography;
1112
using System.Text;
1213
using System.Threading;
@@ -473,7 +474,13 @@ public void DatabaseFactory_Compression_GrowingTable_ReopenSelectShouldSurvive()
473474
// Reopen and SELECT must survive with the data intact.
474475
var db2 = factory.CreateWithOptions(_testDbPath, "unused", options);
475476
var results = db2.ExecuteQuery("SELECT * FROM t ORDER BY id");
476-
Assert.Equal(500, results.Count);
477+
var actualIds = results.Select(r => Convert.ToInt64(r["id"])).OrderBy(id => id).ToList();
478+
var expectedIds = Enumerable.Range(0, 500).Select(i => (long)i).ToList();
479+
var missing = expectedIds.Except(actualIds).ToList();
480+
var extra = actualIds.Except(expectedIds).ToList();
481+
Assert.True(
482+
missing.Count == 0 && extra.Count == 0,
483+
$"Row set mismatch after reopen: missing={missing.Count} [{string.Join(",", missing.Take(10))}], extra={extra.Count} [{string.Join(",", extra.Take(10))}].");
477484
Assert.Equal("user42", results[42]["name"]?.ToString());
478485
Assert.Equal("user499", results[499]["name"]?.ToString());
479486
DisposeDatabase(db2);

0 commit comments

Comments
 (0)