Skip to content

verify CalculateNeeded against the full char_table - #267

Open
ravi0800 wants to merge 1 commit into
google:mainfrom
ravi0800:verify-calculateneeded-full-table
Open

ravi0800 wants to merge 1 commit into
google:mainfrom
ravi0800:verify-calculateneeded-full-table

Conversation

@ravi0800

Copy link
Copy Markdown

VerifyCalculateNeeded() is meant to prove CalculateNeeded() agrees with char_table, but its loop runs for (int i = 0; i < 1; i++) so only tag 0 is ever checked. The other 255 entries go unverified, which leaves the static_assert inert for every tag except the first. CalculateNeeded() is what RefillTag() uses as needed, and needed bounds the memcpy that stitches tag bytes into the fixed-size scratch_[kMaximumTagLength] buffer, so this is the check that keeps the two representations from drifting apart.

Iterate the whole table (i < 256). The check stays at compile time and the current table passes cleanly; verified by building with -DCMAKE_CXX_STANDARD=17 (so the C++14-gated static_assert is actually evaluated) with the full test suite green. Confirmed the guard was inert by corrupting one char_table entry: the build still passed under the old bound and fails under the new one.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant