aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2026-03-14 10:35:57 +0100
committerDan Engelbrecht <[email protected]>2026-03-14 14:19:07 +0100
commit4d74fe44abf1c38aff9b956bc7538afd3fe259c0 (patch)
tree35d2f3e6be2b25beb3bcc417564db3b7929955d6
parentfix block assembly (diff)
downloadzen-4d74fe44abf1c38aff9b956bc7538afd3fe259c0.tar.xz
zen-4d74fe44abf1c38aff9b956bc7538afd3fe259c0.zip
fix test
-rw-r--r--src/zenremotestore/projectstore/remoteprojectstore.cpp28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/zenremotestore/projectstore/remoteprojectstore.cpp b/src/zenremotestore/projectstore/remoteprojectstore.cpp
index 1e3550dab..123e8d3be 100644
--- a/src/zenremotestore/projectstore/remoteprojectstore.cpp
+++ b/src/zenremotestore/projectstore/remoteprojectstore.cpp
@@ -6480,9 +6480,13 @@ TEST_CASE("project.store.export.max_chunks_per_block")
TEST_CASE("project.store.export.max_data_per_block")
{
- // When a single op has chunk-sized attachments larger than MaxBlockSize, the block
- // assembly loop fills the per-block limit and breaks triggering logic for where
- // to put the attachments
+ // Validates that ComposeBlocks respects UsableBlockSize = MaxBlockSize - MaxHeaderSize.
+ // With MaxBlockSize=7168 and MaxChunksPerBlock=32:
+ // MaxHeaderSize = GetHeaderSizeForNoneEncoder()(64) + MeasureVarUInt(32)(1)
+ // + MeasureVarUInt(7168)(2) * 32 = 129
+ // UsableBlockSize = 7168 - 129 = 7039
+ // Oids[1] small attachments total 7041 compressed bytes, which is > UsableBlockSize (7039)
+ // but <= MaxBlockSize (7168), specifically exercising the MaxHeaderSize boundary.
using namespace projectstore_testutils;
ScopedTemporaryDirectory TempDir;
@@ -6508,21 +6512,17 @@ TEST_CASE("project.store.export.max_data_per_block")
Oplog->AppendNewOplogEntry(
CreateBulkDataOplogPackage(Oids[0], CreateAttachments(std::initializer_list<size_t>{2u * 1024u}, OodleCompressionLevel::None)));
- Oplog->AppendNewOplogEntry(CreateBulkDataOplogPackage(
- Oids[1],
- CreateAttachments(
- std::initializer_list<size_t>{3u * 1024u, 2u * 1024u, 2u * 1024u, 1u * 1024u - 76, 1u * 1024u - 76, 1u * 1024u - 76},
- OodleCompressionLevel::None)));
+ Oplog->AppendNewOplogEntry(
+ CreateBulkDataOplogPackage(Oids[1],
+ CreateAttachments(std::initializer_list<size_t>{3u * 1024u, 2u * 1024u, 2u * 1024u, 875u, 875u, 875u},
+ OodleCompressionLevel::None)));
- Oplog->AppendNewOplogEntry(CreateBulkDataOplogPackage(
- Oids[2],
- CreateAttachments(std::initializer_list<size_t>{1u * 1024u - 76, 1u * 1024u - 76}, OodleCompressionLevel::None)));
+ Oplog->AppendNewOplogEntry(
+ CreateBulkDataOplogPackage(Oids[2], CreateAttachments(std::initializer_list<size_t>{875u, 875u}, OodleCompressionLevel::None)));
Oplog->AppendNewOplogEntry(CreateBulkDataOplogPackage(
Oids[3],
- CreateAttachments(std::initializer_list<
- size_t>{1u * 1024u - 76, 1u * 1024u - 76, 1u * 1024u - 76, 1u * 1024u - 76, 1u * 1024u - 76, 1u * 1024u - 76},
- OodleCompressionLevel::None)));
+ CreateAttachments(std::initializer_list<size_t>{875u, 875u, 875u, 875u, 875u, 875u}, OodleCompressionLevel::None)));
Oplog->AppendNewOplogEntry(
CreateBulkDataOplogPackage(Oids[4], CreateAttachments(std::initializer_list<size_t>{1676, 1678}, OodleCompressionLevel::None)));