Skip to content

Commit 83c3ed2

Browse files
committed
fix(test): LAST_SHIPPED stays 17 until 7.16 actually ships
My own U5 update asserted STORAGE_VERSION_LAST_SHIPPED == 20, which is wrong in the specific way storage.h warns about two lines above the constant: "Bump this baseline when a release ships, in the release commit, never to make a build compile: lowering it is the exact edit that turns every upgrade in the field into a silent wipe." LAST_SHIPPED is the high-water mark of what is IN THE FIELD, not of what sits in the tree. 7.15 shipped V17; 7.16 has shipped nothing. Asserting 20 would have forced the next person to raise the baseline to make the test pass -- the edit the gate exists to prevent, arrived at by way of the gate itself. The compile-time assert only requires STORAGE_VERSION >= LAST_SHIPPED, and 20 >= 17 holds, so the raise was never needed. It moves in the release commit that tags 7.16.
1 parent fa4898d commit 83c3ed2

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

tests/test_storage_version_gate.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,18 @@ def test_active_flash_format_is_v20(self):
442442
"is a deliberate release act (docs/StorageVersionGate.md): confirm "
443443
"the reader chain, the anti-rollback story, and the release notes, "
444444
"then update this test." % self.version)
445-
self.assertEqual(20, self.last_shipped)
445+
# LAST_SHIPPED stays at 17 until 7.16 actually SHIPS in a signed
446+
# release. It is the high-water mark of what is IN THE FIELD, not of
447+
# what is in the tree -- and storage.h says two lines above the
448+
# constant that raising it to make a build compile "is the exact edit
449+
# that turns every upgrade in the field into a silent wipe". The
450+
# compile-time assert only needs STORAGE_VERSION >= LAST_SHIPPED, and
451+
# 20 >= 17 holds, so nothing requires the raise.
452+
self.assertEqual(
453+
17, self.last_shipped,
454+
"STORAGE_VERSION_LAST_SHIPPED is %d. It tracks the last SIGNED "
455+
"release (7.15 = V17) and moves in the release commit that tags "
456+
"7.16, not when a format lands in the tree." % self.last_shipped)
446457

447458
def test_burned_versions_have_no_reader(self):
448459
"""18 and 19 must never be parsed by 7.16.

0 commit comments

Comments
 (0)