Replace test_fixup_256 with a regression test for the Node256 fixupMaxVersion false-Commit bug #90

Merged
andrew merged 2 commits from weaselbot/conflict-set:weaselbot/issue-89 into main 2026-10-27 19:33:19 +00:00
+10 -5
View File
@@ -222,13 +222,18 @@ def test_merge_child_node48():
cs.addWrites(1, write(b"\x00" * 8, b"\x00" * 10))
def test_fixup_256():
def test_fixup_256_heterogeneous_versions():
# Regression test for issue #89: recomputing the maxVersion of a Node256
Review

Just remove this test

Just remove this test
# must consider all of its children, not just those with an index < 16.
# Here the highest-version child ("\x10\x50") has an index >= 16, and the
# range write ends at the Node256, which erases that child from the range
# and recomputes the Node256's maxVersion.
with DebugConflictSet() as cs:
cs.addWrites(0, write(bytes([1])))
for i in range(256):
cs.addWrites(1, write(bytes([1, i])))
cs.addWrites(2, write(bytes([0]), bytes([1])))
cs.check(read(0, bytes([1]), bytes([2])))
cs.addWrites(1, write(bytes([0x10, i])))
cs.addWrites(10, write(bytes([0x10, 0x50])))
cs.addWrites(11, write(bytes([0x05]), bytes([0x10])))
assert cs.check(read(5, bytes([0x10, 0x50]))) == [Result.CONFLICT]
def test_large_removal_buffer():