test


Log

Author Commit Date CI Message
Garret Rieger 067f90a8 2021-12-14T16:24:38 [subset] Fix for fuzzer timeout. Fixes https://oss-fuzz.com/testcase-detail/5549945449480192 In prune_langsys: move LangSys visited check up before any work is done for a LangSys. In this particular case the compare() method is responsible for the majority of the time spent and wasn't being guarded with a visisted check.
Garret Rieger c4573c2e 2021-12-14T14:49:15 [repacker] don't infinite loop if visited or roots is in error. Fixes https://oss-fuzz.com/testcase-detail/5205038086094848
Behdad Esfahbod 23159084 2021-12-10T15:00:16 [morx] Reverse graphemese, not whole buffer Fixes https://github.com/harfbuzz/harfbuzz/issues/3314 Supersedes https://github.com/harfbuzz/harfbuzz/pull/3315
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.
Khaled Hosny 6c81cd95 2021-12-01T19:29:34 [tests] Add tests for platform shapers Fixes https://github.com/harfbuzz/harfbuzz/issues/3115
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.
Behdad Esfahbod 720ab088 2021-11-25T11:49:16 [util] Add --single-par Use it in aots tests Fixes https://github.com/harfbuzz/harfbuzz/issues/3129 Related https://github.com/harfbuzz/harfbuzz/issues/3298
Qunxin Liu 903a6bae 2021-11-15T19:58:33 [subset] layout_features filtering fix we should not use get_size (), which returns length * item_size
Khaled Hosny 69d8f27c 2021-11-20T17:09:15 [meson] Require 0.55.0 We implicitly require it for building ragel subproject. This new version requirement should satisfied in both Fedora 33 and Debian bullseye, and not be too cutting edge for us.
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
Garret Rieger ace98cc6 2021-11-08T15:47:56 [subset] Only sanitize recursion depth in COLR.
Garret Rieger f51b48c8 2021-11-02T16:16:52 [subset] Fix fuzzer found memory leak. Happens because an insert into a map with an invalid key reports successful, but this causes the set being inserted to be lost.
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 0a7563a5 2021-11-01T14:56:14 [subset] fuzzer fix: https://oss-fuzz.com/testcase?key=6254792024915968 Make sure input is valid, each gid has a corresponding offset value in the map
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.
Matthias Clasen 8dc86d07 2021-11-01T19:57:11 Add a test font scale rounding behavior This test verifies the fix for https://github.com/harfbuzz/harfbuzz/issues/3274
Qunxin Liu 85deddb1 2021-10-27T14:36:02 [subset] fuzzer fix: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40406
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
David Corbett 8eaee2f8 2021-10-07T20:10:31 [USE] Only skip default ignorables within CCSes
Garret Rieger 79937d24 2021-10-05T12:53:21 [repacker] Add repacker test that requires space splitting.
Khaled Hosny bb57df7a 2021-10-05T15:40:30 [test] Add test for https://github.com/harfbuzz/harfbuzz/issues/2757#issuecomment-933531978
Khaled Hosny 16245503 2021-10-05T15:35:17 [test] Add test for https://github.com/harfbuzz/harfbuzz/issues/3244
Qunxin Liu 794b00db 2021-09-27T17:21:16 [subset] fuzzer fix: https://oss-fuzz.com/testcase-detail/6616166961905664
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.
Garret Rieger 74f96d9d 2021-09-17T13:46:07 [repacker] fix heap use after free in repacker. Don't store a reference to the link in overflow records as the link object may be freed if the sorted graph vector is resized.
Garret Rieger d700646c 2021-09-16T11:23:09 [subset] In preperation for 3.0.0 release remove legacy subsetting api methods.
David Corbett a0101a31 2021-09-14T18:38:50 [Unicode 14] Add tests
Khaled Hosny 4d9b7de0 2021-09-11T00:43:43 [style] Prepare for release
Behdad Esfahbod 201cbe3c 2021-09-09T11:09:46 [style] Rename HB_STYLE_TAG_SLANT to HB_STYLE_TAG_SLANT_ANGLE
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
Khaled Hosny 9fddbb3e 2021-09-03T17:56:08 [test] Rename test and split into smaller subtests
Khaled Hosny c6bb719e 2021-09-03T16:14:02 [test] Add tests for Arabic decomposition Test that both NFC and NFD input produces identical results for fonts that used composed fonts internally (Amiri here) and fonts that decompose internally (Noto Nastaliq Urdu here) and that for the former composed forms are used. See https://github.com/harfbuzz/harfbuzz/issues/3179
Khaled Hosny a9dc4fbe 2021-09-03T16:20:06 [test] Make shape test names match file names No idea why test names are underscorified but it it just makes calling meson test testname harder than it should being not able to copy file name directly.
Garret Rieger 102666da 2021-08-27T10:31:37 [subset] add test for hb_subset_input_set (...).
Behdad Esfahbod 99356ea5 2021-08-25T17:19:06 Merge pull request #3150 from harfbuzz/item-context-tests [test] Add tests for item context
Behdad Esfahbod 955f86a0 2021-08-24T11:17:10 [test-set] Fix compiler warnings
Garret Rieger f2441a4b 2021-08-24T15:53:32 [subset] Remove retain all layout features flag. Instead use inverted sets to handle requesting all features. Modifies feature collection in subset plan to intersect the set of requested features against the features in the font. This prevents iterating a fully filled feature tag set.
Garret Rieger f84daccb 2021-08-24T14:20:26 [set] include null pool sets in the permutations tested by inverted_operations.
Garret Rieger fb07f8f8 2021-08-23T15:33:57 During subset input creation check for set alloc failures and fail if encountered.
Khaled Hosny 33bfe9ed 2021-08-16T17:00:57 [test] Add tests for item context Test pre-context and post-context in Arabic shaper, as well as interaction of pre-context with BOT flag.
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
Behdad Esfahbod 829b0f33 2021-08-20T01:28:15 Merge pull request #3154 from harfbuzz/set-invert Resurrect hb_set_invert()
Garret Rieger 915550ab 2021-08-19T17:48:38 [set] remove inverted test TODO.
Garret Rieger c4ed5829 2021-08-19T17:47:41 [set] add test for inverted set operations. This test checks all possible set configurations against each operation type.
Garret Rieger 325fd6dd 2021-08-19T15:54:31 [set] add tests for inverted set equality.
Garret Rieger 287032af 2021-08-19T15:45:28 [set] update set test TODO list.
Garret Rieger 5c003d80 2021-08-19T15:41:12 [set] add tests for inverted previous iteration.
Garret Rieger 3f2cc582 2021-08-19T15:00:07 [set] add basic and iteration set inverion tests.
Garret Rieger dc31920b 2021-08-18T14:20:14 Don't serialize null offsets in CPAL. Fixes https://oss-fuzz.com/testcase-detail/5443213648330752
Garret Rieger cb05c363 2021-08-13T15:19:20 [subset] add some basic tests for the legacy subset methods.
Garret Rieger 44802c8e 2021-08-12T11:11:51 [subset] use layout-features=* for layout subsetting tests w/ synthetic test fonts.
Garret Rieger c0f3af91 2021-08-11T16:20:05 [subset] speed up add_gid_and_children and adjust op limit. Fix for fuzzer timeout: https://oss-fuzz.com/testcase-detail/5001604901240832. - Operation limit is per glyph, so 100,000 should still be far more than needed. - Switches from for(...) to while(...) loop for iteration. for(...) calls it.end() which in this case triggers a complete iteration. - Cache CompositeGlyph size in the iterator to avoid needing to recalculate it.
Behdad Esfahbod 23282c9c 2021-08-11T22:49:47 [util/hb-subset] Support ranges in --unicodes / --unicodes-file Fixes https://github.com/harfbuzz/harfbuzz/issues/3109
Behdad Esfahbod 58bfe407 2021-08-11T19:48:28 [util] Move hb-subset away from main-font-text
Behdad Esfahbod 3147e081 2021-08-11T19:33:00 Merge branch 'main' into post-parse
Khaled Hosny 43722cc9 2021-08-12T02:32:29 [test] Add some real reverse sub tests
Behdad Esfahbod e0d7060f 2021-08-11T18:43:21 [test] Rename shaping/ to shape/
Khaled Hosny f1226988 2021-08-12T01:47:35 [test] Improve generate-expected-outputs.py diff output
Khaled Hosny 6ac6a2b2 2021-08-12T00:04:32 [test] hb_ot_layout_language_get_feature_tags()
Khaled Hosny e9b743b2 2021-08-11T23:51:12 [test] hb_ot_layout_script_get_language_tags()
Khaled Hosny bf438b81 2021-08-11T23:23:51 [test] hb_ot_layout_table_get_feature_tags()
Khaled Hosny 2f88ea5a 2021-08-11T23:12:00 [test] hb_ot_layout_table_find_script()
Khaled Hosny f60caad7 2021-08-11T22:54:30 [test] hb_ot_layout_table_get_script_tags()
Garret Rieger c08f1b89 2021-08-10T12:29:32 [map] fix incorrect population count in hash map. If the same key was set twice the population was being incorrectly incremented.
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.
Behdad Esfahbod f3acb977 2021-08-10T11:05:40 [test/shaping;util] Use ';' instead of ':' to separate test fields Accept that in --batch mode. Also in batch mode don't send the 0th arg. Related discussion: https://github.com/harfbuzz/harfbuzz/pull/3102
Behdad Esfahbod b83fd3a5 2021-08-10T02:21:05 [util] Refactor batch-processing code into batch.hh
Garret Rieger 8c0c217b 2021-08-06T10:45:38 [subset] fail reference blob in face builder if allocation for table sorting fails. Fixes https://oss-fuzz.com/testcase-detail/5041767803125760
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 84946e4d 2021-08-05T00:05:26 [test] Suggest updating the expectation if ttx matches https://github.com/harfbuzz/harfbuzz/issues/3089#issuecomment-892208892
Behdad Esfahbod 5086e105 2021-07-29T17:03:55 [test] Add failing fuzzer test case From https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36236 https://oss-fuzz.com/testcase-detail/5061207689134080
Khaled Hosny f698fe5a 2021-08-04T12:08:18 [test] Always fail subset tests if hashes don’t match Regardless of the pre sentience or absence of fonttools.
Khaled Hosny 9f544e50 2021-08-04T04:20:14 [test] Don’t skip subset tests early Check for FontTools only when the checksums are mismatching.
Khaled Hosny b0841533 2021-08-04T04:12:31 [test] Remove subset tests from the slow suite
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.
Khaled Hosny 2cc9ed2b 2021-08-02T22:00:11 [test] More lookup_collect_glyphs() tests
Khaled Hosny 06640374 2021-08-02T19:52:59 [test] More lookup_collect_glyphs() tests
Khaled Hosny ecdd8e3f 2021-08-02T19:36:20 [test] More lookup_collect_glyphs() tests
Khaled Hosny f998d7e1 2021-08-02T16:10:13 [test] Add API test for lookup_collect_glyphs() We don’t seem to have any tests exercising this API at all, and it is a good check of GSUB/GPOS code.
Khaled Hosny 10e73d18 2021-08-01T11:11:12 [test] Add batch mode to hb-subset and use it time meson test --suite=subset down from: real 0m22.822s user 0m44.561s sys 0m9.255s to: real 0m19.418s user 0m38.171s sys 0m3.587s Does not seem to help much, but it is something. Part of https://github.com/harfbuzz/harfbuzz/issues/3089
Khaled Hosny 1fd3a261 2021-08-01T19:38:39 [test] Remove unused shaping tests reference mode
Behdad Esfahbod 05cf8128 2021-08-01T07:59:25 [util/hb-shape] Fix use of EOF as end-of-line EOF is -1, which was being treated as a valid char (255). Use int instead.