test/shaping


Log

Author Commit Date CI Message
Behdad Esfahbod 91f25854 2016-08-08T18:08:08 Actually add test
Behdad Esfahbod f1b76275 2016-08-08T18:06:09 Add tests for Chinese language tags Using font from https://github.com/behdad/harfbuzz/issues/300
Khaled Hosny 98835058 2016-06-18T21:12:19 [tests] Workaround Python 2 “narrow” builds The so-called Python 2 “narrow” builds support UCS2 only, this is a workaround to allow unichr to work with any Unicode character in such builds. This fixes Travis-CI failure as it has narrow Python 2 builds. Copied from: https://github.com/behdad/fonttools/blob/master/Lib/fontTools/misc/py23.py
Behdad Esfahbod 6c0aa9e9 2016-05-06T17:50:06 Fix build on droid.io
Behdad Esfahbod 9b6312f9 2016-05-06T17:41:49 [use] Update to draft spec from Andrew Glass from August 2015
Behdad Esfahbod 30e6e29f 2016-05-06T15:52:27 [indic/use] Move Javanese from Indic shaper to USE Fixes https://github.com/behdad/harfbuzz/issues/243 With javatext.ttf, the reodering medial Ra gets its advance width zero'ed in Uniscribe implementation, and the font adds the advance back. Our Indic shaper does not do that, but USE does. So, route Javanese through USE. That's what Microsoft does anyway. Test: U+A9A5,U+A9BA This also seems to fix the following sequence, and variations thereof: U+A99F,U+A9C0,U+A9A2,U+A9BF
Behdad Esfahbod c6ee5f5f 2016-05-06T15:39:02 Add Javanese sample text
Behdad Esfahbod f8061ae7 2016-05-02T10:28:24 [tests] Fix test
Behdad Esfahbod f00ab2a3 2016-05-02T10:24:00 [hb-ot-font] Make 'glyf' table loading lazy Apparently some clients have reference-table callbacks that copy the table. As such, avoid loading 'glyf' table which is only needed if fallback positioning happens.
Behdad Esfahbod f68390f1 2016-04-27T02:44:35 [test] Add text for Tibetan shorthand contractions From http://www.babelstone.co.uk/Tibetan/Contractions.html
Behdad Esfahbod b2030502 2016-04-26T16:41:17 Do NOT ignore Mongolian Free Variation Selectors during matching Fixes https://github.com/behdad/harfbuzz/issues/234
Behdad Esfahbod 6e55199b 2016-04-04T16:24:27 Add test for 6dd80faf0dcb3e8a8915c3a25da44e2a67cb0cd8
Behdad Esfahbod af48e3d2 2016-02-24T16:06:40 Fix recent test Not sure why the FT functions were returning advance 1024. This caused failure on drone.io. Switch to hb-ot-font and disable glyph names.
Behdad Esfahbod 17c83170 2016-02-24T16:06:23 [tests] Fix for multiple options in test runner scripts
Behdad Esfahbod ebd7431f 2016-02-24T15:53:40 Partially revert 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2 That commit moved the advance adjustment for mark positioning to be applied immediately, instead of doing late before. This breaks if mark advances are zeroed late, like in Arabic. Also, easier to hit it in RTL scripts since a single mark with non-zero advance is enough to hit the bug, whereas in LTR, at least two marks are needed. This reopens https://github.com/behdad/harfbuzz/issues/211 The cursive+mark interaction is broken again. To be fixed in a different way.
Behdad Esfahbod 284481b3 2016-02-24T15:52:37 Add test for mark positioning in rtl with non-zero mark advance Apparently I broke this 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2. Fix coming.
Behdad Esfahbod 56a84e8d 2016-02-24T15:50:33 [tests] Allow commenting out tests to be skipped
Behdad Esfahbod 525cc7d2 2016-02-23T15:19:27 Add note re only adding tests with Free Software fonts
Behdad Esfahbod 6a09d7e3 2016-02-23T13:47:16 [test] Add README about how to add shaping tests
Behdad Esfahbod f8ee7906 2016-02-23T13:45:38 Remove MANIFEST files They are unused currently. We can add later if we hook them up to anything useful.
Behdad Esfahbod 815bdd77 2016-02-22T18:22:44 In cluster-level=0, group ZWJ/ZWNJ with previous cluster This better emulates Unicode grapheme clusters. Note that Uniscribe does NOT do this, but should be harmless with most clients, and improve fallback with clients that use HarfBuzz cluster as unit of fallback. Fixes https://github.com/behdad/harfbuzz/issues/217
Behdad Esfahbod c3731559 2016-02-19T15:13:07 [fuzzing] Add test for recent fix Test from https://github.com/behdad/harfbuzz/issues/223 I forgot that we do run hb-fuzzer on tests in shaping/tests/fuzzed.tests.
Behdad Esfahbod da41e48f 2016-02-16T17:16:33 [USE] Zero mark advances by GDEF early This is what Microsoft's implementation does. Marks that need advance need to add it back using 'dist' or other feature in GPOS. Update tests to match.
Behdad Esfahbod 86c68c7a 2016-02-16T16:07:20 [GPOS] Fix interaction of mark attachments and cursive chaining Fixes https://github.com/behdad/harfbuzz/issues/211 What happens in that bug is that a mark is attached to base first, then a second mark is cursive-chained to the first mark. This only "works" because it's in the Indic shaper where mark advances are not zeroed. Before, we didn't allow cursive to run on marks at all. Fix that. We also where updating mark major offsets at the end of GPOS, such that changes in advance of base will not change the mark attachment position. That was superior to the alternative (which is what Uniscribe does BTW), but made it hard to apply cursive to the mark after it was positioned. We could track major-direction offset changes and apply that to cursive in the post process, but that's a much trickier thing to do than the fix here, which is to immediately apply the major-direction advance-width offsets... Ie.: https://github.com/behdad/harfbuzz/issues/211#issuecomment-183194739 If this breaks any fonts, the font should be fixed to do mark attachment after all the advances are set up first (kerning, etc). Finally, this, still doesn't make us match Uniscribe, for I explained in that bug. Looks like Uniscribe applies minor-direction cursive adjustment immediate as well. We don't, and we like it our way, at least for now. Eg. the sequence in the test case does this: - The first subscript attaches with mark-to-base, moving in x only, - The second subscript attaches with cursive attachment to first subscript moving in x only, - A final context rule moves the first subscript up by 104 units. The way we do, the final shift-up, also shifts up the second subscript mark because it's cursively-attached. Uniscribe doesn't. We get: [ttaorya=0+1307|casubscriptorya=0@-242,104+-231|casubscriptnarroworya=0@20,104+507] while Uniscribe gets: [ttaorya=0+1307|casubscriptorya=0@-242,104+-211|casubscriptnarroworya=0+487] note the different y-offset of the last glyph. In our view, after cursive, things move together, period.
Behdad Esfahbod 5b5dc2c0 2016-02-11T12:15:38 [tests] Add test for advance zeroing of an ASCII letter marked as mark in GDEF
Behdad Esfahbod 3fe0cf10 2016-02-10T18:43:43 Fix previous commit!
Behdad Esfahbod 293a210e 2016-02-10T18:39:59 [tests] Fix fonts in cc4a78bf22c4a735b84c89b04be3bb531f42135e They had an invalid LookupFlag (32).
Behdad Esfahbod cc4a78bf 2016-02-10T18:24:08 [tests] Add tests for Latin mark zeroing
Behdad Esfahbod 55ff34b9 2016-02-10T18:20:02 [tests] Add tests for Thai mark zeroing
Behdad Esfahbod 43bb2b8f 2016-02-10T14:11:43 Minor
Behdad Esfahbod 99d34955 2016-01-06T12:20:47 [test] Add test text for Kaithi
Behdad Esfahbod 6173c2a6 2015-12-25T18:18:23 Fix flaky test This test font had a upem of 769, which results in rounding-related errors with the FreeType font funcs. Change the upem to 1024 to fix that. Fixes https://github.com/behdad/harfbuzz/issues/201
Behdad Esfahbod 3fcae6d8 2015-12-25T18:18:02 [tests] Add --reference, for re-recording tests
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 59821ab8 2015-11-06T16:27:44 [arabic] Don't stretch over cased letters Addresses https://github.com/behdad/harfbuzz/commit/6e6f82b6f3dde0fc6c3c7d991d9ec6cfff57823d#commitcomment-14248516
Behdad Esfahbod 5a7eb5d4 2015-11-06T00:01:24 [fuzzing] Add test case for OOM From https://github.com/behdad/harfbuzz/issues/161
Behdad Esfahbod 6e6f82b6 2015-11-05T17:29:03 Implement SYRIAC ABBREVIATION MARK with 'stch' feature The feature is enabled for any character in the Arabic shaper. We should experiment with using it for Arabic subtending marks. Though, that has a directionality problem as well, since those are used with digits... Fixes https://github.com/behdad/harfbuzz/issues/141
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 55041711 2015-11-04T17:37:30 [test] Drop hintings when subsetting fonts to record
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 8b3c7f9e 2015-11-04T15:30:48 [test] Support recording multiple lines of text in record-test.sh
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 fad26748 2015-09-01T14:45:46 Minor
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 df6cb844 2015-07-26T19:40:55 Merge branch 'use'
Behdad Esfahbod 786ba458 2015-07-23T13:04:34 [test] Encode Kharoshti text Ouch!
Behdad Esfahbod b4231255 2015-07-23T13:01:55 [test] Add Batak and Buginese test texts
Behdad Esfahbod b8c159ff 2015-07-23T12:59:17 [test] Remove shaper-sea texts under shaper-use
Behdad Esfahbod 67ba7320 2015-07-23T12:58:21 [test] Remove New Tai Lue texts New Tai Lue changed encoding to visual, boring, model.
Behdad Esfahbod c81d957a 2015-07-23T12:50:48 [test] Add tests for improved 'vert' feature
Behdad Esfahbod 8a6a16db 2015-07-23T12:49:09 [test] Add recently added test Ouch.
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 14b12f92 2015-07-20T11:57:44 [USE] Add Kharoshti test data from Unicode proposal
Behdad Esfahbod 8f0a4d67 2015-04-23T14:32:33 [test] Ignor 'n' and 'i' in hb-unicode-encode Allows accepting uniXXXX format.
Behdad Esfahbod 9868749a 2015-04-06T14:51:31 [test] Use /usr/bin/env python instead of /usr/bin/python Bug 76494 - #!/usr/bin/python in testsuite https://bugs.freedesktop.org/show_bug.cgi?id=76494
Ebrahim Byagowi 363ceec3 2015-03-30T03:27:14 Make hb_test_tools.py compatible with python 3 On ArchLinux, /usr/bin/python is linked to python 3 so HarfBuzz `make check` is broken there. This makes hb_test_tools.py compatible with python 3 while no breaking it on python 2.
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 c4308f89 2014-08-13T19:42:01 Minor
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 8292f96b 2014-07-31T18:33:11 [test] Fix record-test.sh
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 d218bdb2 2014-07-22T18:01:46 Fix test runner under Windows
Behdad Esfahbod 00a57eb4 2014-07-18T14:42:50 [test] Remove unused micro-font
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 d21e9970 2014-07-17T15:27:46 [test] Make record_test understand cmdline args to hb-shape
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 844f1a48 2014-07-16T13:32:51 [tests] Add record-test.sh
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 6bd5646f 2014-07-09T17:07:06 [tests] Remove bash'ish Apparently on travis-ci, bash is linked to dash, which doesn't understand "let". Failing tests were not being noticed. See eg: https://travis-ci.org/behdad/harfbuzz/jobs/29544211 Don't rely on bash.
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 7977ca17 2014-05-29T15:34:26 [indic] Allow decimal and Brahmi digits as placeholders Tests: U+0967,0951 U+0031,093F
Behdad Esfahbod e8b5d640 2014-05-29T15:18:27 [indic] Do NOT allow reph formation on placeholders Only allow it on DOTTED CIRCLE. No effect on test numbers. Test: U+0930,094D,00A0
Behdad Esfahbod 0a017ce1 2014-05-14T16:44:16 Add tests for Myanmar Asat+MedialYa and MedialYa+Asat sequences One of them currently produces dotted-circle. Fix and detailed message coming.
Behdad Esfahbod 659cd3c5 2014-04-28T12:43:42 [test] Add test case for Tibetan sign PADMA Currently fails.
Behdad Esfahbod ee703bc3 2014-04-28T12:43:18 Reshuffle test data
Behdad Esfahbod 897c7b80 2014-04-10T16:27:13 Add Khmer test for U+17DD
Behdad Esfahbod 2a473338 2014-03-10T15:04:46 Add Myanmar test case from OpenType Myanmar spec
Behdad Esfahbod 15898590 2014-03-10T14:57:55 Minor