aboutsummaryrefslogtreecommitdiffstats
path: root/text/harfbuzz-suite.known
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-28 15:58:32 +0100
committereunhhu <[email protected]>2026-09-28 15:58:32 +0100
commitddbbc39cc65946f59298eab546c906ad3dea6841 (patch)
tree78b67b249b2428a553bef5c1f17019967e7970da /text/harfbuzz-suite.known
parent0b554f2ea62a921e1c8a43ffb24ad75f428af2d6 (diff)
downloadvega-ddbbc39cc65946f59298eab546c906ad3dea6841.tar.gz
vega-ddbbc39cc65946f59298eab546c906ad3dea6841.zip
Hold shaping to HarfBuzz's own test suite, case by case
text/harfbuzz-suite.py reads a HarfBuzz release's test/shape/data (in-house, text-rendering-tests, aots: fonts and inputs, many added when a font or a shaper once went wrong) and shapes every case both ways with the new vega-symbols shape-cases: it compiles a font's section for the scripts its cases need (guessed as HarfBuzz guesses them), then compares each run with HarfBuzz's, glyph for glyph and unit for unit. The oracle is HarfBuzz run live, not the recorded outputs, which depend on options Vega has no counterpart for (font functions, sizes, output formats). Cases asking for what Vega does not do (user features, variations, languages, context, cluster levels, buffer flags, vertical text) and fonts of other systems are left out and counted by why. text/harfbuzz-suite.known lists what differs today, and why: AAT, the character map built from what HarfBuzz lists rather than how it maps (format 13, symbol maps into the private use area), variation selectors, Arabic fallback with shared glyphs, kern format 2, Zawgyi, and one run without a plan. Any other difference fails the run; a listed case that agrees is named. make check-harfbuzz HARFBUZZ_SRC=... runs it (make check too, when given): 5929 cases, 5199 compared, 1355 the same.
Diffstat (limited to 'text/harfbuzz-suite.known')
-rw-r--r--text/harfbuzz-suite.known40
1 files changed, 40 insertions, 0 deletions
diff --git a/text/harfbuzz-suite.known b/text/harfbuzz-suite.known
new file mode 100644
index 0000000..a0436bb
--- /dev/null
+++ b/text/harfbuzz-suite.known
@@ -0,0 +1,40 @@
+# Cases of HarfBuzz's test suite (text/harfbuzz-suite.py) known to shape
+# otherwise in Vega: a case ID or a pattern of them, then why.
+
+# AAT (morx, kerx, trak): Apple's shaping tables; Vega shapes with
+# OpenType's alone and refuses a font that has them.
+text-rendering-tests/MORX-* # AAT
+in-house/aat-* # AAT
+
+# The character map made from what HarfBuzz lists (hb_face_collect_unicodes),
+# not from how it maps: a format 13 map it lists cut short, a symbol map
+# whose Latin and Arabic it maps to the private use area.
+in-house/emoji-clusters.tests:* # cmap format 13
+text-rendering-tests/CMAP-3.tests:1 # cmap
+text-rendering-tests/CMAP-3.tests:11 # cmap
+in-house/arabic-fallback-shaping.tests:7 # symbol cmap, Arabic PUA
+in-house/arabic-fallback-shaping.tests:8 # symbol cmap, Arabic PUA
+in-house/arabic-fallback-shaping.tests:9 # symbol cmap, Arabic PUA
+in-house/arabic-fallback-shaping.tests:10 # symbol cmap, Arabic PUA
+in-house/arabic-fallback-shaping.tests:11 # symbol cmap, Arabic PUA
+
+# Variation selectors (cmap format 14).
+text-rendering-tests/CMAP-1.tests:2 # cmap format 14
+text-rendering-tests/CMAP-1.tests:3 # cmap format 14
+text-rendering-tests/CMAP-2.tests:2 # cmap format 14
+
+# Arabic fallback shaping where two characters share a glyph (refused).
+in-house/arabic-fallback-shaping.tests:2
+in-house/arabic-fallback-shaping.tests:3
+in-house/arabic-fallback-shaping.tests:4
+in-house/arabic-fallback-shaping.tests:5
+in-house/arabic-fallback-shaping.tests:6
+
+# A kern table of class pairs (format 2; refused).
+in-house/kern-format2.tests:*
+
+# Myanmar as Zawgyi encodes it (Qaag; refused).
+in-house/myanmar-zawgyi.tests:*
+
+# No plan for the run.
+text-rendering-tests/GSUB-3.tests:1