fix(comments): correct canary justification and expand failure guidance in padding tests

This commit is contained in:
2026-07-27 22:59:08 -04:00
parent 3790677097
commit 247d1034b0
2 changed files with 18 additions and 17 deletions
+9 -9
View File
@@ -604,15 +604,15 @@ target_link_libraries(app_version_tests PRIVATE app_version)
add_test(NAME app_version_tests COMMAND app_version_tests)
# Anti-normalization padding canary (see tests/test_app_version_padding.cpp for the full
# rationale). The live-version assertions in app_version_tests can only DETECT a
# "reconstruct the string from numeric components" regression when the live version
# happens to be zero-padded — at an unpadded version (e.g. 0.9.8) the reconstruction
# coincides with the verbatim string and the check silently goes vacuous. So: run the
# SAME version_generated.h.in template through configure_file a second time with a
# SYNTHETIC padded version, and compile the SAME src/app_version.cpp against that header
# (include-dir substitution — the canary target never sees the live generated/ dir).
# The "0.9.01" here is a permanent test fixture, NOT the shipped version (see also the
# source-of-truth comment at the top of this file for the live-version invariant); it
# rationale). The live-version assertions in app_version_tests are version-shape-blind:
# relative checks (e.g. appVersion() == stampVersion()) hold whether the string was
# threaded verbatim or reconstructed from numeric components, at any version, padded or
# not — the live suite cannot detect a reconstruct-from-components regression at all.
# So: run the SAME version_generated.h.in template through configure_file a second time
# with a SYNTHETIC padded version, and compile the SAME src/app_version.cpp against that
# header (include-dir substitution — the canary target never sees the live generated/
# dir). The "0.9.01" here is a permanent test fixture, NOT the shipped version (see also
# the source-of-truth comment at the top of this file for the live-version invariant); it
# must match the literals in test_app_version_padding.cpp and must never be bumped on
# release.
#