Commit graph

2334 commits

Author SHA1 Message Date
Garret Rieger
0660a4d408 [subset] fix fuzzer found heap use after free in BASE subsetting. 2024-05-13 13:39:20 -07:00
David Corbett
0db136b1b0 [subset-cff] Shorten output of encode_num_tp 2024-05-12 09:04:02 -07:00
Qunxin Liu
7975c9cabd [instancer] bug fix for COLRv1, add missing mapping to VarIdx::NO_VARIATION 2024-05-09 08:34:14 -07:00
Garret Rieger
b74a7ecc93 Fix IUP differences accoss platforms.
- Slightly increase the tolerance to account for differences in floating point math across platforms.
- The specific issue is a fused multiply add (d = d1 + (x - x1) * scale; in hb-subset-instancer-iup.cc)
- Also fix more implicit double conversion warnings.
2024-05-08 10:23:31 -06:00
Qunxin Liu
a5c9c82692 rename expected files from *.retain-all-codepoint.* to *.all.*
This is to fix file name too long error
tar: harfbuzz-8.4.0/test/subset/data/expected/sync_vmetrics/playwrite_mm.subset.default.retain-all-codepoint.SPED=25,YEXT=520,wght=100-400,slnt=18.iup_optimize.ttf: file name is too long (cannot be split); not dumped
tar: Exiting with failure status due to previous errors
2024-05-06 13:22:49 -07:00
Qunxin Liu
3b3c154bd1 add back missing tests that were disabled when wrapped by experimental 2024-05-06 12:56:23 -07:00
Qunxin Liu
6c8985724e fix bots 2024-05-06 10:42:03 -07:00
Qunxin Liu
f614a7d309 [instancer] add/update tests for COLRv1 instancing 2024-05-06 10:41:07 -07:00
Qunxin Liu
ebcdadbf54 [instancer] add tests for instantiating BASE table 2024-05-03 17:22:16 -05:00
Behdad Esfahbod
4d2380f56d
Merge pull request #4693 from harfbuzz/promote-vf-api
[instancer] Promote partial instancing API out of experimental.
2024-05-03 14:05:56 -05:00
Garret Rieger
f145ab2f1e Disable empty_region_vardata test when running on 32bit machines. 2024-05-03 18:31:18 +00:00
Behdad Esfahbod
ba1f194a1d [gsubgpos] Reduce stack use in recursion 2024-05-02 16:37:51 -05:00
Garret Rieger
4cf606f674 [instancer] Promote partial instancing api out of experimental. 2024-05-02 21:22:18 +00:00
Garret Rieger
2cfa55056c [instancer] Switch to doubles for delta calculations.
FontTools uses double's internally so match FontTool's precision so we get the same results more often for floating point calculations.
2024-04-15 16:06:19 -06:00
Garret Rieger
c84acc8e07 [subset] Fix fuzzer found memory leak.
Fixes https://oss-fuzz.com/testcase-detail/6159925345583104.
2024-04-09 08:41:32 -05:00
Garret Rieger
6e87481731 [subset] add virtual links to keep the gdef varstore last. 2024-03-28 23:00:54 +00:00
Garret Rieger
7145607149 [subset] place the gdef var store at the end of the GDEF table.
It appears that some font processors assume it is the last sub table.
2024-03-28 23:00:54 +00:00
Garret Rieger
990fb14d78 [subset] Disable fonttools comparison in a few tests where rounding diffs show up.
Context: https://github.com/harfbuzz/harfbuzz/issues/4642
2024-03-28 17:00:12 -06:00
Garret Rieger
11f5dec75f [subset] Move post apply mvar test intance position to avoid rounding diff. 2024-03-28 17:00:12 -06:00
Garret Rieger
975bd39b15 [subset] Match hb rounding to fonttools for avg char width.
Update Muli and Roboto input test fonts to recalc class values. FontTools recalcs class values during instancing while harfbuzz does not (like the ft subsetter).
2024-03-28 17:00:12 -06:00
Garret Rieger
15a05b2432 [subset] Update generate-expected-outputs to drop BASE.
This matches the behaviour of the test runner.
2024-03-28 17:00:12 -06:00
Garret Rieger
ec46c4c2e6 [subset] Update subset test suite to match some changes made to fonttools.
FontTools has added pruning functionality for code pages which we don't yet have in harfbuzz. Update our test runner to disable that for now. Also match fonttools and always recalc usFirst/LastCharIndex even if no prune unicode ranges is set.
2024-03-28 17:00:12 -06:00
Ozkan Sezer
dbecddb41c tests, hb-test.h: define g_assert_false && g_assert_nonnull for old glib
Reference issue: https://github.com/harfbuzz/harfbuzz/issues/4577
Reference issue: https://github.com/harfbuzz/harfbuzz/issues/4624
2024-03-21 15:54:53 +02:00
Qunxin Liu
cfbb6a6872
[subset] support BASE table subsetting (#4618)
* [subset] support BASE table

* [subset] add tests for BASE table subsetting
2024-03-14 18:33:34 -06:00
Lie Yan
2da79f70a1 fix(test-ot-math.c): remove redundant lines 2024-03-09 09:34:55 -07:00
Christer Sandberg
1ab8822b41 Fixed some errors in STAT table implementation 2024-02-10 07:08:18 -07:00
Qunxin Liu
84771374e8 [instancer] add tests for iup delta optimization 2024-01-26 15:51:49 -08:00
Garret Rieger
ef1f5c4e0c [subset] Re-use common Coverage subsetting function in PairPosFormat2.
Was using an identical but less efficient version. Fixes fuzzer test case: https://oss-fuzz.com/testcase-detail/6151390002806784
2024-01-08 15:34:45 -07:00
Lie Yan
c17d67467f
[ot-math] Fix a bug in MathKern::get_value()
Fixes https://github.com/harfbuzz/harfbuzz/issues/4542
2024-01-07 16:10:10 +02:00
Qunxin Liu
df735213a8
[instancer-solver] port solver fix (#4519)
* [instancer-solver] port solver fix

from https://github.com/fonttools/fonttools/pull/3374
2023-12-06 10:50:29 -07:00
Qunxin Liu
f1ac36ba7f [instancer] update hhea vertical metrics with OS/2 ones 2023-11-15 13:25:43 -07:00
Qunxin Liu
2d001a0adc [subset] OTS doesn't allow ligature attachment offset to be 0 2023-11-08 14:10:06 -07:00
Garret Rieger
9701b0024e [subset] Always place CFF1/2 char strings at the end of the packed table.
Makes the behaviour from HB_SUBSET_FLAGS_IFTB_REQUIREMENTS the default.
2023-11-06 16:49:09 -07:00
Garret Rieger
c6884377ec [subset] Add HB_SUBSET_FLAGS_IFTB_REQUIREMENTS flag.
When enabled the output subset conforms to the requirements for a base font to be patched by IFTB patches. IFTB is a proposed incremental font transfer patch. This new flag is set as experimental. Currently, setting this flag causes the output subset to also use long offsets for outline data in loca/glyf, gvar, CFF, and CFF2.

This change is a version of 3ae2fe2084 rebased onto head w/ tests added.
2023-11-06 16:49:09 -07:00
Qunxin Liu
d550e16acc [instancer] Recalc avgcharwidth after instancing 2023-11-06 13:12:04 -07:00
Qunxin Liu
6baf791e6f [instancer] add tests 2023-11-03 11:06:07 -07:00
Qunxin Liu
31b5b2b1d7 [instancer] add tests for valueformat 2023-11-03 10:27:33 -07:00
Qunxin Liu
413af0a9b2 [instancer] When partial instancing, subset LigCaretList after VarStore instantiation 2023-11-03 10:24:56 -06:00
Qunxin Liu
f6f35f73bc [instancer] add tests for feature variations partial instancing 2023-10-30 12:31:49 -06:00
Qunxin Liu
e595fe75cc fix bots
partial instancing tests are wrapped by experimenal_api, do not enable
them in Makefile
2023-10-19 09:38:38 -07:00
Qunxin Liu
ce46698929 [subset] update tests
to reflect changes in GDEF.MarkGlyphSetsDef and Lookup.MarkFilteringSet
2023-10-18 15:49:57 -07:00
Qunxin Liu
bde6fb83ea add missing file for test empty_region_vardata 2023-10-18 10:21:02 -07:00
Qunxin Liu
57dac23d79 [instancer] add tests
Also update tests to gei rid of no-tables-with-item-variations profile
2023-10-18 08:07:26 -06:00
Garret Rieger
bbd53fcfa4 Remove glyph_map test that uses retain gids.
We no longer allow the use of glyph map + retain gids (see: https://github.com/harfbuzz/harfbuzz/blob/main/src/hb-subset-plan.cc#L817). Also add the test to the meson file so it will be run by default.
2023-10-10 17:59:05 -06:00
Behdad Esfahbod
fc563bb437
Merge pull request #4421 from googlefonts/GDEF_GPOS
[instancer] support GDEF/GPOS tables
2023-10-05 11:07:17 -06:00
Khaled Hosny
6e06a193b3 Add some tests for hb_feature_[from|to]_string() 2023-09-29 18:22:44 -06:00
Garret Rieger
333946b00e [subset] Fix fuzzer timeout.
Fixes https://oss-fuzz.com/testcase-detail/5458896606855168. Limit iteration over coverage in MarkLigPosFormat1 subsetting to the number of glyphs in the liga array.
2023-09-28 14:22:51 -06:00
Qunxin Liu
9ceb800ac2 fuzzer fix https://oss-fuzz.com/testcase-detail/5842152921628672
Access TupleVariationData through blob, because we don't sanitize
var_data
2023-09-28 12:51:44 -06:00
Qunxin Liu
2415d5f239 [instancer] update tests to include GDEF/GPOS tables 2023-09-27 13:33:09 -07:00
Qunxin Liu
ef4ff1d6a4 [instancer] make varstore items sorting method match fonttool's
Also update expected tests
2023-09-20 11:45:00 -07:00