test/shaping/tests


Log

Author Commit Date CI Message
Behdad Esfahbod 2f02fc79 2015-12-17T15:21:14 Improve ligature-component handling We use three bits for lig_id these days, so we finally got a report of two separate ligatures with the same lig_id happening adjacent to each other, and then the component-handling code was breaking things. Protect against that by ignoring same-lig-id but lig-comp=0 glyphs after a new ligature. Fixes https://github.com/behdad/harfbuzz/issues/198
Behdad Esfahbod 2ab0de9f 2015-12-17T11:59:15 [use] Fix halant detection Before, we were just checking the use_category(). This detects as halant a ligature that had the halant as first glyph (as seen in NotoSansBalinese.) Change that to use the is_ligated() glyph prop bit. The font is forming this ligature in ccmp, which is before the rphf / pref tests. So we need to make sure the "ligated" bit survives those tests. Since those only check the "substituted" bit, we now only clear that bit for them and "ligated" survives. Fixes https://github.com/behdad/harfbuzz/issues/180
Behdad Esfahbod 1c6a057d 2015-11-26T18:48:30 Add tests for previous commit
Behdad Esfahbod 9cc1ed4f 2015-11-19T12:39:09 Do not allow recursiving to same position and same lookup This is just to make it harder to be extremely slow. There definitely are ways still, just harder. Oh well... how do we tame this problem without solving halting problem?! Fixes https://github.com/behdad/harfbuzz/issues/174
Behdad Esfahbod 85062e3b 2015-11-18T23:09:13 Add tests for previous two commits To fully test what these are supposed to test, they should be run against libharfbuzz-fuzzing.la instead of libharfbuzz.la, but for now just record the files.
Behdad Esfahbod 5a7eb5d4 2015-11-06T00:01:24 [fuzzing] Add test case for OOM From https://github.com/behdad/harfbuzz/issues/161
Behdad Esfahbod 04fd8517 2015-11-04T17:38:22 Add tests for hyphen fallback U+2011 is <noBreak> equivaent of U+2010, so we should do the fallback for it. Currently fails.
Behdad Esfahbod 49ef6309 2015-11-04T17:27:07 Adjust the width of various spaces if font does not cover them See discussion here: https://github.com/behdad/harfbuzz/commit/81ef4f407d9c7bd98cf62cef951dc538b13442eb There's no way to disable this fallback, but I don't think it would be needed. Let's hope for the best! Fixes https://github.com/behdad/harfbuzz/issues/153
Behdad Esfahbod 7793aad9 2015-11-04T14:48:46 Normalize various spaces to space if font doesn't support This resurrects the space fallback feature, after I disabled the compatibility decomposition. Now I can release HarfBuzz again without breaking Pango! It also remembers which space character it was, such that later on we can approximate the width of this particular space character. That part is not implemented yet. We normalize all GC=Zs chars except for U+1680 OGHA SPACE MARK, which is better left alone.
Behdad Esfahbod 2f0dfd43 2015-11-03T12:28:34 Fix test expectation
Behdad Esfahbod df698f32 2015-11-03T12:15:12 [ot-font] Fix hmtx table length checking, *again* Exactly the same problem that I fixed in 63ef0b41dc48d6112d1918c1b1de9de8ea90adb5 I rewrote the table checking yesterday in 67f8821fb25d9bd55719f5e29a582ae1af4b02b3 and introduced the exact same issue again. :( Good thing we have ongoing fuzzing going now. Was discovered immediately by libFuzzer. Thanks kcc! https://github.com/behdad/harfbuzz/issues/139#issuecomment-153449473 Fixes https://github.com/behdad/harfbuzz/issues/156
Behdad Esfahbod 67f8821f 2015-11-02T15:37:29 [ot] Make bad-hmtx handling match FreeType Also route fuzzing-related tests through hb-ot-font, to reduce dependency on FreeType behavior for badly-broken fonts. Fixes failing test with FreeType master.
Behdad Esfahbod 338ffec9 2015-10-15T12:55:57 Add tests for a couple of fixed issues found by libFuzzer From: https://github.com/behdad/harfbuzz/issues/139#issuecomment-147616887 https://github.com/behdad/harfbuzz/issues/139#issuecomment-148289957
Behdad Esfahbod 55db94be 2015-10-13T00:33:59 Add test for previous commit
Behdad Esfahbod 98c6fccc 2015-10-11T21:41:04 Add test for ee9b0b6cb5fdb08671ab064f26c299135f828260
Behdad Esfahbod 34379b49 2015-10-09T12:34:02 Add test for previous fix
Behdad Esfahbod b6d7d161 2015-09-01T16:12:44 [tests] Add Hebrew test for normalization under cluster-level=1 Currently fails. https://bugzilla.gnome.org/show_bug.cgi?id=541608
Behdad Esfahbod 7368da67 2015-08-25T20:28:39 [test] Add test for cursive-positioning with mixed directions Fails now. Fix coming. See thread "Issue with cursive attachment" started by Khaled. Test fonts were made by modifying test font from Khaled to add more anchors.
Behdad Esfahbod f3792342 2015-08-08T18:02:18 [tests] Add test for fallback positioning with cluster_level > 0 For https://github.com/behdad/harfbuzz/pull/123 Currently fails. Fix coming.
Behdad Esfahbod c81d957a 2015-07-23T12:50:48 [test] Add tests for improved 'vert' feature
Behdad Esfahbod 895fb31c 2015-07-23T12:14:03 [test] Support additional options to hb-shape in micro-test suite
Behdad Esfahbod 58206917 2015-07-22T18:44:59 Add test case for deleting default ignorables with positioning
Behdad Esfahbod e6f80fa1 2014-12-10T12:05:24 [indic] Allow ZWJ/ZWNJ before SM In Oriya, a ZWJ/ZWNJ might be added before candrabindu to encourage or stop ligation of the candrabindu. This is clearly specified in the Unicode section on Oriya. Allow it there. Note that Uniscribe doesn't allow this. Micro tests added using Noto Sans Oriya draft. No changes in numbers. Currently at: BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) MALAYALAM: 1048147 out of 1048334 tests passed. 187 failed (0.0178378%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
Behdad Esfahbod a1f27ac3 2014-10-02T16:54:33 Update test expectation for previous commit
Behdad Esfahbod 715f27f8 2014-10-01T16:53:00 [test] Fixup test
Behdad Esfahbod d5e61470 2014-08-05T14:19:01 [arabic] Fix fallback shaping regression Was broken in 615d00ea252739da57edbd980ff27e573. Fixes https://github.com/behdad/harfbuzz/pull/48 Micro-test added.
Behdad Esfahbod ac53443f 2014-07-31T18:51:37 [hangul] Don't apply 'calt' See comments. Micro-test added.
Behdad Esfahbod 9e834e29 2014-07-26T20:34:01 [hebrew] Zero mark advance by GDEF late Seems to be what Uniscribe does. At this point I think it's work checking our default... Fixes Bug 76767 - Zeroing of advance of 2nd component of multiple substitution with SBL Hebrew https://bugs.freedesktop.org/show_bug.cgi?id=76767 Micro-test added.
Behdad Esfahbod 6f2d9ba5 2014-07-26T19:17:44 Add old-Myanmar shaper Looks like Unsicribe responds to the 'mymr' tag by zeroing marks GDEF_LATE instead of generic-shaper UNICODE_LATE. Implement that. Fixes Bug 81775 - Incorrect Rendering with harfbuzz-ng myanmar unicode https://bugs.freedesktop.org/show_bug.cgi?id=81775 Micro-test added based on Padauk.
Behdad Esfahbod fc0daafa 2014-07-23T16:48:51 [indic] Handle old-spec Malayalam reordering with final Halant See comment. Micro-tests added.
Behdad Esfahbod ed29b15f 2014-07-18T14:37:49 [test] Add more Mongolian variation selector tests From https://code.google.com/p/chromium/issues/detail?id=393896
Behdad Esfahbod 615d00ea 2014-07-17T13:36:09 [arabic] Apply init/medi/isol/fini/... in separate stages Follows the order of the Arabic/Syriac specs. Also don't stop between rlig and calt in non-Arabic scripts. Micro-tests for Arabic and Mongolian added for the latter.
Behdad Esfahbod 164c13d7 2014-07-17T14:16:38 Another try to fix Mongolian free variation selectors This reverts bf029281 and fixes it properly. That commit was not enough as it was only inheriting the shaping_action for prev_action, but not curr_action. Micro-test added. https://code.google.com/p/chromium/issues/detail?id=393896
Behdad Esfahbod 3b861421 2014-07-16T13:22:05 Fix Mongolian Variation Selectors for fonts without GDEF Originally we fixed those in 79d1007a501fd63c0ba4d51038c513e6b8b94740. However, fonts like MongolianWhite don't have GDEF, but have IgnoreMarks in their LigatureSubstitute init/etc features. We were synthesizing a GDEF class of mark for Mongolian Variation Selectors and as such the ligature lookups where not matching. Uniscribe doesn't do that. I tried with more sophisticated fixes, like, if there is no GDEF and a lookup-flag mismatch happens, instead of rejecting a match, try skipping that glyph. That surely produces some interesting behavior, but since we don't want to support fonts missing GDEF more than we have to, I went for this simpler fix which is to always mark default-ignorables as base when synthesizing GDEF. Micro-test added. Fixes rest of https://bugs.freedesktop.org/show_bug.cgi?id=65258
Behdad Esfahbod 1d634cbb 2014-06-06T17:55:02 Fix base-position when 'pref' is NOT formed If pre-base reordering Ra is NOT formed (or formed and then broken up), we should consider that Ra as base. This is observable when there's a left matra or dotreph that positions before base. Now, it might be that we shouldn't do this if the Ra happend to form a below form. We can't quite deduce that right now... Micro test added. Also at: https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
Behdad Esfahbod 0ff74b09 2014-06-05T21:55:23 Add missing test file. Oops
Behdad Esfahbod 832a6f99 2014-06-04T16:57:42 [indic] Don't reorder reph/pref if ligature was expanded Normally if you want to, say, conditionally prevent a 'pref', you would use blocking contextual matching. Some designers instead form the 'pref' form, then undo it in context. To detect that we now also remember glyphs that went through MultipleSubst. In the only place that this is used, Uniscribe seems to only care about the "last" transformation between Ligature and Multiple substitions. Ie. if you ligate, expand, and ligate again, it moves the pref, but if you ligate and expand it doesn't. That's why we clear the MULTIPLIED bit when setting LIGATED. Micro-test added. Test: U+0D2F,0D4D,0D30 with font from: [1] https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
Behdad Esfahbod c46f4069 2013-10-15T16:24:21 [tests] Remove Myanmar micro-font and test
Behdad Esfahbod 841e20d0 2013-10-14T18:47:51 Add test suite for shaping results The new test suite runs tests included under hb/test/shaping/tests/*.tests, which themselves reference font files stored by sha1sum under hb/test/shaping/fonts/sha1sum. The fonts are produced using a subsetter to only include glyphs needed to run the test. Four initial tests are added for (Chain)Context matching, of which three currently fail.