From c08d9829471d5c217317c814b8d44a5933d1fdff Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Wed, 30 Sep 2026 07:32:18 +0200 Subject: [PATCH] Vectors: the malformed current-layout catalogs carry one entry and only its records The older-layout reader refused the second current-layout entry on its own, so an unconditional fallback still refused the vector. With one entry, only a store not in the older layout is refused for its malformed slot, and the fallback's condition is pinned. Co-Authored-By: Claude Sonnet 5.5 --- .../current-catalog-bad-canonical.msgpack | Bin 1154 -> 481 bytes .../current-catalog-bad-compat.msgpack | Bin 1579 -> 906 bytes .../current-catalog-bad-members.msgpack | Bin 1599 -> 926 bytes tests/vectors/document-variants-c0/generate.py | 4 +++- 4 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/vectors/document-variants-c0/current-catalog-bad-canonical.msgpack b/tests/vectors/document-variants-c0/current-catalog-bad-canonical.msgpack index 69d3d9df76cbce84f1c3691114f44642f6a279dc..cd6bd37ff6dfce0de762b0f2d639539739c24b74 100644 GIT binary patch delta 23 fcmZqTe8@aOglXc`$(78W6XPoxCvASo#K8yvW-SOe literal 1154 zcmcIkO>Pr06h=Zwhy$<=vxGMCzdf^K#f}B3*dP}6^K&}VWKzvIZ6ee|Bn>JD03q?S zK_IcLA})~=a1ER^L`9*i!qU&*d_V8K@!1y`RS_&4Vz-UM2D`^}_ImlGJ+w@!!Whqk z55(q7TL|1y#dATt2?lgP#T@5UNx=ZMrdDYL00ZXF1j0}!}#zNJzL zixxal7QM>};}VtgMsuYFP$HDJL^@$Tc*T5jPgB?&12}Mw(%lI4Fyd~6RrP8FBP9a? zURq*>lmP^{Tm$1&cxDvUPP^Q5g@Pk$49t6Kz)_Ln1mtr0^HtWSu?*}}JHV{ScABBmj>C|inofEUI_wve>U0+X diff --git a/tests/vectors/document-variants-c0/current-catalog-bad-compat.msgpack b/tests/vectors/document-variants-c0/current-catalog-bad-compat.msgpack index 4270b6b5cc6e737b9867ecedc2dca45b328d3f1b..e00f8bf4586acfcb911d76902e833520fd6d2c60 100644 GIT binary patch delta 24 gcmZ3@)5ShPglXdR$@5q|H^wV5F;3b%iG_m^0BBzat^fc4 delta 523 zcmb`Ey-LGi6ozdnxHyS8$09D$@cn;Db`im?T}8g1lNxAKNzz(}(%nIfDbx#avN#9| zj-_}L^#;5IH?gg&W2Xbp@ILR$x!Ig--R+d`$Hi^=4hR(1VSPU%2*^6 zSnVT1IS6e%NrhwvBPOImTr*{j6~t9B8 z>h|!T_h=#ZI46b~%N0_L^UyG=s5FFPW{D@T)KdGF3SbmKLP)H|p3#_jR);|O{44)- zDoa`Zv%k8%lPN|b(%rjt!GITH)pfyY+8(- zq6G?6+>2T(VNsO7hoi}|U(iXSW)!cj$9#_>{0BBbSsQ>@~ delta 473 zcmb`Dy-LGS9K~%c=-?zGjzPsm2>1IY9R(55t>Pre{rIP5Xd>yY*2!0Bj94cpH*pXZ z+$_PDs4w7Kh^?+}IvqH}`JHoaW?tv|3*N<`-0`*_4uy9<7;SZq6yc&FB(k84MM8nq z5h9d>&^DA*NM3e+Z!Onq%k@3zxpKGGE;qdSgTIa|uBUD%f%na`j)Qj4ba|4ts%lsb%f~BkwzhwH tH)+tw@}!ld|8{DbO)sqwL>OB~sDaSiV)1mEC(c3YYlyQP{PER3`2ujro8tfg diff --git a/tests/vectors/document-variants-c0/generate.py b/tests/vectors/document-variants-c0/generate.py index 4e332f16..1ff1ebae 100644 --- a/tests/vectors/document-variants-c0/generate.py +++ b/tests/vectors/document-variants-c0/generate.py @@ -61,4 +61,6 @@ for name, entry in ( ("current-catalog-bad-members", current[:6] + [5]), ("current-catalog-bad-compat", current[:5] + [[7]] + current[6:]), ): - write(name + ".msgpack", [header, [entry] + catalog[1:], records]) + # One catalog entry and the records that use it: the older-layout reader takes an entry's slot 5 for a string, so a second + # current-layout entry would make it refuse for that reason, not for the malformed slot under test. + write(name + ".msgpack", [header, [entry], [record for record in records if record[1] == current[0]]])