Commit Graph

889 Commits

Author SHA1 Message Date
Garret Rieger
4cdd1b16c9 [subset] added todo in test-subset-glyf. 2018-02-12 13:36:28 -08:00
Garret Rieger
1714feef4f [subset] re-enable test-subset-glyf. Refactor to use common functions in hb-subset-test.h 2018-02-12 13:35:17 -08:00
Garret Rieger
d8d8bd8405 [subset] Add some helper functions for writing tests around subsetting. 2018-02-12 13:34:08 -08:00
Behdad Esfahbod
d33ba16361 Fix more warnings 2018-02-11 18:26:41 -08:00
Behdad Esfahbod
41906cd5ef [subset] Another fixup
I broke this in c31fcf4c58
2018-02-11 19:46:06 -06:00
Ebrahim Byagowi
ae6d0259b4
Install fonttools on two bots and enable cmake hb-subset test (#777) 2018-02-11 15:40:55 +03:30
Behdad Esfahbod
6c1848b1e3 Misc warning fixes 2018-02-10 15:52:35 -06:00
Behdad Esfahbod
4c5bdb4b39 [test] Disable test-subset-glyf for now 2018-02-10 15:40:54 -06:00
Behdad Esfahbod
43314ff4c0 More fixes
test-subset-glyf still failing. No idea why :(
2018-02-10 15:40:03 -06:00
Behdad Esfahbod
3346ba9cd5 [test/text-rendering-tests] Update from upstream 2018-02-09 11:05:17 -06:00
Garret Rieger
3e81832432 Disable subset tests on cmake for now. 2018-02-08 18:05:48 -06:00
Behdad Esfahbod
e081c9e8fc Oops! 2018-02-08 17:44:24 -06:00
Behdad Esfahbod
1c49afe179 Whitespace 2018-02-08 17:38:58 -06:00
Behdad Esfahbod
9682ef135f Minor fixups 2018-02-08 17:35:57 -06:00
Garret Rieger
0f3c756cbf Add CMake config for building a separate harfbuzz-subset. 2018-02-08 17:31:11 -06:00
Garret Rieger
d4d120ad79 Skip subset to fonttools comparison test if TTX is not present. 2018-02-08 17:31:11 -06:00
Garret Rieger
29d915284e Whitespace 2018-02-08 17:31:11 -06:00
Garret Rieger
f9420d9eff In the hb-subset to fontTools comparison, use ttx to compare the fonts. This allows for some binary differences such as re-ordered tables. 2018-02-08 17:31:11 -06:00
Garret Rieger
f2ceb5ee4d Comment out failing assert in test-subset-glyf for now. Should be re-enabled once hb_subset is writing out a new face. 2018-02-08 17:31:11 -06:00
Garret Rieger
89dbebd4ad Add a basic test for glyf subsetting. 2018-02-08 17:31:11 -06:00
Behdad Esfahbod
1242ad8424 [test/text-rendering-tests] Update from upstream 2018-02-08 15:08:46 -06:00
Behdad Esfahbod
c479a59988 [subset] Assemble font 2018-02-07 21:26:04 -06:00
Behdad Esfahbod
f70100417c [test] Minor 2018-02-07 13:58:23 -05:00
Behdad Esfahbod
af02812fc5 [subset] Change hb_subset API to remove hb_subset_face_t 2018-02-07 13:07:46 -05:00
Garret Rieger
7481f0ce21 Add codepoints to subset input. 2018-02-07 12:41:21 -05:00
Ebrahim Byagowi
8cb8bfd5b5
[test] Fix test-subset on old distros (#758)
https://developer.gnome.org/glib/stable/glib-Testing.html#g-assert-cmpmem
2018-02-06 20:40:42 +03:30
Behdad Esfahbod
b7b7f0ac59 [test] Minor 2018-02-05 19:40:31 -05:00
Garret Rieger
5f6eb1256f Add libharfbuzz-subset.la to linking when building api tests. 2018-02-05 10:23:38 -08:00
Behdad Esfahbod
257022b178
Merge pull request #745 from googlefonts/master
Interface for hb_subset, skeleton for the hb-subset cli, and basic testing rigging.
2018-02-04 20:01:35 -05:00
Behdad Esfahbod
3615f344ec [test/text-rendering-tests] Update from upstream 2018-02-04 17:21:27 -05:00
Garret Rieger
7b01761ade Add CMakeLists.txt to dist files for subset test. 2018-02-04 12:57:34 -08:00
Garret Rieger
f83a43b561 Add CMake configuration for all of the new subsetting code. 2018-02-04 12:57:34 -08:00
Garret Rieger
06fe297f2a Properly include subset test data files. 2018-02-04 12:57:34 -08:00
Garret Rieger
058b1260ad Re-write hb-subset utility to use main-font-text driver. 2018-02-04 12:57:34 -08:00
Garret Rieger
2763a2c598 Include subset test files in distribution. 2018-02-04 12:57:34 -08:00
Garret Rieger
76b84c36b9 Whitespace 2018-02-04 12:57:34 -08:00
Garret Rieger
a2965f2ea5 Add a basic implementation of hb-subset to enable compilation of test-subset. 2018-02-04 12:57:33 -08:00
Garret Rieger
38af23b8df Make the expected output for subsetting basics test be equal to the input file for now. 2018-02-04 12:57:33 -08:00
Garret Rieger
b59c08eb04 Add the beginning of a unit test for hb-subset 2018-02-04 12:57:33 -08:00
Rod Sheeter
e9d154ac8d tweak test failure output. write to a temp file not stdout. test still fails because expected is not just an identical copy of input 2018-02-04 12:57:33 -08:00
Garret Rieger
76351518ca Remove basic subset test from XFAIL 2018-02-04 12:57:33 -08:00
Garret Rieger
b029b7c19a Whitespace 2018-02-04 12:57:33 -08:00
Garret Rieger
0853260e99 Configure automake to run the new subset tests. 2018-02-04 12:57:33 -08:00
Garret Rieger
5c63c37b2b WIP test runner for subset tests. 2018-02-04 12:57:33 -08:00
Garret Rieger
cc46cd88a1 In generate-expected-outputs read the test definition with utf8 encoding. 2018-02-04 12:57:33 -08:00
Garret Rieger
4cdae914e2 Add basic directory structure for subsetter integration tests. Plus a utility for generating expected output files. 2018-02-04 12:57:33 -08:00
David Corbett
ccb0367dae Let VS1 follow U+1031 MYANMAR VOWEL SIGN E 2018-02-02 12:41:07 -08:00
Behdad Esfahbod
585b576098 Fix distcheck 2018-01-30 11:52:11 -08:00
Behdad Esfahbod
e00743b47d [test/text-rendering-tests] Update from upstream 2018-01-30 11:01:18 -08:00
Ebrahim Byagowi
e849b8a85b
[cmake] Always put test/api/CMakeLists.txt on distributions 2018-01-19 16:12:24 +03:30
David Corbett
9b693212a8 Update record-test.sh to the new directory layout (#716) 2018-01-19 01:04:13 +03:30
Behdad Esfahbod
60f84ef014 Disable MORX-13/14
Really, need better way to catch these :(.
2018-01-15 20:46:58 -05:00
Behdad Esfahbod
54a1e250a8 [test/text-rendering-tests] Update from upstream 2018-01-13 14:44:39 +00:00
Behdad Esfahbod
0d39ac224c [test/text-rendering-tests] Update README 2018-01-11 22:47:08 +01:00
Behdad Esfahbod
17a66f133c [test] Disable MORX-12
Ouch. I need a better workflow for this.
2018-01-11 22:46:19 +01:00
Behdad Esfahbod
1387fe8f9c [test/text-rendering-tests] Update from upstream 2018-01-11 19:23:14 +01:00
Behdad Esfahbod
1eb98c9916 [test/text-rendering-tests] Actually disable MORX-11 2018-01-11 17:59:03 +01:00
Behdad Esfahbod
1d20d109a0 [test/text-rendering-tests] Update from upstream 2018-01-11 15:19:01 +01:00
Behdad Esfahbod
fc405b7ca7 [test/text-rendering-tests] Update from upstream 2018-01-11 15:15:36 +01:00
Ebrahim Byagowi
4177f646aa
[cmake] Update and unbreak (#700) 2018-01-11 15:43:23 +03:30
Behdad Esfahbod
d6076747ac [test/text-rendering-tests] Add DISABLED list 2018-01-11 10:51:46 +01:00
Behdad Esfahbod
de02b5093c [test/in-house] Add Makefile.sources 2018-01-11 10:48:42 +01:00
Behdad Esfahbod
7c32e01d04 Minor 2018-01-11 10:47:31 +01:00
Behdad Esfahbod
a5adc5aa84 [test/text-rendering-tests] Update from upstream
Also adds an update.sh script that does this automatically.
2018-01-11 10:43:30 +01:00
Behdad Esfahbod
c861daacc4 [test/text-rendering-tests] Add README and COPYING 2018-01-11 10:43:30 +01:00
Behdad Esfahbod
ea3e86c640 Minor 2018-01-11 10:43:30 +01:00
Ebrahim Byagowi
1461965c22
[test] Better tests output by converting stderr to stdout (#696)
https://gitlab.kitware.com/cmake/cmake/issues/17630
2018-01-11 08:48:22 +03:30
Ebrahim Byagowi
ebb9b7d633
[test] Print shaping output on CI fails (#695) 2018-01-11 08:15:06 +03:30
Ebrahim Byagowi
71e0ed9cba
[cmake] Add header existence tests (#685) 2018-01-10 15:45:12 +03:30
Ebrahim Byagowi
a073621b5d
[cmake] Fix tests against latest changes (#690) 2018-01-10 12:13:28 +03:30
Behdad Esfahbod
6db0b17c4c [test] Move test handling to sundirectories 2018-01-10 05:40:43 +01:00
Behdad Esfahbod
4c982b4867 [test] Whitelist one more passing test 2018-01-10 05:26:55 +01:00
Behdad Esfahbod
0b28e1199d [test] Whitelist one more passing test 2018-01-10 05:02:42 +01:00
Behdad Esfahbod
6dc6f0c9f8 [test] Whitelist one passing test 2018-01-10 04:15:57 +01:00
Behdad Esfahbod
ec939761e4 Minor 2018-01-10 03:56:43 +01:00
Behdad Esfahbod
c4eac531df Minor 2018-01-10 03:51:09 +01:00
Behdad Esfahbod
285a0bd799 [test] Another try
Making cmake happy this time.
2018-01-10 03:49:32 +01:00
Behdad Esfahbod
95b32b0055 [test] Fix text disabling
Ouch, make!
2018-01-10 03:48:09 +01:00
Behdad Esfahbod
a938d105b8 [test/text-rendering-tests] Disable failing tests 2018-01-10 03:41:55 +01:00
Behdad Esfahbod
ed95d5e374 [test/text-rendering-tests] Disable failing tests 2018-01-10 03:41:02 +01:00
Behdad Esfahbod
3b1e97f364 Add HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES
New API:
HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES
hb-shape / hb-view --remove-default-ignorables

One more text-rendering-tests test passing.  Eleven failing.
2018-01-10 03:36:03 +01:00
Behdad Esfahbod
46e4ed552f [test/text-rendering-tests] Hook up font variations
Six more passing. Twelve failing now.
2018-01-10 03:22:08 +01:00
Behdad Esfahbod
2b3f62fc4d [test] Add tests from text-rendering-tests repo
https://github.com/unicode-org/text-rendering-tests
2018-01-10 03:16:56 +01:00
Behdad Esfahbod
3f29ea9144 [util] Add hb-shape --ned
For not displaying extra data: no clusters, no advance. Just data pertaining
to where glyphs end up on the screen.
2018-01-10 02:50:49 +01:00
Behdad Esfahbod
7020130665 [test] Minor 2018-01-10 02:50:49 +01:00
Behdad Esfahbod
316a28f8f8 [test] Add script for extracting tests from text-rendering-tests
Work in progress...

https://github.com/unicode-org/text-rendering-tests
2018-01-10 02:50:49 +01:00
Behdad Esfahbod
6b4d63f295 [test] Minor 2018-01-10 02:50:49 +01:00
Behdad Esfahbod
504f913654 [test] Simplify test runner
Always pass hb-shape as first argument to run-tests.py.

Also require automake 1.13.
2018-01-10 02:50:49 +01:00
Behdad Esfahbod
141db8b7a3 [test] Minor 2018-01-10 02:50:49 +01:00
Behdad Esfahbod
44c65eee28 [test] Reorganize test suite
In anticipation of importing more test suites.
2018-01-10 02:50:49 +01:00
Behdad Esfahbod
9a3ad307ea [test] Remove unused hb-diff-ngrams 2018-01-10 02:50:49 +01:00
Behdad Esfahbod
b6b460024d [test] Remove unused manifest stuff 2018-01-10 02:50:49 +01:00
Behdad Esfahbod
ebbee7c247 [test] Move test files around 2018-01-10 02:50:49 +01:00
Behdad Esfahbod
ed2f458b14 Add test font for previous commit 2018-01-05 12:55:39 +00:00
Behdad Esfahbod
127bcc6ece Merge remote-tracking branch 'fdo/master' 2018-01-05 12:50:22 +00:00
Behdad Esfahbod
8c0d1916a4 Improve CGJ skipping logic
Previously we made CGJ unskippable.  Now, if CGJ did NOT prevent
any reordering, allow skipping over it.  To make this work we
had to make changes to the Arabic mark reordering algorithm
implementation to renumber moved MCM marks.  See comments.

Fixes https://github.com/harfbuzz/harfbuzz/issues/554
2018-01-05 12:48:19 +00:00
Ebrahim Byagowi
72bec1cd09
Improve tests (#679) 2018-01-05 12:42:20 +03:30
Ebrahim Byagowi
70807ad274
Fix make check issue on out-of-tree builds and test it (#672) 2018-01-02 23:52:12 +03:30
Ebrahim Byagowi
4e3cf91af2
[cmake] Run rest of the tests on Windows (#668) 2018-01-01 11:17:51 +03:30
Ebrahim Byagowi
2dbdeb1421
[cmake] Run fuzzing and shaping tests (#666) 2017-12-29 23:13:29 +03:30
Ebrahim Byagowi
50163976d2
[cmake] Enable cmake tests on distribution and test it (#664) 2017-12-25 01:55:48 +03:30
David Corbett
7bfdf1a941 Forbid Batak killers after vowel signs 2017-12-24 14:21:22 -08:00
ebraminio
20e69c950d
[test] print commented line, like the original script (#649) 2017-12-07 12:24:12 +03:30
ebraminio
5f061d27d5
Rewrite run-tests in python (#647) 2017-12-07 11:22:55 +03:30
Khaled Hosny
c860955148 Add API tests to cmake build 2017-12-06 15:25:10 +02:00
Khaled Hosny
f19126dd35 We are already inside “if HAVE_GLIB” check 2017-12-06 15:25:10 +02:00
Behdad Esfahbod
20b4672754 [set] Fix recent changes
Ouch!

Add tests.
2017-12-02 15:15:50 -08:00
Behdad Esfahbod
d9066afd6b Add another test for previous commit
From https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4273
2017-11-29 16:18:18 -08:00
Behdad Esfahbod
16fba5b215 [ot] Fix Extension type recurse to disallow recursing to another Extension
Particularly hazardous if the second layer mixes forward and backward lookups.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4336
2017-11-29 16:08:11 -08:00
David Corbett
9f259769a6 Categorize U+A8B4 as Consonant_Medial 2017-11-21 13:48:32 -08:00
Behdad Esfahbod
8d55340593 Fix fallback positioning of double diacritic marks
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=787284
2017-11-20 19:43:22 -08:00
David Corbett
87d74605f5 Categorize U+0C80 as Consonant_Placeholder 2017-11-20 13:10:28 -08:00
ebraminio
7c6937e7c7
Move all references of old url to the new address (#622) 2017-11-20 14:49:22 -05:00
Behdad Esfahbod
baf7779d2d Limit how much recursion GSUB/GPOS does
This only counts recursions right now.  Good start.

Hopefully...
Fixes https://github.com/behdad/harfbuzz/issues/429
2017-11-14 21:55:37 -08:00
Behdad Esfahbod
b9c96b5d7c Add test for previous commit
At some point we should run tests under valgrind...
2017-11-14 15:56:21 -08:00
David Corbett
87f0ad183c Allow U+20F0 in USE clusters 2017-11-14 15:04:10 -08:00
Behdad Esfahbod
8eed9cb11e [kern] Fix invalid memory access if offset is zero
If offset is zero, we return Null() object.  Wasn't prepared for that.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4088
2017-11-09 18:09:40 -08:00
Khaled Hosny
b68fba4dc8 [test] Use glyph ids instead of forcing ft funcs
We were using ft funcs because these are CFF fonts, but we can avoid
glyph names instead and keep testing both ot and ft.
2017-11-09 18:01:15 -05:00
Khaled Hosny
2fcfbcf805 [test] Fix another instance of component rounding
See https://github.com/behdad/harfbuzz/pull/590#issuecomment-341194673
2017-11-09 18:01:15 -05:00
Behdad Esfahbod
822035ce73 [tests/arabic-stch.tests] Don't show flags
We don't need to test the actual flag values.  For unsafe-to-break,
the --verify in run-tests.sh checks what we are interested in.
2017-11-08 17:03:55 -08:00
Behdad Esfahbod
53f0c27ddc Minor 2017-11-08 17:02:54 -08:00
David Corbett
5a9cba9744 Mark non-initial left matras as unsafe to break 2017-11-08 19:12:10 -05:00
David Corbett
74e82adaea Mark glyphs involved in 'stch' as unsafe to break 2017-11-06 15:06:23 -05:00
Khaled Hosny
0e63cbed9c [test] Fix difference between ft and ot font funcs
See https://github.com/behdad/harfbuzz/pull/590#issuecomment-341194673.

I simply removed the composite glyph and use the referenced simple
glyph directly.
2017-11-01 14:00:52 -06:00
Khaled Hosny
0b8f8dd869 Revert "[test] We don’t care about glyph positions here"
This reverts commit 70137e2b4b.
2017-11-01 14:00:52 -06:00
Khaled Hosny
f1245013bf [test] Run shaping tests with both ot and ft funcs 2017-11-01 10:33:10 -06:00
Khaled Hosny
70137e2b4b [test] We don’t care about glyph positions here
Freetype and OT font functions give different positions for some glyphs
in this font (OT seems to be correct), but that is not what we are
interested in in this test.

See https://github.com/behdad/harfbuzz/pull/590#issuecomment-341045223.
2017-11-01 10:33:10 -06:00
Khaled Hosny
9234b364b1 [test] Use ft functions for this test
https://github.com/behdad/harfbuzz/pull/590#issuecomment-340967271
2017-11-01 10:33:10 -06:00
Khaled Hosny
afbfb9279c [test] Always use ft font funcs for these tests
These are CFF fonts and ot functions don’t support CFF glyph names yet.
The next commit will run all tests with ot functions.
2017-11-01 10:33:10 -06:00
David Corbett
d016c5bdb9 Categorize Grantha candrabindu for use in Tamil 2017-10-31 16:54:23 -06:00
David Corbett
729c9e1335 Include all relevant glyphs in the subsetted font 2017-10-26 13:49:56 -05:00
Behdad Esfahbod
cb6c6b0c42 Fix warning
49a41dc759 (commitcomment-25203194)
2017-10-26 11:43:33 -06:00
Jonathan Kew
7339926525 [test] Extend hb_set test for issue 579 (currently failing) 2017-10-26 12:33:05 -05:00
Jonathan Kew
3d6f7df42a [test] Additional coverage in test_set_iter.
This adds a couple extra entries to the set used, such that iteration
would fail in 1.6.2 due to the bug in hb_set_t::page_t::next().
2017-10-26 12:30:52 -05:00
Khaled Hosny
9d4d2fb9af [ot-font] Implement hb_ot_get_glyph_name
Turns out we already have support for “post” table, it just needed to be
activated and put in use.
2017-10-25 19:29:51 -04:00
Behdad Esfahbod
bf133497e5 Merge commit '49a41dc75931cc2d2f7e74b7801f8cc327039e8e' 2017-10-25 17:23:20 -06:00
Behdad Esfahbod
49a41dc759 [test] Add more hb-set tests
https://github.com/behdad/harfbuzz/issues/579
2017-10-25 16:17:45 -06:00
David Corbett
fd786c768f Use mktemp -d instead of mktemp --directory 2017-10-25 16:53:37 -04:00
David Corbett
c4944920c0 Fix and run indic-script-extensions.tests 2017-10-25 16:53:16 -04:00
David Corbett
d8df714251 Fix code point iteration in narrow Python 2017-10-25 16:53:16 -04:00
Behdad Esfahbod
deed4a48d1 Faster hb_set_t
Fixes https://github.com/behdad/harfbuzz/pull/23
2017-10-15 16:45:33 -03:00
Behdad Esfahbod
81e2b9b8a9 Never skip over CGJ
We might want to tweak this some more.  For now, never skipping over
it is better behavior than always skipping.

Part of https://github.com/behdad/harfbuzz/issues/554
2017-10-15 10:49:06 +02:00
Behdad Esfahbod
fa48ccbe12 [indic] Special-case Kannada Ra,H,ZWJ sequence
Fixes https://github.com/behdad/harfbuzz/issues/435
2017-10-12 14:07:37 +02:00
Behdad Esfahbod
ab8d70ec70 [arabic] Implement Unicode Arabic Mark Ordering Algorithm UTR#53
Fixes https://github.com/behdad/harfbuzz/issues/509
2017-10-04 14:47:10 +02:00
David Corbett
3ca9c92aa6 Test Consonant_With_Stacker in Kannada (#530) 2017-10-03 14:07:02 +02:00
Behdad Esfahbod
5d98de1f38 Tweak mark-base attachment
Apparently a base glyph can also become an attached component of a
ligature if the ligature-forming lookup used IgnoreBase.  This was
being confused with a non-first component of a MultipleSubst and
hence not matched for mark-attachment.  Tweak test to fix.

Fixes https://github.com/behdad/harfbuzz/issues/543
2017-10-03 13:49:40 +02:00
Behdad Esfahbod
09cbeb2246 Make bots happy
Fixes https://github.com/behdad/harfbuzz/issues/551
2017-10-03 13:22:07 +02:00
Behdad Esfahbod
1633513996 Add test for U+0A51
New Indic numbers are:

BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951201 out of 951913 tests passed. 712 failed (0.0747968%)
KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%)
MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)

Before 71c0a1429d GURMUKHI used to be at 15,
because Uniscribe seems to allow this character standalone, but that looks
wrong.
2017-10-02 20:28:56 +02:00
Behdad Esfahbod
8b2c94c43f Tweak ligature component matching for ligature formation
If two marks want to ligate and they belong to different components of the
same ligature glyph, and said ligature glyph is to be ignored according to
mark-filtering rules, then allow.

Example Burmese senquence:

  U+1004,U+103A,U+1039,U+101B,U+103D,U+102D

Test font provided by Norbert Lindenberg.

Fixes https://github.com/behdad/harfbuzz/issues/545
2017-10-02 20:03:35 +02:00
Behdad Esfahbod
71c0a1429d [indic] Fix shaping of U+0A51
Mark it as matra below to allow the sequence U+0A15, U+0A51, U+0A47.
Oh well...

Fixes https://github.com/behdad/harfbuzz/issues/524
2017-10-02 18:57:03 +02:00
Behdad Esfahbod
cc79b666bc [indic] Add test for 1a0a356a0f
https://github.com/behdad/harfbuzz/issues/538
2017-10-02 09:19:15 -04:00
Behdad Esfahbod
61a9d7e6d0 Minor 2017-09-04 19:48:52 -07:00
Behdad Esfahbod
03a5a6f873 [util] Add --unicodes to hb-view / hb-shape
Fixes https://github.com/behdad/harfbuzz/issues/154
2017-09-01 19:12:22 -07:00
Behdad Esfahbod
0e5b475d98 Minor 2017-09-01 18:28:47 -07:00
Behdad Esfahbod
3e1fc6d18b Minor 2017-09-01 10:46:48 -07:00
Behdad Esfahbod
04f009f848 Add test accidentally removed in previous commit 2017-09-01 10:38:25 -07:00
Behdad Esfahbod
06cb162cd7 [indic] Treat Consonant_With_Stacker as consonant
Fixes https://github.com/behdad/harfbuzz/issues/528
"Kannada JIHVAMULIYA and UPADHMANIYA insert dotted circles"
2017-09-01 10:34:56 -07:00
Behdad Esfahbod
099472e08b hb_buffer_diff() tweak
I like to have a mode where CONTAINS_NOTDEF and CONTAINS_DOTTEDCIRCLE are not
returned.  Abused a value of -1 for that.  hb-shape now uses it.  Fixes two
of the six tests failing with --verify in test/shaping/run-tests.sh.
2017-08-30 16:45:06 -07:00
Behdad Esfahbod
4387b059a0 [test] Add --verify to hb-shape
Disabled for now.  Will enable and fix failures after next release.
2017-08-23 14:35:58 -07:00
Behdad Esfahbod
c4712f8e37 Fix test 2017-08-10 20:27:21 -07:00
Behdad Esfahbod
3b54d0337e Add tests for 'avar' fix 5dc30451b8 2017-08-08 18:37:03 -07:00
Behdad Esfahbod
c1432bce3c [arabic] Adjust feature order again
Fixes https://github.com/behdad/harfbuzz/issues/505
2017-07-14 17:35:17 +01:00
Behdad Esfahbod
9dd29c681e [use] Allow up to two medial-below letters
Fixes https://github.com/behdad/harfbuzz/issues/376
2017-07-14 17:01:27 +01:00
Behdad Esfahbod
216b003c91 [use] Fix shaping of U+AA29 CHAM VOWEL SIGN AA
Part of https://github.com/behdad/harfbuzz/issues/376
Also see https://github.com/roozbehp/unicode-data/issues/6

Test added, using NotoSansCham built from Noto Phase III sources.
2017-07-14 16:38:51 +01:00
Behdad Esfahbod
3cc84f45b9 [indic] Fix https://github.com/behdad/harfbuzz/issues/478 2017-07-14 15:50:22 +01:00
Behdad Esfahbod
e359a4b8f5 [indic] Disable automatic ZWNJ handling for Indic features
Fixes https://github.com/behdad/harfbuzz/issues/294

Also fixes a bunch of other Indic issues.  Test results after:

BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951201 out of 951913 tests passed. 712 failed (0.0747968%)
KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%)
MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)

Before:

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: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
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%)
2017-07-14 14:22:52 +01:00
Dominik Schlösser
3a73e0d5e1 Shaping tests for Tibetan vowels (#446)
* Shaping tests for Tibetan vowels

* Test-cases for the Dzongkha contractions with multiple vowel-signs added.

* going to be removed

* Extended contraction-test-cases to all test cases in contractions.txt that actually use multiple-vowels (113 cases)
2017-07-14 12:14:55 +01:00
Khaled Hosny
06cfe3f736 Do not skip TAG characters in glyph substitution (#487)
Hide them like Mongolian Free Variation Selectors instead.

Fixes https://github.com/behdad/harfbuzz/issues/463
2017-05-17 11:32:47 -07:00
Dominik Schlösser
c42869eb71 Small doc fix: make check runs the tests (#469) 2017-04-15 12:17:05 -07:00
Dominik Schloesser
8d256841ca Current fonttools (3.9.1) generate subset-file called font.subset.ttf instead of older font.ttf.subset 2017-03-27 12:05:35 +02:00
Dominik Schloesser
c2a9de15f5 Updated samples: record-it.sh is now record-test.sh 2017-03-27 12:05:35 +02:00
Khaled Hosny
f2e6c7ce51 [tools] Make hb-unicode-code work with Python 3
Related to https://github.com/behdad/harfbuzz/pull/445
2017-03-26 10:50:32 +02:00
Behdad Esfahbod
47e7a1800f Revert "Fix Context lookup application when moving back after a glyph delete"
This reverts commit b9b005f3a4.

This introduced invalid access cases. Revert until I fix correctly.
2017-03-10 13:23:02 -08:00
Behdad Esfahbod
b9b005f3a4 Fix Context lookup application when moving back after a glyph delete
This was broken forever, since days that we did not allow moving
tape backwards. Works now. Reported by Doug Felt.
2017-03-01 14:27:23 -08:00
Behdad Esfahbod
a11501444c Add few tests found by libFuzzer and oss-fuzz 2017-02-25 13:37:54 -08:00
jfkthame
44f7d6ecde Guard against underflow when adjusting length (#421)
* Guard against underflow when adjusting length

With the fuzz-testcase in mozilla bug 1295299, we end up with a recursed lookup that removes 3 items, when `match_positions[idx]` is 0, which results in (unsigned) `end` wrapping to a huge value.

Making `end` a signed int is probably the simplest route to a fix.

Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1295299.

* Add testcase for #421.
2017-02-16 19:03:24 -08:00
jfkthame
45766b673f [indic] Add support for Grantha marks that may be used in Tamil to th… (#401)
* [indic] Add support for Grantha marks that may be used in Tamil to the Indic table.

See https://bugzilla.mozilla.org/show_bug.cgi?id=1331339.

Testcase: U+0BA4,U+0BC6,U+1133c,U+0BAA,U+1133c,U+0BC6,U+1133c

* [indic] Add test for Grantha nukta that is allowed in Tamil by ScriptExtensions.txt
2017-02-16 09:40:21 -08:00
Philip Withnall
a6ced90efc test: Fix some memory leaks in test-font.c (#409)
Coverity IDs: 141039, 141040, 141041
2017-02-07 18:18:33 -08:00
Behdad Esfahbod
e888f642db Route Adlam through Arabic shaper
Fixes joined Adlam rendering.

Fixes https://github.com/googlei18n/noto-fonts/issues/828
2017-01-26 14:50:14 -08:00
Behdad Esfahbod
a8a5e81a52 [test-ot-math] Add test with nil face/font 2017-01-19 16:55:04 -08:00
Behdad Esfahbod
331d07bd40 Minor 2017-01-19 16:51:36 -08:00
Behdad Esfahbod
b5ecf1bfa4 Fix warnings 2017-01-19 16:50:29 -08:00
Behdad Esfahbod
2f2ceee185 Minor 2017-01-19 16:48:01 -08:00
Khaled Hosny
2452543fdd [ot] Fix automatic fraction for RTL scripts (#405)
The numbers for right-to-left scripts are processed also from right to
left, so the order of applying “numr” and “dnom” features should be
reversed in such case.

Fixes https://github.com/behdad/harfbuzz/issues/395
2017-01-18 12:48:13 -08:00
Sascha Brawer
1337428e4f Update language tags to OpenType 1.8.1 (#403)
Resolves https://github.com/behdad/harfbuzz/issues/324
2017-01-18 04:51:02 -08:00
Behdad Esfahbod
31f7b1bb94 Add tests for USE using Marchen font and text
From http://www.babelstone.co.uk/Fonts/Marchen.html
2017-01-05 20:20:06 -08:00
Behdad Esfahbod
4b4a1b9f23 Fix assert fail with contextual matching
As discovered by libFuzzer / Chromium fuzzing.

Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=659496
CC https://github.com/behdad/harfbuzz/issues/139
2016-12-21 23:14:16 -06:00
Behdad Esfahbod
a0688e8e7b Ouch, finish previous change 2016-12-20 20:52:50 -06:00
Behdad Esfahbod
de14c19d14 [fuzzer] Separate main() into a new file 2016-12-20 20:50:38 -06:00
Mike Hommey
1c98ff87c7 Support building with older glib versions
It is desirable to be able to build against older versions of glib.

fd7a245 changed the configure check to require glib > 2.38 for
G_TEST_DIST. Before that, version 2.16 was required, but in fact,
since aafe395, G_PASTE is being used, which was introduced in 2.19.1.
And since 0ef179e2, hb-glib uses GBytes, which were introduced in
2.31.10.

2.19.1 is rather old, but 2.38 is rather new. For Firefox, building
against 2.22 is still supported, although we could probably get away
with bumping that to 2.28. Either way, GBytes is not available.

Arguably, if you build against a glib that doesn't support GBytes,
you're not going to use the hb_glib_blob_create function, so we hide
the function when building against such a glib.

As for G_TEST_DIST, when building against versions of glib that don't
support it, we can fallback to the previous behavior, which, AIUI, was
just making the test not work when building in a separate directory.
2016-12-18 01:37:07 -06:00
Behdad Esfahbod
8c842e4a44 [hb-fuzzer] Get glyph extents for output glyphs
To exercise glyph-extents codepaths (glyf / CBLC+CBDT).
2016-12-04 20:28:38 -08:00
Behdad Esfahbod
9f6144cdb9 [CBDT] Add test for fetching glyph extents 2016-12-04 19:55:17 -08:00
Behdad Esfahbod
d163cd9562 [tests] Add tests for vertical origin with ft and ot font-funcs 2016-10-26 18:27:48 +02:00
Frédéric Wang
c3fa5d0e03 Remove inexistent file ttx file from test/api/Makefile.am 2016-10-24 21:42:04 +02:00
Behdad Esfahbod
34fc4a2cfa Fix dist 2016-10-04 14:47:12 -07:00
Behdad Esfahbod
46cc4a3a2a [MATH] Rename hb_math_*_t types to hb_ot_math_*_t
With this, I believe MATH table API is not ready to be merged.
2016-09-27 16:44:22 +02:00
Frédéric Wang
8d622f1114 Add tests for get_mathvariant (#329) 2016-09-27 13:53:34 +02:00
Frédéric Wang
485e4873fb Add tests for hb_ot_math_get_glyph_variants (#328) 2016-09-27 13:18:00 +02:00
Behdad Esfahbod
a5629a2ed9 [MATH] Simplify test 2016-09-27 11:31:29 +02:00
Frédéric Wang
edcfa789bf test-ot-math: Use different scales for vertical and horizontal directions and add test for hb_ot_math_get_min_connector_overlap. (#327) 2016-09-27 11:02:08 +02:00
Behdad Esfahbod
cdc9eef7da [MATH] Enable tests for glyph-assembly italics-correction 2016-09-26 22:18:41 +02:00
Behdad Esfahbod
86106c7528 [MATH] Rename all API to hb_ot_math_* 2016-09-26 22:14:29 +02:00
Frédéric Wang
51da7a1cd6 MATH table: Add API to access math variants. 2016-09-26 15:18:16 +01:00
Frédéric Wang
722e620f20 Use G_TEST_DIST to build the path of math test fonts 2016-09-26 13:49:18 +01:00
Behdad Esfahbod
17ff30e9af [MATH] Clean up get_top_accent_attachment()
Note, the function now returns "half of horizontal advance width"
if top accent attachment for glyph is not explicitly defined.
This is what the spec requires.  Updated tests.
2016-09-26 12:21:27 +01:00
Behdad Esfahbod
8bcf517fe5 [MATH] Clean up get_italics_correction() 2016-09-26 12:13:14 +01:00
Frédéric Wang
d7182d1296 MATH Table: Add API to access glyph info. 2016-09-26 11:32:25 +01:00
Frédéric Wang
319ff59161 MATH Table: Add API to access math contants. 2016-09-26 10:49:09 +01:00
Behdad Esfahbod
4d3892e9b0 [MATH] Fixups for previous commit 2016-09-26 10:45:58 +01:00
Frédéric Wang
5fbcb992bd MATH Table: Add API to check availability of math data. 2016-09-26 10:27:33 +01:00
Sascha Brawer
e7ecbba2cc Support Americanist Phonetic Notation
OpenType language system tag: `APPH`
https://www.microsoft.com/typography/otspec/languagetags.htm

IETF BCP47 variant tag: `fonnapa`
http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
2016-08-18 14:13:26 +02:00
Behdad Esfahbod
18c19dd34d Fix build 2016-08-09 13:03:14 -07:00
Behdad Esfahbod
91f2585411 Actually add test 2016-08-08 18:08:08 -07:00
Behdad Esfahbod
f1b76275da Add tests for Chinese language tags
Using font from https://github.com/behdad/harfbuzz/issues/300
2016-08-08 18:06:09 -07:00
Sascha Brawer
5967eaba72 [CPAL] Return 0xFFFF as name id for unnamed palettes
The name id 0 is used as Copyright notice. It's quite unlikely that a
font supplies a color palette with the exact same name as the font's
copyright notice, but the API should not prevent this.

Also, try to fix a problem with GObject introspection, where the
auto-generated Python bindings could not return palette colors.
2016-06-24 16:46:49 +02:00
Sascha Brawer
d34d3ac985 Support CPAL table 2016-06-19 13:17:57 +02:00
Khaled Hosny
988350586f [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
2016-06-18 23:01:58 +02:00
Behdad Esfahbod
6c0aa9e92b Fix build on droid.io 2016-05-06 17:50:53 +01:00
Behdad Esfahbod
9b6312f945 [use] Update to draft spec from Andrew Glass from August 2015 2016-05-06 17:41:49 +01:00
Behdad Esfahbod
30e6e29f0f [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
2016-05-06 15:52:27 +01:00
Behdad Esfahbod
c6ee5f5f06 Add Javanese sample text 2016-05-06 15:39:02 +01:00
Behdad Esfahbod
f8061ae797 [tests] Fix test 2016-05-02 10:28:24 +02:00
Behdad Esfahbod
f00ab2a33a [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.
2016-05-02 10:24:00 +02:00
Behdad Esfahbod
f68390f196 [test] Add text for Tibetan shorthand contractions
From http://www.babelstone.co.uk/Tibetan/Contractions.html
2016-04-27 02:44:35 -07:00
Behdad Esfahbod
b20305022a Do NOT ignore Mongolian Free Variation Selectors during matching
Fixes https://github.com/behdad/harfbuzz/issues/234
2016-04-26 16:41:17 -07:00
Behdad Esfahbod
6e55199b5f Add test for 6dd80faf0d 2016-04-04 16:24:27 -07:00
Behdad Esfahbod
dd8598c1c7 [test] Pass closure to hb_font_set_glyph_func()
Exercises fix in c335fd7986
2016-02-25 11:20:05 +09:00
Behdad Esfahbod
af48e3d27c 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.
2016-02-24 16:06:40 +09:00
Behdad Esfahbod
17c8317017 [tests] Fix for multiple options in test runner scripts 2016-02-24 16:06:23 +09:00
Behdad Esfahbod
ebd7431f82 Partially revert 86c68c7a2c
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.
2016-02-24 15:53:40 +09:00
Behdad Esfahbod
284481b312 Add test for mark positioning in rtl with non-zero mark advance
Apparently I broke this 86c68c7a2c.
Fix coming.
2016-02-24 15:52:37 +09:00
Behdad Esfahbod
56a84e8dd1 [tests] Allow commenting out tests to be skipped 2016-02-24 15:50:33 +09:00
Behdad Esfahbod
525cc7d28c Add note re only adding tests with Free Software fonts 2016-02-23 15:19:27 +09:00
Behdad Esfahbod
6a09d7e34b [test] Add README about how to add shaping tests 2016-02-23 13:47:16 +09:00
Behdad Esfahbod
f8ee7906d0 Remove MANIFEST files
They are unused currently.  We can add later if we hook them up
to anything useful.
2016-02-23 13:45:38 +09:00
Behdad Esfahbod
815bdd7700 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
2016-02-22 18:22:44 +09:00
Behdad Esfahbod
c373155904 [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.
2016-02-19 15:13:07 +07:00
Behdad Esfahbod
aa33cb72ab [fuzzing] Make test runner actually work 2016-02-19 15:12:53 +07:00
Behdad Esfahbod
2735555c6b [fuzzing] Add TODO item 2016-02-19 15:12:50 +07:00
Behdad Esfahbod
7e76bbabba [fuzzing] Make "make hb-fuzzer" build lib dependency
Not going to do with util/, but is convenient here.
2016-02-19 14:43:39 +07:00
Behdad Esfahbod
da41e48f0a [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.
2016-02-16 17:16:33 +07:00
Behdad Esfahbod
86c68c7a2c [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.
2016-02-16 16:07:20 +07:00
Behdad Esfahbod
5b5dc2c040 [tests] Add test for advance zeroing of an ASCII letter marked as mark in GDEF 2016-02-11 12:15:38 +07:00
Behdad Esfahbod
3fe0cf1040 Fix previous commit! 2016-02-10 18:43:43 +07:00
Behdad Esfahbod
293a210eee [tests] Fix fonts in cc4a78bf22
They had an invalid LookupFlag (32).
2016-02-10 18:39:59 +07:00
Behdad Esfahbod
cc4a78bf22 [tests] Add tests for Latin mark zeroing 2016-02-10 18:24:35 +07:00
Behdad Esfahbod
55ff34b9c1 [tests] Add tests for Thai mark zeroing 2016-02-10 18:24:32 +07:00
Behdad Esfahbod
43bb2b8fb0 Minor 2016-02-10 14:11:43 +07:00
Behdad Esfahbod
505b7d4732 [fuzzing] Fuzz input text
Very rudimentary right now, but will get kcc's bot going.

From
https://github.com/behdad/harfbuzz/issues/139#issuecomment-163580783
2016-01-11 18:31:04 +00:00
Behdad Esfahbod
e8a27d7947 Don't build hb-fuzzer in "make", only "make check" 2016-01-07 22:52:16 +00:00