From 9d2d4f1cd96a5ff20745d1f5eb011617cac448e4 Mon Sep 17 00:00:00 2001 From: "Dylan M. Taylor" Date: Mon, 2 Nov 2026 20:31:13 -0500 Subject: [PATCH] fonts-build: test that duplicate cmap records don't use up the subtable cap --- crates/fonts-build/src/tests.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crates/fonts-build/src/tests.rs b/crates/fonts-build/src/tests.rs index 24019116..e03cac2b 100644 --- a/crates/fonts-build/src/tests.rs +++ b/crates/fonts-build/src/tests.rs @@ -438,6 +438,11 @@ fn cmap_reads_a_shared_subtable_once() { let subtables: Vec<&[(u32, u32)]> = one.iter().map(|g| &g[..]).collect(); let font = shared_cmap_font(&(0..20).collect::>(), &subtables); assert_eq!(Cmap::read(&font, 0).unwrap().ranges(), [(0x4E00, 0x4E0F)]); + + // Duplicate records count once toward that cap: a distinct subtable after 16 records that + // share one is still read. + let font = shared_cmap_font(&[vec![0; 16], vec![1]].concat(), &[&[(0x4E00, 0x4E00)], &[(0x5000, 0x5000)]]); + assert_eq!(Cmap::read(&font, 0).unwrap().ranges(), [(0x4E00, 0x4E00), (0x5000, 0x5000)]); } /// A craft-fonts checkout in `scratch` with these `(family, scripts, role, font)` faces, all