test/subset/data


Log

Author Commit Date CI Message
Garret Rieger 77a81554 2023-05-04T23:01:56 [subset] Add some basic tests for a provided glyph map.
Behdad Esfahbod 1d31da91 2023-04-25T15:34:06 Merge pull request #4205 from harfbuzz/gvar-optimize Gvar optimize
Garret Rieger e41f3171 2023-04-25T20:54:27 [subset] Update expectation files for full_instance tests.
Garret Rieger 2175f5d0 2023-04-24T21:13:18 [subset] Fix inefficient ItemVariationStore subsetting w/ retain_gids. ItemVariationStore is relying on the assumption that the inner_map is populated for all output glyphs, this is not true for subsetting operations with retain gids enabled. Fixes fuzzer timeout: https://oss-fuzz.com/testcase-detail/4575222591520768.
Garret Rieger 3db6baa2 2023-04-17T20:01:17 [subset] add test for lig glyph fix.
Garret Rieger 14b9d8d5 2023-04-14T20:44:15 [subset] add --no-layout-closure flag. Disables layout glyph closure. Fixes #4192.
Qunxin Liu 96ed2072 2023-04-04T10:33:58 [instancer] update bound metrics for CFF2 instancing
Qunxin Liu c1acfe99 2023-03-22T19:06:58 [instancer] bug fix in TupleVariationData get_size () We need to iterate TupleVariationHeader when calculating the total size
Qunxin Liu ab87d7d2 2023-03-20T12:24:22 [instance] add tests for colrv1 full instancing
Garret Rieger a84cae42 2023-03-15T02:39:57 [subset] Don't add invalid gids (-1) to the glyphset when loading glyph map from the accelerator.
Qunxin Liu 204e155a 2023-03-14T10:25:31 [subset] Add tests for collecting name_ids from STAT and FeatureParams
Qunxin Liu a975ec48 2023-02-14T13:26:59 [instancer] apply cvar deltas
Qunxin Liu 605aed05 2023-02-24T10:17:32 [instancer] bug fix in post table applying mvar deltas
Garret Rieger ddd0f7f4 2023-02-22T20:23:34 [subset] Add a test for CFF2 instancing. Adds option to disable the fonttools comparison check in the test. This is needed since CFF2 instancing is not yet supported in fonttools.
Qunxin Liu af1e605b 2023-02-10T11:08:05 [instancer] bug fix It's possible that length of all_points equals to 4 for non-empty glyphs: a composite glyph which contains only one child glyph that is empty.
Qunxin Liu 61559568 2023-01-27T11:05:13 [subset/COLR] add tests for copying varStore
Qunxin Liu 5e868703 2023-01-25T12:27:16 [instancer] compute head/maxp values using only non-empty glyphs
Qunxin Liu 73e6f6cc 2023-01-24T16:14:11 [instancer] enable the missing test
Qunxin Liu 27f72f0d 2023-01-24T16:08:32 [instancer] avoid double free for compiled glyph bytes also increase the HB_GLYF_MAX_POINTS limit to 20000 cause the test file has a .notdef glyph which is a composite glyph and has 10176 points after get_points() call
Qunxin Liu 89d33255 2023-01-20T14:15:19 [instancer] add tests
Garret Rieger ea1ee0d4 2023-01-14T00:23:53 [instance] drop and don't collect lookups from feature variations when fully instancing. This previously incorrectly collected lookups that could be reached via feature variations that are dropped and not activated by the current instance position.
Garret Rieger c324d999 2023-01-12T18:15:07 [instancing] Add tests for MVAR instancing.
Garret Rieger 9fbe52b8 2022-12-12T20:24:24 [subset] enable instancing tests by default.
Garret Rieger 64e8707e 2022-11-24T18:24:50 [subset] don't use hb repacker when generating test files from fonttools.
Garret Rieger ff3cac0c 2022-11-23T23:50:49 [subset] Fix unecessary trailing 0 bytes left by ContextFormat2 pruning. Uneeded rules where beind removed from the count by the bytes for them was being left in the font.
Garret Rieger 2822b589 2022-11-03T19:49:49 [subset] Include instancing tests in distribution. Automatically enable them when the experimental api is enabled.
Qunxin Liu 8a552483 2022-10-27T09:43:07 [instance] update OS2/.usWeightClass and .usWidthClass when no-prune-unicode-ranges option is enabled
Garret Rieger db22bfb3 2022-10-17T18:37:07 [subset] Remove Franklin from the tests which is not an open source font.
Qunxin Liu d5fc4a73 2022-09-14T14:43:20 [instance] add tests for featureVariations Also updated the script that is used to generate tests.With fonttools, we now do instancing first and then subsetting. With different order of subsetting and instancing operations on the same VF file, fonttools seems to generate 2 different font files with different glyph set. 1. do subsetting and then instancing: this seems result in a larger glyph set in the font file. Lookups are collected from both retained features and all possible alternate featurevariations, this leads to a larger glyph set after glyph closurei. And instancer doesn't redo glyph closure, it does lookups pruning only. 2. do instancing and then subsetting: lookups are collected from features that are replaced already and possible alternate feature variations
Qunxin Liu 47094490 2022-08-31T12:01:32 [instance] add benchmarks for instancing
Qunxin Liu 88c02e00 2022-08-26T08:34:12 [instance] add tests for full instancing Also update previous tests with GDEF/GPOS tables
Qunxin Liu f887ee0c 2022-07-27T13:18:21 [instance] update post.italicAngle Add tests for instancing glyf/hmtx
Qunxin Liu f1a69ff1 2022-06-30T16:22:15 [instance] update scripts for testing instancing
Garret Rieger d6f579e9 2022-06-30T22:22:03 [subset] add tests that exercise script filtering.
Garret Rieger 858570b1 2022-06-01T18:08:09 [subset] add some additional 32bit var store cases. Test the path where the 32 bit delta is not included.
Garret Rieger 209d6aa2 2022-06-01T18:02:03 [subset] Update make files for 32bit_var_store test.
Garret Rieger 9c41bfe1 2022-06-01T17:53:14 [subset] Add subset test of font with 32 bit delta in a var store.
Garret Rieger 52d59bf1 2022-05-10T19:40:37 [perf] Make subset benchmark data driven.
Garret Rieger b051f3fa 2022-05-05T23:27:34 [subset] Fix cpal subsetting when there are partial palette overlaps. The existing code doesn't correctly handle the case where palettes partially overlap in the color record array. This changes the subsetting to only share entries in the color record array when palettes have the same first color index. Partially overlapping palettes will be converted to disjoint segments in the color record array. Updates one of the color tests to use multiple palettes. Also fixes fuzzer: https://oss-fuzz.com/testcase-detail/5568200165687296.
Qunxin Liu 7cb002cb 2022-03-14T11:40:35 [subset] bug fix in prune_langsys we should not cache visited langsys cause 2 different Record<Langsys> could have different Tag while pointing to the same Langsys, a langsys is redundant in Record<Langsys> A does not mean it's redundant in Record B. Same thing for visited_script. Also adding the number of features in the LangSys's feature list to the visited langsys count so it's more accurate. Plus some improvement in langsys compare()
Garret Rieger bc899650 2022-01-28T13:54:10 [subset] Fix for issue #3397. cur_intersected_glyphs gets modified during recursion leading to incorrect filtering of sub tables in some cases. So don't use cur_intersected_glyphs. Instead just add an additional entry onto the parent_active_glyphs () stack. Additionaly expands NotoNastaliqUrdu tests to include coverage of the issue from #3397.
Qunxin Liu 706014f6 2021-12-01T20:20:12 [subset] (Chain)ContextSubst glyph_closure fix - When pos_glyphs is empty, use current full glyphs set as input for subsequent recursive closure process - Also increase max_lookup_visit_count to 35000 cause a real font file hit previous limit 20000 and some lookups are dropped unexpectedly
Qunxin Liu 51655a07 2021-12-05T19:27:57 [subset] COLR : only include glyphs after COLR closure
Qunxin Liu 74b46b29 2021-12-02T19:50:16 [subset] MATH: don't serialize coverage table when iterator is empty when iterator is empty, just set coverage offset to 0. serialize() in coverage will at lease write out a 16-bit format header.
Garret Rieger 9121ed0c 2021-11-30T13:45:22 [subset] Improve sharing of Ligature subtables. Ligature subtables use virtual links to enforce an ordering constraint between the subtables and the coverage table. Unfortunately this has the sideeffect of prevent the subtables from being shared by another Ligature with a different coverage table since object equality compares all links real and virtual. This change makes virtual links stored separately from real links and updates the equality check to only check real links. If an object is de-duped any virtual links it has are merged into the object that replaces it.
Garret Rieger 95329081 2021-11-26T16:18:42 [subset] further optimize cmap4 packing.
Garret Rieger 59914382 2021-11-26T14:19:39 [subset] Don't pad glyphs when using long loca.
Garret Rieger d9660fd5 2021-11-25T18:15:35 [subset] Make cmap4 packing more optimal. The current CMAP4 implementation uses whatever the current codepoint ranges are and then encodes them as indivudal glyph ids or as a delta if possible. However, it's often possible to save bytes by splitting up existing ranges and encoding parts of them using deltas where the cost of splitting the range is less than encoding each glyph individual.
Qunxin Liu 903a6bae 2021-11-15T19:58:33 [subset] layout_features filtering fix we should not use get_size (), which returns length * item_size
Qunxin Liu 84dc4e85 2021-11-08T09:36:31 [subset] avoid writing out duplicate extra glyph names in post table Add check for possible duplicate with other name index
Qunxin Liu ca418cac 2021-11-17T16:42:08 [subset] keep features that have FeatureParams and the tag is "size"
Qunxin Liu e88fc41e 2021-11-18T16:53:36 [subset] inputSequence could be empty, change the sanity check
Qunxin Liu 540f19b6 2021-10-29T17:11:53 [subset] fix bug in (Chain)ContextFormat2 Only keep rulesets for glyphs class numbers that survived in coverage
Garret Rieger e260eeb9 2021-11-02T15:31:32 [subset] Update test goldens for gdef.glyphset.
Qunxin Liu 60e20364 2021-11-02T15:02:36 [subset] use glyphset_gsub instead of glyphset for GDEF
Garret Rieger e39647c0 2021-11-02T15:25:05 [subset] update subset goldens to fix tests.
Qunxin Liu 364b6b39 2021-10-31T14:38:20 [subset] Don't assume FeatureList is sorted Though the spec said FeatureRecords are sorted alphabetically by feature tag, there're font files with unsorted FeatureList. And harfbuzz is not able to subset these files correctly because we use binary search in finding featureRecords when collecting lookups. Also find_duplicate_features needs to be updated to handle this.
Garret Rieger 49c93924 2021-09-24T09:28:10 [subset] During LigatureSubstFormat1 subsetting always place Coverage last. In Windows 7 on Chrome if the coverage table comes before any of the LigatureSet or Ligature subtables the font won't load. This changes the packing order to always place the Coverage table last. Virtual links are used to ensure the repacker maintains the desired ordering. Coincidentally fontTools also does the same thing (https://github.com/fonttools/fonttools/blob/a3f988fbf621142d7d9b3e68a69725b88f358869/Lib/fontTools/ttLib/tables/otTables.py#L1137) to reduce overflows during packing.
Behdad Esfahbod 42626369 2021-10-23T13:18:22 Merge pull request #3248 from googlefonts/connected_components [repacker] Keep connected subgraphs in the same space.
Qunxin Liu 8c583db9 2021-10-02T20:32:30 [subset] COLRv1: update subset() method for new strutc ClipList and VarIdxMap Also fix issues in struct PaintTransform definition
Garret Rieger 79937d24 2021-10-05T12:53:21 [repacker] Add repacker test that requires space splitting.
Garret Rieger d5beb96e 2021-09-09T10:40:08 [repacker] add repacker isolation test on real font.
Qunxin Liu ca7b9dae 2021-09-20T14:42:51 [subset] subset MATH table
Garret Rieger c2cc566c 2021-09-22T14:15:55 [subset] Fix subset_offset_array adding unused space to serializer. ArrayOf.serialize_append allocates space for the new item, but ArrayOf.pop() does not recover the allocated space. So in the case where the revert path was entered the extra space added by serialize_append gets left in the serialization buffer. This moves the snapshot to before ArrayOf.serialize_append is called so that revert cleans up the buffer extend.
Qunxin Liu 8c5c8174 2021-09-12T20:16:30 [subset] fix find_duplicate_features We should check each feature against all other features with the same tag for duplicates.
Qunxin Liu 37379f8f 2021-09-02T11:54:37 [subset] fox for (Chain)ContextFormat3: subset lookupRecord skip copying a lookupRecord if lookup referenced in the lookupRecord is not retained after subset
Qunxin Liu 34e0b28f 2021-08-18T20:46:06 [subset] make glyph-names option match fonttools behavior Don't encode psNames that are contained in standard glyph names set
Garret Rieger 44802c8e 2021-08-12T11:11:51 [subset] use layout-features=* for layout subsetting tests w/ synthetic test fonts.
Garret Rieger e39c3bde 2021-08-10T11:41:55 [subset] fix bug in parsing glyf flags. the bytes of the flag stream were being treated as signed integers instead of unsigned as specified in the spec.
Garret Rieger c2ee1fdd 2021-08-04T16:42:49 [subset] remove unsed table_entry struct.
Garret Rieger dea0fe57 2021-08-04T16:36:20 [subset] discard extra copies of a table in face builder. Fixes #2361. Stores tables in the builder in a hashmap so you end up with at most one copy of each table. Table serialization order is now based on tag sort order instead of order of insertion into the builder.
Garret Rieger 2c024dc3 2021-08-04T11:38:38 [subset] prune redundant cmap12 subtables. If the post subset cmap12 table is equivalent to another cmap subtable don't include the 12 table in the final subset. Matches change https://github.com/fonttools/fonttools/pull/2146 from fontTools.
Khaled Hosny 7ccc52b0 2021-08-04T03:57:18 [test] Compare sha256 hash before TTX dumps Most of time the files are identical, so instead of comparing the TTX dump we can check sha256 hashes of the files first and if they match, we don’t have to check the TTX dumps at all, making the subset tests orders of magnitude faster. time meson test --suite=subset down from: real 0m19.418s user 0m38.171s sys 0m3.587s to: real 0m3.102s user 0m8.622s sys 0m1.701s The expected files have been replaced by hb-subset output so they are bit-identical where FontTools output might not. The generate-expected-outputs.py now compares the hb-subset output with fontttols subset and errors of they don’t match.
Khaled Hosny 770fbd5a 2021-08-04T00:07:23 Revert "[test] Speed-up subset tests by saving TTX dump" This reverts commit 278f44dcee34cea25403e42e06668f0afe2328c1.
Behdad Esfahbod 7cbcdaf6 2021-07-30T11:26:46 Whitespace
Khaled Hosny 278f44dc 2021-07-29T23:43:56 [test] Speed-up subset tests by saving TTX dump Speed-up subset tests by saving TTX dump of expected output instead of generating it each time the tests are run. Cuts down meson test --suite=subset on my system from: real 0m38.977s user 1m12.024s sys 0m10.547s to: real 0m22.291s user 0m44.548s sys 0m9.221s Part of https://github.com/harfbuzz/harfbuzz/issues/3089
Garret Rieger acbd8b27 2021-07-27T14:31:18 [subset] temporarily disable COLRv1 subsetting. Currently COLRv1 spec is being changed so the subsetting implementation is out of sync. Disable subsetting by failing sanitization for COLRv1 tables and disable all colrv1 tests.
Qunxin Liu 71b5509c 2021-07-20T20:05:35 [subset] support option --glyph-names
Garret Rieger deee24fb 2021-07-14T13:46:36 [subset] Add missing FontName op code in top dict parsing. Fix for #3058
Qunxin Liu eee7b459 2021-06-24T10:17:46 [subset] add option --no-prune-unicode-ranges
Garret Rieger d2397d91 2021-06-18T18:12:19 [subset] Add additional colrv1 subsetting tests that has a glyph with components.
Qunxin Liu d07f789a 2021-06-09T15:36:40 [subset] support option "--notdef-outline"
Qunxin Liu cb5a6b5a 2021-05-19T17:33:46 [subset] support option --layout-features
Qunxin Liu f739e1dc 2021-05-11T11:44:32 [subset] subset both CPAL and COLRv1
Garret Rieger a08900b7 2021-05-04T16:48:41 [subset] fix failing colrv0 subsetting when font has composite glyphs. Composite glyph collection was happening along side colrv0 glyph collection which meant it was possible to miss grabbing the component glyphs for a glyph added by colrv0.
Garret Rieger b07b97d5 2021-03-29T10:39:38 [subset] Add more Noto Nastaliq test cases.
Garret Rieger 92757f68 2021-04-22T15:18:35 [subset] Don't drop anchor device tables when dropping hints. These may contain variation data. Update subseting expected files to match latest version of fontTools.
Garret Rieger 6fddc2bb 2021-04-01T15:34:17 [subset] subset layout tables (G*) by default.
Garret Rieger 4ec18c85 2021-04-02T15:33:54 [subset] add subsetting tests with drop hints and layout subsetting enabled.
Garret Rieger 596f4258 2021-04-02T12:41:09 [subset] copy Lookup::markFilteringSet when subseting.
Garret Rieger c35d7863 2021-04-01T14:32:38 [subset] never drop the 'pref' feature. Never ever drop feature 'pref', even if it's empty. Harfbuzz uses it to choose the shaper for Khmer.
Garret Rieger 85b07287 2021-03-25T12:17:18 Add full variable font subsetting test.
Garret Rieger b10741ca 2021-03-25T19:14:48 [subset] when closing glyphs in context lookups don't use a current glyph set if a lookup is already applied.
Garret Rieger 2773d057 2020-11-04T11:11:16 [subset] Add a test case using NotoNastaliqUrdu.
Qunxin Liu 95230e29 2021-03-18T17:41:25 [subset] support subsetting GSUB8
Garret Rieger 01044099 2021-02-16T11:38:14 Fix repack_tests for distcheck.
Garret Rieger b8b8c58b 2020-11-10T11:56:09 [subset] add tests that check for successful repacking of a real font file.
Qunxin Liu 56ca4357 2021-01-28T15:21:26 [subset] fix for collect_features and remove_redundant_lamngsys previously remove_redundant_sys () is missing in harfbuzz, after redundant langsys removal, some features are removed as well in prune_features() in fonttools. This change is trying to get the same result between harfbuzz and fonttools.
Garret Rieger 69d772e5 2021-03-17T14:11:16 [subset] Fixed test gsub5 test files.
Qunxin Liu 0e1c0fa4 2021-01-12T10:17:14 [subset] optimize glyph closure method: step 5 add testcase and some fixes