Commit Graph

1468 Commits

Author SHA1 Message Date
Behdad Esfahbod ed900ee9af [tests] Rename 2018-11-24 15:22:09 -05:00
Ebrahim Byagowi 3cc14e78ae
[test] Enable more of aots tests (#1408)
The ones commented out in this change should've be passed :/
a closer look is needed.
2018-11-24 20:49:21 +03:30
Ebrahim Byagowi 24887d1115
Add Adobe AOTS tests (#1395)
Annotated OpenType Specification or aots, https://github.com/adobe-type-tools/aots
provides a set of tests for OpenType specification, this change add those tests in addition
to modified version of their HarfBuzz test runner for generating harfbuzz project specific tests.
2018-11-24 20:07:24 +03:30
Behdad Esfahbod 1204a247a5 [fuzzing] Add tests for previous commit
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11526
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11522
2018-11-24 09:49:21 -05:00
David Corbett 018ba46e4d Don't canonicalize '@' to '-' in language tags
Fixes #1406.
2018-11-23 13:21:22 -05:00
Ebrahim Byagowi c9cc96c0cf
[aat] Update expectation 2018-11-23 19:58:56 +03:30
Ebrahim Byagowi 341851efe1
[aat] Add macOS specific tests (#1404) 2018-11-23 15:40:05 +03:30
Behdad Esfahbod 8280459e74
Merge pull request #1291 from harfbuzz/use-reordering
[use] Fix reordering
2018-11-22 22:39:12 -05:00
Behdad Esfahbod 2c8188bf59 [kerx] Make sure subtables are non-zero-length
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11400
2018-11-22 22:02:19 -05:00
Garret Rieger 8982830d3e [subset] add fuzzer testcase. 2018-11-22 21:30:01 -05:00
David Corbett 264439c6c3 Test U+111C9 SHARADA SANDHI MARK 2018-11-21 16:33:45 -05:00
Behdad Esfahbod f48bb9a393 [var] Deprecated axis enumeration API and add new version
New version has axis flags.

New API:
+hb_ot_var_axis_info_t
+hb_ot_var_find_axis_info()
+hb_ot_var_get_axis_infos()

Deprecated API:
-HB_OT_VAR_NO_AXIS_INDEX
-hb_ot_var_axis_t
-hb_ot_var_find_axis()
-hb_ot_var_get_axes()
2018-11-20 20:46:14 -05:00
Michiharu Ariza 1ecbf4d3e3 Merge branch 'master' into cff-subset 2018-11-20 17:19:05 -08:00
Behdad Esfahbod 831ba74382 Fix Codacy "issues" 2018-11-20 01:16:08 -05:00
David Corbett 3c7792ca32 [use] Fix reordering
Fixes #1235.
2018-11-19 16:49:40 -05:00
Michiharu Ariza 515f1a1614 Merge branch 'master' into cff-subset 2018-11-16 17:38:47 -08:00
Behdad Esfahbod cff4c6087f Fix vertical fallback space sign
Ouch!

Follow-up to cf203af8a3

Fixes https://github.com/harfbuzz/harfbuzz/issues/1343
2018-11-16 15:04:41 -08:00
Michiharu Ariza b67a7c731f drop dotsection as hint along with test case 2018-11-16 12:28:24 -08:00
Michiharu Ariza 072c7aba92 use 2-byte offset instead of 4-byte for local subrs
more than enough since local subrs immediately follow its corresponding private dict, as the result 2-byte redunction for each font dict with local subrs
updated api test expected subset fonts accordingly
2018-11-15 15:41:46 -08:00
Michiharu Ariza 892ab37e7c Merge branch 'master' into cff-subset 2018-11-14 13:54:07 -08:00
Michiharu Ariza 3787c07856 Implemented seac for extents & subset along with API tests 2018-11-14 13:38:03 -08:00
punchcutter e543e1a085 Add Grantha test 2018-11-13 20:44:27 -08:00
Behdad Esfahbod 5212cd8af2 [fuzzing] Add new test 2018-11-12 14:25:18 -05:00
Behdad Esfahbod d6666b3866 [fuzzing] Remove limited-edition build of libraries
Use normal, production, shared libraries.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1237
2018-11-12 13:21:14 -05:00
Behdad Esfahbod a549aa14a0 [kerx] Protect against stack underflow
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11367
2018-11-12 13:02:39 -05:00
Michiharu Ariza 41a8bc7fd9 Merge branch 'master' into cff-subset 2018-11-12 08:49:00 -08:00
Michiharu Ariza 0dfa584cb4 changed Adobe company name 2018-11-12 08:47:07 -08:00
Behdad Esfahbod 752bd8a192 [kerx] Fix Format1 tupleKern sanitization
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11312
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11305
2018-11-10 21:13:32 -05:00
Behdad Esfahbod f9e0552deb [fuzzing] Make "make lib" faster and more usable 2018-11-10 21:06:56 -05:00
Michiharu Ariza fb2a037f54 Merge branch 'master' into cff-subset 2018-11-10 16:23:11 -08:00
Behdad Esfahbod 3a9fa8c026 [qsort] Fix O(N^2) behavior if all array elements are the same
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11327

Reported as https://github.com/noporpoise/sort_r/issues/7
2018-11-10 01:58:26 -05:00
Behdad Esfahbod f51bb6ee7b
Merge pull request #1358 from ebraminio/lcar
Hook AAT's lcar to _get_ligature_carets
2018-11-08 14:42:40 -05:00
Ebrahim Byagowi b986fead0a Hook AAT's lcar to _get_ligature_carets 2018-11-08 23:06:26 +03:30
Behdad Esfahbod 9fae611740 [test/text-rendering-tests] Update from upstream 2018-11-08 12:26:38 -05:00
Michiharu Ariza 26c291aaa0 Merge branch 'master' into cff-subset 2018-11-08 09:06:49 -08:00
Behdad Esfahbod 0bf76154f1 [fuzzing] Take whatever text we can 2018-11-07 19:12:27 -05:00
Michiharu Ariza 0996c0ff62 implented no-desubroutinize with CFF2 along with API test
replaced AdobeVFPrototype.abc.otf with a hinted (maually) & subroutinized copy
replaced expected results as well
2018-11-07 14:48:37 -08:00
Michiharu Ariza 43ee0e4d00 Merge branch 'master' into cff-subset 2018-11-06 09:57:17 -08:00
Khaled Hosny 5c3ccbc634 Another missing backlash
Did this ever work?
2018-11-06 18:10:56 +02:00
Khaled Hosny d29602b962 Add missing backslash 2018-11-06 18:07:47 +02:00
Behdad Esfahbod 8790b2740a [fuzzing] Fix test 2018-11-06 10:24:54 -05:00
Behdad Esfahbod 3af0a7edd0 [fuzzing] Add make check-valgrind 2018-11-06 10:20:57 -05:00
Behdad Esfahbod b062378ce6 [test] Minor 2018-11-06 10:20:36 -05:00
Ebrahim Byagowi b6112e5ea4
[test] Fix -Weverything bot complain 2018-11-06 11:42:47 +03:30
Ebrahim Byagowi a49df419f0
[test] Test hb_ot_name_{list_names,get_utf8} on test-ot-name 2018-11-06 11:26:30 +03:30
Behdad Esfahbod 6482fda519 [fuzzing] Fuzz glyph-id etc in test-ot-face 2018-11-05 15:03:18 -05:00
Michiharu Ariza 1682d1bbec Merge branch 'master' into cff-subset 2018-11-04 13:25:41 -08:00
Michiharu Ariza d8fadec098 added desubroutinize full font test profiles & expected fonts
modified subset_test_suite.py to apply desubroutinize profiles to CFF only (not to TT)
2018-11-04 13:12:20 -08:00
Behdad Esfahbod bce437cf0b [test] Call test-ot-face.c test from hb-shape-fuzzer
Should increase coverage...
2018-11-04 02:53:25 -05:00
Behdad Esfahbod 777c22425c [test] More funcs in test-ot-face 2018-11-04 02:40:20 -05:00
Behdad Esfahbod 9779e602ed [test] Add test for empty face 2018-11-03 20:50:56 -04:00
Ebrahim Byagowi b8a78ce201
[BASE] Improvements (#1347) 2018-11-03 22:28:30 +03:30
Ebrahim Byagowi c560ca9251
[fuzz] A new testcase 2018-11-03 13:03:36 +03:30
Michiharu Ariza 34b06d994a fixed FDSelect size calcluation 2018-11-02 16:40:20 -07:00
Michiharu Ariza 481fdfdc23 Merge branch 'cff-subset' of https://github.com/harfbuzz/harfbuzz into cff-subset 2018-11-02 15:28:09 -07:00
Michiharu Ariza 1bc710a8c9 added CFF1 desubr api test cases & bug fixes 2018-11-02 15:28:01 -07:00
Michiharu Ariza e600e5440b Merge branch 'master' into cff-subset 2018-11-01 16:13:56 -07:00
Ebrahim Byagowi cad90be4ea
[test] minor 2018-11-01 13:39:06 +03:30
Behdad Esfahbod f928931948 [test] Minor 2018-10-31 18:27:09 -07:00
Behdad Esfahbod cf203af8a3 Implement space fallback in vertical direction
Fixes https://github.com/harfbuzz/harfbuzz/issues/1343
2018-10-31 18:27:09 -07:00
Behdad Esfahbod 69297bb216 [fuzzing] Call hb-ot-color API 2018-10-30 19:07:38 -07:00
Behdad Esfahbod a7aba99baa [name] Rename hb_name_id_t to hb_ot_name_id_t
https://github.com/harfbuzz/harfbuzz/pull/1254
2018-10-30 14:04:09 -07:00
Khaled Hosny 0af3d176a6 [sbix] Fix memory leak in early return
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11210
2018-10-30 17:05:28 +02:00
Behdad Esfahbod 56738429d6 [test] Fix warnings 2018-10-30 01:33:22 -07:00
Behdad Esfahbod 64e41d2c89 [test] Fix Python3 2018-10-30 01:08:34 -07:00
Behdad Esfahbod 422debb830 [test/shaping] Spawn one hb-shape per test file
Speeds up runnings in-house tests from over 20s to 2s.
2018-10-30 00:52:22 -07:00
Behdad Esfahbod ad3cededdd [fuzzing] Make test runners less verbose 2018-10-29 22:53:16 -07:00
Ebrahim Byagowi 7170e35096
Rename deprecated symbols list file name and clean it up (#1328) 2018-10-29 13:11:01 +03:30
Behdad Esfahbod 0aa90271fd [tests] Fix for recent rounding change in CBDT 2018-10-28 23:03:20 -07:00
Ebrahim Byagowi c929ccfcea [ot-color/png] Consider strike ppem on scaling 2018-10-28 22:40:40 -07:00
Ebrahim Byagowi 307d61867a [ot-color] Make PNGHeader reading actually work 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi 632e9af862 [ot-color] Implement PNGHeader and test it, it doesn't work however 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi 3d4c1f6a41 [ot-color] Apply Behdad reviews 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi 8ef0d2ef92 [ot-color] Apply Behdad comment 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi dbd419bede [ot-color] Add public API for CBDT/sbix/SVG color Emojis 2018-10-28 18:33:10 -07:00
Ebrahim Byagowi 524e854c15
Merge pull request #1318 from ebraminio/png
Add a non-hooked _png _svg get emoji blob
2018-10-27 15:04:43 +03:30
Ebrahim Byagowi 8180c37df0 [ot-color] Remove _png and _svg public APIs 2018-10-27 14:54:08 +03:30
Ebrahim Byagowi 9435fb24da [ot-color/png] Implement CBDT part 2018-10-27 13:47:11 +03:30
Ebrahim Byagowi 265ad408ca [ot-color/png] Implement sbix part 2018-10-27 10:43:46 +03:30
Behdad Esfahbod 12058e44d1 [fuzzing] Add more test 2018-10-26 21:22:26 -07:00
Ebrahim Byagowi 143ffe65aa
[fuzz] Add a new testcase 2018-10-26 12:14:30 +03:30
Ebrahim Byagowi 30f18039b3 [svg] Rename _svg_create_blob to _glyph_reference_blob_svg 2018-10-26 09:34:34 +03:30
Ebrahim Byagowi 5cb1ce8681 [svg] Collapse SVGDocumentIndex into SVG 2018-10-26 09:31:01 +03:30
Ebrahim Byagowi 4ceabb8c21 [svg] Hide start_glyph and end_glyph from API 2018-10-26 09:16:44 +03:30
Ebrahim Byagowi c7a4e3dfb5 [svg] Add public API
* hb_ot_color_has_svg
* hb_ot_color_glyph_svg_create_blob
2018-10-26 09:16:44 +03:30
Behdad Esfahbod e3ceb2dde3 Fix again 2018-10-25 14:30:36 -07:00
Michiharu Ariza be746009e9 dropped support of legacy CFF CharString ops
along with test & font
2018-10-25 13:40:40 -07:00
Behdad Esfahbod 1cfe702872 Fixup 2018-10-25 13:37:08 -07:00
Behdad Esfahbod 5739c876d0 [test] Rename some fonts
If we have duplicae font files in different directories, that would
break the oss-fuzz build currently.  So, rename some to avoid
name class with text-rendering-test.  Would be better to find
another solution.
2018-10-25 13:23:33 -07:00
Michiharu Ariza 2ebf360102 Merge branch 'master' into cff-subset 2018-10-25 13:05:06 -07:00
Behdad Esfahbod ba502dea1e [morx] Fix cluster-merging when ligating
Only merge when actual ligature happened.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1305
2018-10-23 16:50:31 -07:00
Michiharu Ariza e1241636d6 Merge branch 'master' into cff-subset 2018-10-23 11:25:51 -07:00
Behdad Esfahbod cf92d6579e [trak] Allow disabling tracking for ranges of text
Fixes https://github.com/harfbuzz/harfbuzz/issues/1303
2018-10-23 03:10:56 -07:00
Ebrahim Byagowi 22ecefd88e Make tracking optout possible using 'trak' ot feature
So '--features=-trak' or 'font-feature-settings: 'trak' 0;' can prevent
applying of tracking if used.
2018-10-23 02:57:55 -07:00
David Corbett 205737acdc [use] Prohibit visually ambiguous vowel sequences 2018-10-23 02:25:08 -07:00
Behdad Esfahbod 48ed598a35 [VORG] Hook up to hb-ot-font's v_origin
Fixes https://github.com/harfbuzz/harfbuzz/issues/544

Test added with NotoSansCJK, eg. with U+FF38.
2018-10-23 02:21:27 -07:00
Behdad Esfahbod 1bfb96a9c8 [test/text-rendering-tests] Update from upstream 2018-10-22 23:41:47 -07:00
Michiharu Ariza ba055a8d53 fix build attempt ^3 2018-10-22 16:20:04 -07:00
Michiharu Ariza b11032afae fix build attempt ^2 2018-10-22 15:52:37 -07:00
Michiharu Ariza 3d3df5575c fix build attempt 2018-10-22 15:23:39 -07:00
Behdad Esfahbod 7997144b5f [color] Revamp palette API 2018-10-22 14:22:31 -07:00
Behdad Esfahbod 1de17bdb80 [colr] Add hb_ot_color_layer_t
We never return parallel arrays from functions.  That's inconvenient
and hard to bind.
2018-10-22 14:21:23 -07:00
Behdad Esfahbod 3b3668acc8 [color] Rename / reorder a bit
Implement has_data() for realz.
2018-10-22 14:21:23 -07:00
Michiharu Ariza 570b77f7d2 Merge branch 'master' into cff-subset 2018-10-22 13:06:47 -07:00
Behdad Esfahbod 9085a72deb [cpal] Touch up palette flags 2018-10-22 13:03:29 -07:00
Ebrahim Byagowi d440c8d3fb
Add chromacheck Emoji test fonts and minor preparations (#1294) 2018-10-22 22:07:59 +03:30
Michiharu Ariza 857c58279e Merge branch 'master' into cff-subset 2018-10-22 09:57:20 -07:00
Ebrahim Byagowi 44f79b4bf8 Remove _palette_entry_count as can be done with _palette_colors 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi 6795dcfc08 [test] Test hb_ot_color_has_{colr,cpal}_data 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi b8ee3a0ec8 [CPAL] Add palette entry and enable palette flag API 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi d4261b4bb6 Add API test for hb_ot_color_get_color_layers 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi 456978d408 Address COLR/CPAL reviews and revive cpal_v1 tests 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi e9d798dc12 [test] Use hb_test_open_font_file 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi e8a6f5b803 Add three macros for separating color channels 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi 0e33467e52 Make ot-color tests pass 2018-10-22 10:17:31 +02:00
Khaled Hosny d4e928b142 [color] Minimal API for COLR/CPAL 2018-10-22 10:17:31 +02:00
Ebrahim Byagowi 0229eaea29
[fuzz] Add a found hb-subset testcase 2018-10-22 10:51:37 +03:30
Ebrahim Byagowi 9b3461574f
[fuzz] Add more testcases
Fixed already but better to have anyway.

One didn't have minimized but it was only 164 B, so
2018-10-21 11:37:38 +03:30
Ebrahim Byagowi c110878cb6 [test] Unify font file opening across the tests 2018-10-21 11:27:05 +03:30
Behdad Esfahbod 217a3728b4 [fuzzing] Add more font 2018-10-20 20:39:56 -07:00
Ebrahim Byagowi 8931bc4a6b
[test] Fix -Wunused-parameter on test-font.c 2018-10-20 23:23:32 +03:30
Behdad Esfahbod f11c557662 [test] Fix leak 2018-10-20 12:20:57 -07:00
Ebrahim Byagowi d39acc5a95
[fuzzing] Add new testcases 2018-10-20 12:20:30 +03:30
Ebrahim Byagowi 964ae32aac
Run valgrind on run-shape-fuzzer only when RUN_VALGRIND is set (#1285) 2018-10-20 07:39:18 +03:30
Behdad Esfahbod f70f994112 Minor 2018-10-19 20:00:36 -07:00
Behdad Esfahbod 4e09fb8f7a Oops. Fix build 2018-10-19 19:59:41 -07:00
Behdad Esfahbod 9e288d29d8 [test-map] Cosmetic 2018-10-19 19:47:27 -07:00
Behdad Esfahbod 77d5c3df07 [font] Add failing test amongst font-func parallels infinite-looping
Reported by Nona while updating Android to HarfBuzz 2.0.0.
2018-10-19 19:01:01 -07:00
Behdad Esfahbod 257ded1f9e [trak] Fix test for previous fix 2018-10-19 11:20:14 -07:00
Ebrahim Byagowi 114f66dda6 Fix hb_map_is_empty logic
This needs reviewing
2018-10-19 20:23:36 +03:30
Ebrahim Byagowi 9df2fb1611 Add API tests for hb_map_t 2018-10-19 20:23:36 +03:30
Ebrahim Byagowi 8a5eba7110 [test] cosmetic, use g_assert_cmpint 2018-10-19 20:23:36 +03:30
Ebrahim Byagowi c6eb5e852c Don't report deprecated symbols as unused symbols 2018-10-19 20:23:36 +03:30
Ebrahim Byagowi 34f357c78a Add test for hb_set_del 2018-10-19 20:23:36 +03:30
Ebrahim Byagowi b7cef8cb1d Enable valgrind and dedicate a bot to it 2018-10-19 09:39:36 +03:30
Ebrahim Byagowi bccd09d6c7 Minor, tweak spaces on hb-shape-fuzzer.cc 2018-10-19 09:39:36 +03:30
Ebrahim Byagowi fbf665b307
[fuzz] Add more found cases (#1275) 2018-10-19 08:09:53 +03:30
Michiharu Ariza 51fba41cc9 Merge branch 'master' into cff-subset 2018-10-18 13:08:42 -07:00
Michiharu Ariza e555ed961e added flex extents test 2018-10-18 13:04:41 -07:00
Behdad Esfahbod 535ca678bf [test] Don't use newer glib API 2018-10-18 05:58:04 -07:00
Behdad Esfahbod b9478e28ac Revert "[test] Remove not-fixed yet testcases (#1268)"
This reverts commit 191eef823f.
2018-10-17 22:11:49 -07:00
Ebrahim Byagowi 191eef823f
[test] Remove not-fixed yet testcases (#1268)
I added them but now that I think, it is a bad idea to have them as
fuzzing bots will find good seeds to tweak in order to find easy new
testcases which causes duplicated issues.
2018-10-18 08:04:18 +03:30
Ebrahim Byagowi 392e1f4ddd
[test/shape-fuzzer] fail on timeout and ubsan errors (#1267) 2018-10-18 07:42:20 +03:30
Ebrahim Byagowi 751c10e55e
[fuzz] Add more new testcases 2018-10-18 06:36:48 +03:30
Ebrahim Byagowi fd282eb328
[fuzz] Add a new testcase 2018-10-18 06:33:39 +03:30
Behdad Esfahbod 3341c7fbfb [fuzzing] Move fuzzing fonts from api/ here 2018-10-17 15:04:35 -07:00
Michiharu Ariza 1f34388e8b Merge branch 'master' into cff-subset 2018-10-17 09:34:48 -07:00
Behdad Esfahbod 5842756b13 [fuzzing] Delete blink fuzzed data
These are text, not font.
2018-10-16 18:28:55 -07:00
Behdad Esfahbod ba42651608 Fix indent 2018-10-16 17:35:46 -07:00
Behdad Esfahbod c0c190c16a [fuzzing] Run tests against fuzzing fonts
Some disable.
2018-10-16 16:39:55 -07:00
Behdad Esfahbod 7b37705fb5 [fuzzing] Rename 2018-10-16 16:33:06 -07:00
Behdad Esfahbod 3676c685d4 [fuzzing] Move rest of fuzzing tests here 2018-10-16 16:32:26 -07:00
Behdad Esfahbod 1487173dcf [fuzzing] Delete duplicate fonts 2018-10-16 16:30:38 -07:00
Behdad Esfahbod 49c041f7c5 Minor 2018-10-16 16:25:24 -07:00
Behdad Esfahbod 1147ce2392 [fuzzing] Add more tests 2018-10-16 16:18:32 -07:00
Behdad Esfahbod 1aa353e4fc Fix tests 2018-10-16 15:26:51 -07:00
Behdad Esfahbod 98d4ad02b9 [fuzzing] One more 2018-10-16 15:17:31 -07:00
Behdad Esfahbod e6f267c3df [fuzzing] Add more clusterfuzz tests I had lying around 2018-10-16 15:16:20 -07:00
Ebrahim Byagowi e53206271d
Add all the fonts found by fuzzers to the repo (#1258) 2018-10-17 01:42:04 +03:30
Behdad Esfahbod 2137582c96 [morx] Reword ligation
Still fails MORX-41.  Am talking to Sascha to better understand what CoreText
is doing.
2018-10-16 14:46:07 -07:00
Behdad Esfahbod c46d42f8f2 [test/text-rendering-tests] Update from upstream 2018-10-16 13:39:54 -07:00
Ebrahim Byagowi 61510b63c1
[test] Minor cleanup in test-multithread and test-ot-name (#1256) 2018-10-16 14:17:21 +03:30
Michiharu Ariza 9ade3e7bb8 Merge branch 'master' into cff-subset 2018-10-15 14:03:23 -07:00
Behdad Esfahbod 8dc6296818 [ot-font] Implement TrueType v_origin
Fixes https://github.com/harfbuzz/harfbuzz/issues/537
2018-10-15 01:09:05 -07:00
Michiharu Ariza db0d83ddc7 Merge branch 'master' into cff-subset 2018-10-13 17:25:38 -07:00
Michiharu Ariza 9228db06f4 added CFF1 Expert Encoding subset test & bug fixes 2018-10-13 17:25:09 -07:00
Behdad Esfahbod c0a6814b49 Touch up new API
New API:
+hb_ot_layout_feature_get_name_ids()
+hb_ot_layout_feature_get_characters()
2018-10-12 16:06:39 -04:00
Ebrahim Byagowi dc49bd8d81 Add two APIs for getting stylistic set labels
* hb_ot_layout_feature_get_characters
* hb_ot_layout_feature_get_name_ids

However HarfBuzz currently doesn't expose an API for retrieving the actual
information associated with NameId from the `name` table and that should be
done separately.
2018-10-12 16:06:39 -04:00
Michiharu Ariza fc0153a1d4 Merge branch 'master' into cff-subset 2018-10-12 12:16:50 -07:00
Behdad Esfahbod bf8469be9a Attach CursivePositioning backwards, not forward
This is how Uniscribe does it.  So, adjust.  This is only relevant
to fonts that apply cursive positioning from a contextual lookup.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1181
2018-10-11 20:45:40 -04:00
Behdad Esfahbod bdb53ca24a [myanmar] Implement Zawgyi shaper
Enabled if script tag 'Qaag' is passed to HarfBuzz.  Disables mark
advance-zeroing and fallback mark-positioning.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1162
2018-10-11 20:20:29 -04:00
Behdad Esfahbod 788e147855 [test] Add test for USE indic3 2018-10-11 19:24:52 -04:00
Behdad Esfahbod a11972787a Minor 2018-10-11 19:23:36 -04:00
David Corbett 28d091d045 Parse Indic3 tags 2018-10-11 17:44:13 -04:00
Behdad Esfahbod 211cd3691b Remove remains of get-codepoint-fuzzer 2018-10-11 17:31:29 -04:00
Behdad Esfahbod 120ed02725 [fuzzing] Fold get-codepoints-fuzzer into subset-fuzzer 2018-10-11 17:08:12 -04:00
Behdad Esfahbod 1d995a340b Minor 2018-10-11 15:42:54 -04:00
Behdad Esfahbod 57b05210b1 [test] Fix use of deprecated symbols 2018-10-11 15:03:21 -04:00
Michiharu Ariza ca37172ee3 fixed leak 2018-10-11 11:55:55 -07:00
David Corbett 7f1fbfe2e3 Add hb_ot_tags_to_script_and_language 2018-10-11 13:54:28 -04:00
David Corbett 65d01f7755 Test deprecated tag fallback in a font
The font supports the deprecated tag 'DHV ' instead of 'DIV '. dv is
mapped to 'DIV ' and 'DHV ', in that order. The test specifies
`--language=dv`, demonstrating that if a font does not support the first
OpenType tag mapped to a BCP 47 tag, it will fall back to the next tag.
2018-10-11 13:54:28 -04:00
David Corbett 7c7cb2a989 Match extlang subtags
If the second subtag of a BCP 47 tag is three letters long, it denotes
an extended language. The tag converter ignores the language subtag and
uses the extended language instead.

There are some grandfathered exceptions, which are handled earlier.
2018-10-11 13:54:28 -04:00
David Corbett 2f1f961cc0 Autogenerate the BCP 47 to OpenType mappings
The new script, gen-tag-table.py, generates `ot_languages` automatically
from the [OpenType language system tag registry][ot] and the [IANA
Language Subtag Registry][bcp47] with some manual modifications. If an
OpenType tag maps to a BCP 47 macrolanguage, all the macrolanguage's
individual languages are mapped to the same OpenType tag, except for
individual languages with their own OpenType mappings. Deprecated
BCP 47 tags are canonicalized.

[ot]: https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags
[bcp47]: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

Some OpenType tags correspond to multiple ISO 639 codes. The mapping
from ISO 639 codes lists OpenType tags in priority order, such that more
specific or more likely tags appear first.

Some OpenType tags have no corresponding ISO 639 code in the registry so
their mappings use BCP 47 subtags besides the language. For example, any
BCP 47 tag with a fonipa variant subtag is mapped to 'IPPH', and 'IPPH'
is mapped back to und-fonipa.

Other OpenType tags have no corresponding ISO 639 code because it is not
clear what they are for. HarfBuzz just ignores these tags.

One such ignored tag is 'ZHP ' (Chinese Phonetic). It probably means
zh-Latn. However, it is used in Microsoft JhengHei and Microsoft YaHei
with the script tag 'hani', implying that it is not a romanization
scheme after all. It would be simple enough to add this mapping to
gen-tag-table.py once a definitive mapping is determined.

The manual modifications are mainly either obvious mappings that the
OpenType registry omits or mappings for compatibility with previous
versions of HarfBuzz. Some of the old mappings were discarded, though,
for homophonous language names. For example, OpenType maps 'KUI ' to
kxu; previous versions of HarfBuzz also mapped it to kvd, because kvd
and kxu both happen to be called "Kui".

gen-tag-table.py also generates a function to convert multi-subtag tags
like el-polyton and zh-HK to OpenType tags, replacing `ot_languages_zh`
and the hard-coded list of special cases in `hb_ot_tags_from_language`.
It also generates a function to convert OpenType tags to BCP 47,
replacing the hard-coded list of special cases in
`hb_ot_tag_to_language`.
2018-10-11 13:54:28 -04:00
David Corbett 91067716f5 Refactor the selection of script and language tags
The old hb-ot-tag.cc functions, `hb_ot_tags_from_script` and
`hb_ot_tag_from_language`, are now wrappers around a new function:
`hb_ot_tags`. It converts a script and a language to arrays of script
tags and language tags. This will make it easier to add new script tags
to scripts, like 'dev3'. It also allows for language fallback chains;
nothing produces more than one language yet though.

Where the old functions return the default tags 'DFLT' and 'dflt',
`hb_ot_tags` returns an empty array. The caller is responsible for
using the default tag in that case.

The new function also adds a new private use subtag syntax for script
overrides: "x-hbscabcd" requests a script tag of 'abcd'.

The old hb-ot-layout.cc functions,`hb_ot_layout_table_choose_script` and
`hb_ot_layout_script_find_language` are now wrappers around the new
functions `hb_ot_layout_table_select_script` and
`hb_ot_layout_script_select_language`. They are essentially the same as
the old ones plus a tag count parameter.

Closes #495.
2018-10-11 13:54:28 -04:00
Michiharu Ariza ce6639cd27 Merge branch 'master' into cff-subset 2018-10-11 10:53:48 -07:00
Michiharu Ariza a6b6faf2b8 Replaced CFF1 J subset font for better coverage
in api test-ot-extents-cff
2018-10-11 10:53:44 -07:00
Behdad Esfahbod 100e95f48e [trak] Add tests 2018-10-11 11:30:45 -04:00
Michiharu Ariza b5aa5dbb11 Merge branch 'master' into cff-subset 2018-10-10 18:36:35 -07:00
Michiharu Ariza af61c3b10f added vsindex test & fixed process_vsindex 2018-10-10 18:35:12 -07:00
Behdad Esfahbod 1e8fdd285f Remove HAVE_OT
We never tested compiling without it.  Just kill it.  We always build
our own shaper.
2018-10-10 16:32:35 -04:00
Michiharu Ariza c06a5dff0b Merge branch 'master' into cff-subset 2018-10-09 22:00:10 -07:00
Michiharu Ariza 83c5298f33 added cff1_legacyops.otf as test-ot-extents-cff test case
fixed roll operator bugs uncovered by the test
2018-10-09 21:59:36 -07:00
Michiharu Ariza 588518ea51 fixed test-ot-extents-cff failure on some platforms 2018-10-09 14:48:04 -07:00
Behdad Esfahbod be2f148da4 [ft] Use mutex to lock access to FT_Face
Makes our FT-backed hb_font_t safe to use from multiple threads.  Still,
the underlying FT_Face should NOT be used from other threads by client
or other libraries.

Maybe I add a lock()/unlock() public API ala PangoFT2 and cairo-ft.
Maybe not.
2018-10-09 16:24:50 -04:00
Behdad Esfahbod 9f79365c3b Fix warning
How come this one is not generated by clang everything bot?!

../../../test/api/test-multithread.c:37:26: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 static char *font_path = "fonts/Inconsolata-Regular.abc.ttf";
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../test/api/test-multithread.c:38:21: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
2018-10-09 14:36:25 -04:00
Michiharu Ariza f5f505b512 Merge branch 'master' into cff-subset 2018-10-09 10:10:35 -07:00
Chun-wei Fan 4035158de4 test/api/test-subset-*.c: Fix build on pre-C99
Ensure that we have the variables at the beginning of the block.  These
are the only fixes that we need for building HarfBuzz on older
compilers.
2018-10-09 09:43:36 -04:00
Behdad Esfahbod eb2be97f86 Port test off deprecated API 2018-10-09 07:48:52 -04:00
Behdad Esfahbod cc126f2817 Minor 2018-10-09 01:10:15 -04:00
Behdad Esfahbod a353c1768d Remove test for deprecated hb_set_invert() 2018-10-09 01:05:28 -04:00
Michiharu Ariza 8b349040e9 Merge branch 'master' into cff-subset 2018-10-08 21:46:23 -07:00
Behdad Esfahbod fc50916589 Remove deprecated decompose_compatibility stuff 2018-10-09 00:39:42 -04:00
Behdad Esfahbod eed737f672 Remove deprecated eastasian_width 2018-10-09 00:37:10 -04:00
Michiharu Ariza a90fd8b9fe Merge branch 'master' into cff-subset 2018-10-08 15:07:58 -07:00
Michiharu Ariza b51418f596 added CFF2 get_extents
added source hb-ot-cff2-table.cc
augmented VariationData to return scalars
misc bug fixes, renaming, cleanup
2018-10-08 15:05:36 -07:00
Behdad Esfahbod 9c1bb81f5c [test/text-rendering-tests] Update from upstream 2018-10-08 16:11:14 -04:00
Behdad Esfahbod 2a5cb37fdb Revert "[morx] Fix MORX-35"
This reverts commit f62f6e90ad.
2018-10-07 20:37:15 -04:00
Behdad Esfahbod f62f6e90ad [morx] Fix MORX-35
Fixes https://github.com/harfbuzz/harfbuzz/issues/1224
2018-10-07 18:52:48 -04:00
Behdad Esfahbod c07b91b812 [test/text-rendering-tests] Update from upstream 2018-10-07 18:00:14 -04:00
Behdad Esfahbod f92330b5e0 Minor 2018-10-07 17:51:50 +02:00
Michiharu Ariza 55942ad5c1 Merge branch 'master' into cff-subset 2018-10-06 14:49:44 -07:00
Ebrahim Byagowi e9abe33963
Use tempfile in run-tests as a fix for Windows CI fails (#1228) 2018-10-06 12:19:33 +03:30
Behdad Esfahbod 5a41cf6be6 [test/text-rendering-tests] Update from upstream 2018-10-05 18:09:12 +02:00
Michiharu Ariza 6238edbd8b added CFF glyph extents API test 2018-10-04 13:59:36 -07:00
Behdad Esfahbod 7b3ae5ffd2 More bot fixes 2018-10-04 16:36:42 +02:00
Behdad Esfahbod 0abce58139 [test] Choose 'ot' shaper specifically
Now that we added morx support, our OS X bot is running them through CoreText
and failing (with a DoS / infinite loop no less!).  Always run tests through
our own shaper.
2018-10-04 16:23:42 +02:00
Behdad Esfahbod 55468ca01b [test/text-rendering-tests] Update from upstream 2018-10-04 12:19:30 +02:00
Behdad Esfahbod 6ff8a8a10b Minor 2018-10-04 12:09:45 +02:00
Behdad Esfahbod 14ff3cbe0f Apply morx if there's no GSUB! 2018-10-04 11:34:21 +02:00
Michiharu Ariza 1aeaee9dfc fixed cff2 subset test data 2018-10-03 17:44:45 -07:00
Michiharu Ariza 8be5a9186b Merge branch 'master' into cff-subset 2018-10-03 17:06:18 -07:00
Behdad Esfahbod 81f5eb09ec Add emoji test for recent work 2018-10-03 21:32:52 +02:00
Behdad Esfahbod 03fb6dd4c7 Rewrite grapheme-formation in terms of new work
Also, don't attach ZWNJ to previous cluster.  Closer to Unicode graphemes.
2018-10-03 21:11:40 +02:00
Behdad Esfahbod 3f1c741b7a [test] Split a test 2018-10-03 21:11:40 +02:00
Ebrahim Byagowi 4146c00caa
[test] Use an in-repo font for test-multithread (#1218)
As Khaled's suggestion, hard-coded font paths was only for my own testing.
2018-10-03 21:26:58 +03:30
lantw44 7a1ab0464d Fix test-multithread build on FreeBSD (#1217)
Add the default font path used by FreeBSD ports.
2018-10-03 18:52:43 +03:30
Behdad Esfahbod df32eaae42 [indic] Disallow vowel mark combinations that spoof other vowel marks
Fixes https://github.com/harfbuzz/harfbuzz/issues/1019

New numbers:

BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707261 out of 707394 tests passed. 133 failed (0.0188014%)
GUJARATI: 366353 out of 366457 tests passed. 104 failed (0.0283799%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%)
MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42327 out of 42329 tests passed. 2 failed (0.00472489%)
SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)

Devanagari regressed because Uniscribe doesn't enforce the full set.

Tests added with the *-vowel-letters.txt files in tree and Noto fonts.
2018-10-03 15:53:28 +02:00
Behdad Esfahbod d3d0cbd278 Typo 2018-10-03 15:31:33 +02:00
Behdad Esfahbod 75114e01d2 [use] Add Halant_Or_Vowel_Modifier category
Fixes https://github.com/harfbuzz/harfbuzz/issues/1102
2018-10-03 12:30:23 +02:00
Michiharu Ariza 9cdd70b344 Merge branch 'master' into cff-subset 2018-10-02 13:43:21 -07:00
Ebrahim Byagowi 6353cc1f83
[circleci] Fix some of warnings from clang-everything bot (#1211)
* -Wshift-sign-overflow
* -Wmissing-prototypes
2018-10-02 21:39:19 +03:30
Behdad Esfahbod 9f1dee32fb [tests] Allow test-runner to ignore shaping output
Fixes https://github.com/harfbuzz/harfbuzz/issues/1212
2018-10-02 18:56:20 +02:00
Behdad Esfahbod d992982d23 [indic] Add some confusable sequences from Unicode Standard 2018-10-02 17:31:11 +02:00
Behdad Esfahbod 729f634728 Disable joiner-skipping when looking back for base to attach mark to
Fixes https://github.com/harfbuzz/harfbuzz/issues/1189
2018-10-02 14:41:31 +02:00
Ebrahim Byagowi bf5088b3dc
Minor, fix -Weverthing bot warnings (#1210) 2018-10-02 11:07:06 +03:30
Ebrahim Byagowi f72b748371
[circleci] Fix "msan" and "everything" bots (#1205) 2018-10-02 00:16:08 +03:30
Behdad Esfahbod ab4c37f73a [khmer] Add mark-ordering tests
Fixes https://github.com/harfbuzz/harfbuzz/issues/667
2018-10-01 19:35:48 +02:00
Michiharu Ariza 3dd43f0234 Merge branch 'master' into cff-subset 2018-10-01 10:22:06 -07:00
Behdad Esfahbod eb1e602877 [test] Try import unicodedata2 as unicodedata 2018-10-01 15:31:50 +02:00
Ebrahim Byagowi 0fa1edbd3b
[circleci] Couple of fixes (#1200)
* Raise error on warnings on -everything
* Enable fontconfig to two bots
* Fix msan bot now that all of its real complain are gone
2018-10-01 09:40:29 +03:30
Behdad Esfahbod dcfcb950b8 [test] Fix -Wunused-parameter warnings 2018-09-30 18:14:50 +02:00
Behdad Esfahbod be0b2ed316 More warning fixes 2018-09-30 18:02:04 +02:00
Ebrahim Byagowi cefdef0247
Minor on test-multithread, align the actual and expected results 2018-09-29 10:19:54 +03:30
Behdad Esfahbod c763b94401 [test-multithread] Disable FreeType funcs 2018-09-28 20:53:23 -04:00
Ebrahim Byagowi 7b68edf2ab
[tests] Don't try to get glyph names on failures
As it may cause a race unrelated to the issue actually happened
2018-09-28 20:53:48 +03:30
Behdad Esfahbod 33231a855f Fix pthread fail for real
Using a hack...
2018-09-28 11:06:49 -04:00
Behdad Esfahbod 8cb8209c91 Fix bot fails 2018-09-28 10:55:28 -04:00
Behdad Esfahbod 02bebe42c1 [test/text-rendering-tests] Update from upstream 2018-09-28 10:01:59 -04:00
Behdad Esfahbod 4cd342baea Fix ubsan bot 2018-09-28 09:47:45 -04:00
Behdad Esfahbod 7e6e094abd [test-multithread] Install ot funcs before filling ref buffer 2018-09-28 08:45:57 -04:00
Behdad Esfahbod 21fbee831e [test-multithread] Take num-threads and num-iters from command-line 2018-09-28 08:43:37 -04:00
Behdad Esfahbod 598be3bb38 Minor 2018-09-28 08:43:15 -04:00
Ebrahim Byagowi c09bf3d505
test-multithread, check the results on every iteration (#1194) 2018-09-28 16:13:01 +03:30
Ebrahim Byagowi dbc3070a15
Make test-multithread pass the tsan bot test (#1193) 2018-09-28 16:01:15 +03:30
Michiharu Ariza dac70f252a Added CFF1 J font subset to api test
Also fixed FDSelect3_4::get_fd
Fixed test_subset_cff1_strip_hints (wrong font names!)
2018-09-26 16:30:26 -07:00
Behdad Esfahbod d183b33c1d Rename test 2018-09-26 16:40:59 -04:00
Ebrahim Byagowi 39da1914b4
Test freetype funcs on test-multithread (#1187) 2018-09-26 23:32:45 +03:30
Ebrahim Byagowi e88009a93f
Minor, remove the no longer needed comment on test-multithread 2018-09-26 22:53:02 +03:30
Behdad Esfahbod 34d5a25953 Fix test-multithread and increase num_threads to 30
What were you thinking? ;)
2018-09-26 15:02:21 -04:00
Ebrahim Byagowi 8bb73dad7f
Add a multithreaded test (#1184) 2018-09-26 20:50:51 +03:30
Michiharu Ariza 258b456566 Added CFF1 & CFF2 api tests 2018-09-24 16:50:47 -07:00
Michiharu Ariza 0604bf2b38 Merge branch 'master' into cff-subset 2018-09-24 10:09:25 -07:00
Behdad Esfahbod d07f3111b4 Link API test programs with C++ linker
Needed to make ubsan work.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1174
2018-09-24 13:01:35 -04:00
Khaled Hosny b7f1bbc2f8 [test] Fix printing subprocess error messages
Decode the string as Python 3 returns bytes string, and also don’t
assume that it ends with a new line.
2018-09-22 17:20:06 +02:00
Ebrahim Byagowi 403019482b
Fix test-subset-* leak issues
See also https://github.com/harfbuzz/harfbuzz/pull/1169
2018-09-22 17:24:03 +03:30
Ebrahim Byagowi f6ebe1f4dc
Fix test-ot-math leak issue
See also https://github.com/harfbuzz/harfbuzz/pull/1169
2018-09-22 17:05:52 +03:30
Ebrahim Byagowi 669ac81ac5
Fix test-set leak issue
See also https://github.com/harfbuzz/harfbuzz/pull/1169
2018-09-22 16:49:23 +03:30
Ebrahim Byagowi ef9307fd22
Fix test-font leak issue
See also https://github.com/harfbuzz/harfbuzz/pull/1169
2018-09-22 16:45:31 +03:30
Michiharu Ariza 321e592333 Added desubroutinize option to generate-expected-outputs.py
Currently hb-subset always desubroutinizes CFF fonts.
Note that even with this option fonttools won't generate the expected subset CFF fonts. They were manually created & tweaked to match hb-subset output.
2018-09-20 10:31:06 -07:00
Michiharu Ariza 1377adc8a8 Added SourceHanSans-Regular for CFF subset test
Disabled FDSelect serialization to format 0 for compatibility with fonttools
2018-09-19 17:00:10 -07:00
Michiharu Ariza bf4eb2e4cf Added SourceSansPro-Regular along as CFF full-font test case
derived "expected" subset fonts from fonttools then manually tweaked further so they resemble hb-subset output
2018-09-18 15:53:37 -07:00
Behdad Esfahbod d5c509272f [dfont] Fix test expecatation and minor touch up
I have no way to authoritatively know, but looks like test font only has one
face.  So, adjust test expectation instead.
2018-09-11 17:18:21 +02:00
Ebrahim Byagowi 2b2ed1e536 [dfont] Add test 2018-09-11 16:47:21 +02:00
Behdad Esfahbod cfdea88475 [random] Switch to 32bit RNG 2018-09-11 10:57:48 +02:00
Behdad Esfahbod 80de4bcd26 Minor clean up of 'rand' patchset 2018-09-11 10:47:59 +02:00
David Corbett b545e27d88 Don't seed the RNG from the contents of the buffer 2018-09-11 10:47:59 +02:00
David Corbett 2de96e8468 Test 'rand' 2018-09-11 10:47:59 +02:00
Garret Rieger 21bf147054 [subset] Fix hdmx subsetted size calculation. 2018-09-05 19:31:55 -07:00
Behdad Esfahbod 93fe0faaee [subset] Clean up hb_subset_input_t API 2018-08-29 18:24:03 -07:00
Behdad Esfahbod f39166f0c0 [subset] Remove unused hb_subset_profile_t
We might reintroduce it later, but for now remove, as it was unused.
Some things that should have been in this object (drop_hints, etc)
are already in hb_subset_input_t.  So, for now, keep everything there.
2018-08-29 18:09:55 -07:00
Behdad Esfahbod 62fc54725a [ot-font] Fallback vertical advance to UPEM
Used to be ascent+descent.  Whatever. This is more convenient for
upcoming changes.
2018-08-25 23:15:52 -07:00
Behdad Esfahbod dae39c58fb [face] Introduce character-map API
New API:
+hb_face_collect_unicodes
+hb_face_collect_variation_selectors
+hb_face_collect_variation_unicodes
2018-08-25 22:44:39 -07:00
Behdad Esfahbod c77ae40852 Rename hb-*private.hh to hb-*.hh
Sorry for the noise, downstream custom builders.  Please adjust.
2018-08-25 22:36:36 -07:00
Behdad Esfahbod 1becabe06c [cmap] Use bsearch to find subtables 2018-08-25 15:37:56 -07:00
Behdad Esfahbod d60c465627 Rename get_all_codepoints() to collect_unicodes() 2018-08-25 08:48:42 -07:00
Garret Rieger 2bdd903c69 [subset] limit the max codepoint value to the unicode limit.
When collecting all codepoints in the cmap avoid using large amount of memory for fonts that declare coverage over all 32 bit integers.
2018-07-31 18:40:38 -07:00
Garret Rieger 7278d9df30 [subset] Add hb_ot_layout_collect_features to harfbuzz-sections.txt.
Add the fuzzer test case for feature collection timeout.
2018-07-31 18:26:09 -07:00
Behdad Esfahbod 92ba9905ca [indic] Allow double-halant in old-spec Devanagari
Fixes https://github.com/harfbuzz/harfbuzz/issues/1071
2018-07-31 15:19:32 -07:00
Behdad Esfahbod fe099a844b [test] Add Khmer tests, with NotoSansKhmer-Regular.ttf
Note that there's minor positioning differences, and ONE reordering
difference between what we get for these and what Uniscribe gets.
Probably same as what's described in commit message for
1a96cc825d
2018-07-31 14:20:31 -07:00
Behdad Esfahbod 2d6edc9008 [test] Add Khmer test texts from recent bugs 2018-07-31 13:56:55 -07:00
Behdad Esfahbod df26a32c8f [test] Move things around for shaper updates 2018-07-31 13:55:53 -07:00
Garret Rieger 5edf454aa6 [subset] During lookup collection remember the features we've already processed. 2018-07-27 17:29:00 -07:00
David Corbett 62fa7cd1cc Order Chakma split vowels in accordance with NFC
Fixes #1105.
2018-07-22 19:47:21 -07:00
Behdad Esfahbod 019d18e9ae Minor 2018-07-17 11:00:24 +02:00
Behdad Esfahbod 58cb4d9f73 Minor 2018-07-11 16:44:21 +02:00
Behdad Esfahbod 9940504e93 [indic] Adjust left-matra repositioning and Halant,ZWJ sequence
From the new code (first paragraph is from the OT Devanagari spec.):

  /*   o Reorder matras:
   *
   *     If a pre-base matra character had been reordered before applying basic
   *     features, the glyph can be moved closer to the main consonant based on
   *     whether half-forms had been formed. Actual position for the matra is
   *     defined as “after last standalone halant glyph, after initial matra
   *     position and before the main consonant”. If ZWJ or ZWNJ follow this
   *     halant, position is moved after it.
   *
   * IMPLEMENTATION NOTES:
   *
   * It looks like the last sentence is wrong.  Testing, with Windows 7 Uniscribe
   * and Devanagari shows that the behavior is best described as:
   *
   * "If ZWJ follows this halant, matra is NOT repositioned after this halant.
   *  If ZWNJ follows this halant, position is moved after it."
   *
   * Test case, with Adobe Devanagari or Nirmala UI:
   *
   *   U+091F,U+094D,U+200C,U+092F,U+093F
   *   (Matra moves to the middle, after ZWNJ.)
   *
   *   U+091F,U+094D,U+200D,U+092F,U+093F
   *   (Matra does NOT move, stays to the left.)

Fixes https://github.com/harfbuzz/harfbuzz/issues/1070

Test case added with Adobe Devanagari.
2018-07-03 14:34:38 +04:30
Garret Rieger 4f8753464a [subset] Add fuzzer test case that caused a timeout to the corpus. 2018-06-25 18:37:59 -06:00
Ebrahim Byagowi f57804a8a5
Resolve ttx absolute path before use (#1075) 2018-06-25 18:45:49 +04:30
Jonathan Kew a95cde15af [hb-set] Additional testcase for hb-set-intersect. 2018-06-12 01:16:42 -04:00
Garret Rieger fc246ec985 [subset] Move variable declaration out of loop. 2018-06-08 12:09:34 -06:00
Garret Rieger 197cb18b22 [subset] Add test cases for gsub closure in subsetting. 2018-06-08 12:09:34 -06:00
Garret Rieger 37eab27be3 [subset] Add fuzzing of gsub closure to hb-subset-fuzzer. 2018-06-08 12:09:34 -06:00
Behdad Esfahbod 11f1f4131b [set] Add is_subset
New API:
+hb_set_is_subset()
2018-06-06 16:47:13 -07:00
Behdad Esfahbod 4a115fe7fe [sinhala] Move reph to after post-consonants
Apparently this changed between Win 7 and Win 10.

Fixes https://github.com/harfbuzz/harfbuzz/issues/967

To be continued in https://github.com/harfbuzz/harfbuzz/issues/1044
2018-06-04 15:40:43 -07:00
Behdad Esfahbod 3e494caae3 [test] Fix record-test to use gids not glyph-names
as those might not match what FontTools think of the glyphs if font
does NOT have glyph names.
2018-06-04 15:38:05 -07:00
Garret Rieger a070dfd333 [subset] Have the subset fuzzer pull the text string to subset to from the end of the fuzzer provided data. 2018-06-01 17:32:02 -06:00
Behdad Esfahbod 2eb9bbd986 [test/text-rendering-tests] Update from upstream 2018-05-22 18:31:30 -07:00
Behdad Esfahbod 0644d92ef3
Merge pull request #1018 from googlefonts/cmap4
[subset] Add cmap format 4 subsetting.
2018-05-08 15:21:09 -07:00
Behdad Esfahbod f673cfbd64 Support scripts that are written both LTR and RTL
Right now only Old Italic is marked as such.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1000
2018-05-07 14:12:17 -07:00
Garret Rieger b0d7971be0 [subset] Updated expected files for japanese subset integration tests to include cmap4. 2018-05-04 11:20:03 -07:00
Garret Rieger 7947927317 [subset] Update expected files for subset integration tests to include cmap4. 2018-05-04 11:20:03 -07:00
Garret Rieger a8e7f9b958 [subset] Get cmap tests passing again. 2018-05-04 11:20:03 -07:00
Garret Rieger c817992f49 [subset] Write out a format 4, plat 0 encoding record to match fontTools. 2018-05-04 11:20:03 -07:00
violet-sippial 93b03119da [subset] Do not compare ttx progress output in the tests
Suppress progress messages of ttx. This avoids comparing this output to the reference file which lets the test fail.
2018-04-30 17:28:02 -07:00
Ebrahim Byagowi 9925030f19 Don't decompose Bengali Rra and Rha
Fixes #779 and follow up to b01d9b3d90
2018-04-26 13:54:09 -07:00
Ebrahim Byagowi ce17340b23 Add hb_blob_create_from_file, a new API (#926) 2018-04-20 07:59:06 +02:00
Garret Rieger 4fa1c6705a [subset] Check instruction offsets in glyph to ensure they are in bounds. 2018-04-19 17:19:38 -06:00
Garret Rieger 3c97614598 [subset] In subset fuzzer run through drop hints and keep hints pathways. 2018-04-19 17:19:38 -06:00
Garret Rieger 535fb23c02 [subset] Add integration tests for cmap breakge. 2018-04-19 12:51:51 -06:00
Garret Rieger e29c8e33f3 [subset] Add a test for previous cmap breakage. 2018-04-19 12:51:51 -06:00
Garret Rieger 1a309dcd72 [subset] Remove printf's from fuzzing targets. 2018-04-17 19:37:36 -06:00
Garret Rieger c02b40e58f [subset] add a fuzzer target for subset_get_all_codepoints method. (#987) 2018-04-17 16:21:22 +02:00
Garret Rieger 5dadbb0fa0 [subset] Add implementation of cmap format 12 codepoint listing. (#988) 2018-04-17 15:00:23 +02:00
Garret Rieger 21a181af2b [subset] sketch out support for a call that lists all codepoints present in a font. Implement support for it in format 4 cmap sub table. 2018-04-16 16:29:26 -06:00
Ebrahim Byagowi f24b0b9728 Update the links and revive the dead ones 2018-04-12 13:44:32 +04:30
Ebrahim Byagowi 26e0cbd834
Actual py3 compatibility making on gen-* scripts (#941) 2018-03-29 21:22:47 +04:30
Ebrahim Byagowi cab2c2c08c
Make more gen-* scripts py3 compatible (#940) 2018-03-29 12:48:47 +04:30
Garret Rieger 1c3372786c [subset] fix infinite loop bug in looping through tables for subsetting. 2018-03-27 13:47:42 -06:00
Garret Rieger 07851aae9d [subset] Couple of fixes for fuzzer discovered issues. (#924)
* [subset] sanitize individual DeviceRecord's as part of hdmx sanitization.

* [subset] Fix out of bounds read with non-two byte align glyphs.

* [subset] Just use size_device_record >= DeviceRecord::min_size.

* [subset] Add TODO.

* [subset] Re-order checks in hdmx sanitize.
2018-03-26 19:56:56 -07:00
Behdad Esfahbod 44b6c77c64 Try fixing linking again
Before 1.7.5, we were setting -fno-exceptions etc on CXXFLAGS. In 1.7.6
we set it as CPPFLAGS. Try fixing. Also, I'm fairly sure it's safe to
set these unconditionally.

Fixes https://github.com/harfbuzz/harfbuzz/issues/880 (or so I hope)
2018-03-26 14:26:45 -07:00
Garret Rieger 1396614040 [subset] don't use pointers returned from push after array has resized in hb-subset-glyf.cc 2018-03-20 19:47:36 -06:00
Garret Rieger 3531efdb4c [subset] Fixed out of bounds read when subsetting hdmx. 2018-03-20 19:47:36 -06:00
Garret Rieger e597436b99 [subset] Disable glyf accelerator_t methods if it didn't successfully init. 2018-03-20 19:47:36 -06:00
Garret Rieger 7251181b56 [subset] Fix infinite loop in there are more then 32 tables. 2018-03-20 19:47:36 -06:00
Garret Rieger 1a94804d35 [subset] Add a fix for segfault in hmtx/vmtx subsetting code. 2018-03-20 19:47:36 -06:00
Garret Rieger 31281d6a17 [subset] Add a test demonstrating a seg fault while subsetting hmtx. 2018-03-20 19:47:36 -06:00
Garret Rieger b5c7d6cffc [subset] Restore subset to hb-subset-fuzzer. 2018-03-19 16:06:17 -06:00
Garret Rieger 584693e0cb [subset] Test not linking libharfbuzz-subset-fuzzing into hb-subset-fuzzer. 2018-03-16 09:04:01 -07:00
Garret Rieger 3f9361fe7a [subset] Test hb-shape-fuzzer in run-subset-fuzzer-tests. 2018-03-16 09:04:01 -07:00
Garret Rieger ce368e0d05 [subset] make libharfbuzz-subset-fuzzing.la depend on lib target. 2018-03-16 09:04:01 -07:00
Garret Rieger 85a57029cd [subset] %d -> %zu 2018-03-16 09:04:01 -07:00
Garret Rieger 318eea5853 [subset] Add some more logging to hb-subset-fuzzer. 2018-03-16 09:04:01 -07:00
Garret Rieger 64bab8b3d0 [subset] Fix run-shape-fuzzer-tests.py. It was generating incorrect paths for input fonts. 2018-03-16 09:04:01 -07:00
Garret Rieger 6f9a584371 [subset] Add more verbose output for subset fuzzer test. 2018-03-16 09:04:01 -07:00
Garret Rieger 0ce0f87812 [subset] Rename hb-fuzzer -> hb-shape-fuzzer. 2018-03-16 09:04:01 -07:00
Garret Rieger 1e9bd6d5ff [subset] Add rub-subset-fuzzer-tests.py to dist files. 2018-03-16 09:04:01 -07:00
Garret Rieger 474afaafd9 [subset] Add a test runner for hb-subset-fuzzer and cmake build config. 2018-03-16 09:04:01 -07:00
Garret Rieger aa9612d35f [subset] Fix fuzzing build for hb-subset-fuzzer. 2018-03-16 09:04:01 -07:00
Garret Rieger b674fc1f9f [subset] Add missing destroy of subsetting result in subset fuzzer. 2018-03-16 09:04:01 -07:00
Garret Rieger 1beb08862e [subset] First pass at setting up a fuzzing program for hb-subset. 2018-03-16 09:04:01 -07:00
Behdad Esfahbod e6e2ee2b92 Remove extra stdbool includes
They are handled in our common header.
2018-03-15 09:05:22 -07:00
Chun-wei Fan 831d4a2dab test/api: Fix building subset tests
Include stdbool.h in hb-setset-test.h instead of in the individual
sources, if it is found; otherwise use a simplistic fallback for it if
it is not found.

Also declare variables at the top of the block, to build on pre-C99
compiliers.
2018-03-13 20:17:58 +08:00
Chun-wei Fan eda6a5ea80 CMake: Fix running tests on Windows
For the API tests, output the test programs at $(TOP_BUILDDIR) so that
the freshly-built DLLs will be available for the test programs.  For
those that are run through the Python wrapper scripts, use
${PYTHON_EXECUTABLE} instead of plain 'python' in case the Python
interpreter is not in the PATH.
2018-03-13 20:17:58 +08:00
Ebrahim Byagowi 9206762bbd
Make subset test runner compatible with py3
Fixes #873
2018-03-09 15:43:03 +03:30
Garret Rieger 8548fa1522 [subset] Drop cmap 12, platform 0 tables from Mplus1p expected files. 2018-03-08 13:44:04 -08:00
Garret Rieger 9b00b9a10d [subset] Fix deadlock waiting for process output in subset test runner. 2018-03-08 13:44:04 -08:00
Garret Rieger bfec28a7db [subset] add some extra logging to subset run-tests.py. 2018-03-08 13:44:04 -08:00
Garret Rieger c7d814eaa8 [subset] Add japanese font file to subset integration tests. 2018-03-08 13:44:04 -08:00
Garret Rieger ec47cd95ba [subset] Unit test to check that post subsetting drops glyph names. 2018-03-07 11:36:54 -08:00
Garret Rieger 362f282406 [subset] fix author. 2018-03-07 11:08:55 -08:00
Garret Rieger 89465cb1c7 [subset] s/hmetrics/vmetrics. 2018-03-07 10:29:15 -08:00
Garret Rieger 91867cda6a [subset] cleanup. 2018-03-07 10:17:06 -08:00
Garret Rieger d9263f0230 [subset] add unit tests for vmtx subsetting. 2018-03-07 10:08:47 -08:00
Behdad Esfahbod 70ad69f244 [test] Fix build with older glib 2018-03-07 16:11:44 +01:00
Garret Rieger 9a6f9b4d42 [set] add a test demonstrating a bug in hb_set_union. 2018-03-07 09:25:53 +01:00
Behdad Esfahbod bcf578fefe [test] Add test suite for Brahmi Number Joiners
https://github.com/harfbuzz/harfbuzz/pull/660
2018-02-28 16:31:46 -08:00
Garret Rieger b4ba71ea7c [subset] In subset integration test pass output through ots-sanitize if present. 2018-02-28 16:16:17 -08:00
rsheeter 588a4e0f9b
Merge pull request #845 from googlefonts/drophints
[subset] drop hints from composites
2018-02-28 13:52:29 -08:00
Ebrahim Byagowi 772274625e
Merge pull request #841 from ebraminio/color
Support CPAL table
2018-02-28 12:05:49 +03:30
Ebrahim Byagowi 0eec33154a
[cmake] cleanup (#846) 2018-02-28 11:53:39 +03:30
Ebrahim Byagowi 5b9c234043 [CPAL] Refactor and address the reviews 2018-02-28 11:25:29 +03:30
Rod Sheeter ffcb5cbf71 [subset] update the test file for composite, fix an offset calculation 2018-02-27 20:17:04 -08:00
Rod Sheeter c8b230e437 Merge branch 'expand-tests' of github.com:googlefonts/harfbuzz into drophints 2018-02-27 17:25:32 -08:00
Garret Rieger 904dd7beea [subset] Add drop hinting profile to full-font.tests 2018-02-27 17:23:44 -08:00
Garret Rieger 70a1049b3f [subset] Add a drop hints profile to basics.tests 2018-02-27 17:23:44 -08:00
Garret Rieger 5241d7f4b9 [subset] apply subset profiles (flags) to the subset integration tests. 2018-02-27 17:23:44 -08:00
Garret Rieger a4aca190a9 [subset] add expected/full-font to dist files. 2018-02-27 17:23:44 -08:00
Garret Rieger d31ace3274 [subset] Add subset integration tests using the full roboto font. 2018-02-27 17:23:44 -08:00
Garret Rieger 33f4381314 [subset] Add some more variations of the basic test. 2018-02-27 17:23:43 -08:00
Rod Sheeter b3790a65a1 [subset] add a (failing for now) test for composite glyf hint dropping 2018-02-27 17:23:30 -08:00
Garret Rieger f14d1b64c2 [subset] when dropping hints, clear hint related fields in maxp. 2018-02-27 13:49:43 -08:00
Ebrahim Byagowi 101850f9e6 Merge with master 2018-02-27 20:17:25 +03:30
rsheeter 4a1d51ef15
Merge pull request #818 from googlefonts/drophints
[subset] Drop hints
2018-02-26 20:23:41 -08:00
Ebrahim Byagowi cd28eb9f5d
Add -Werror=unused-function check to Travis (#832) 2018-02-24 14:17:54 +03:30
Rod Sheeter 5267520e07 [subset] update hdmx test to create input explicitly 2018-02-23 18:36:22 -08:00
Rod Sheeter d78393b554 Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into drophints 2018-02-23 17:53:26 -08:00
Rod Sheeter 0ac8c0c1e6 [subset] zero glyf and loca memory before writing so pads are clean. Test just the part of maxp we care about 2018-02-23 17:43:00 -08:00
Rod Sheeter 9bd6d25254 [subset] clone trim logic from fonttools glyf handling 2018-02-23 13:05:58 -08:00
Garret Rieger b1ec821051
Merge pull request #823 from googlefonts/hdmx
[subset] Add hdmx subsetting.
2018-02-23 12:32:18 -07:00
Garret Rieger e15e41ef12 [subset] Remove commented code from run-tests.py. 2018-02-23 10:51:49 -08:00
Garret Rieger 2b84480343 [subset] Update expected files for subsetting integration test to not include cmap 4. 2018-02-23 10:51:49 -08:00
Garret Rieger a88504c601 [subset] Fix checksum clearning in subset test diff. Add an updated expected file (has cmap4 restored). 2018-02-23 10:51:49 -08:00
Garret Rieger 537698b601 [subset] Don't compare actual to itself in Fix test/subset/run-tests. Print a diff on failure. 2018-02-23 10:51:49 -08:00
Garret Rieger 15fc45bfed [subset] Add a unit test for hdmx subsetting. 2018-02-22 15:42:39 -08:00
Rod Sheeter 4f07437dfe [subset] sketch out dropping in-glyf instructions. Sometimes yields differnet size glyphs than fonttools, possibly due to padding not being corrected 2018-02-21 22:23:05 -08:00
Behdad Esfahbod 0bff6991de Ugh. Really fix build. 2018-02-19 11:51:25 -08:00
Ebrahim Byagowi b095ce59eb
Simplify hb-fuzzer output printing and fix ArchLinux bot 2018-02-19 11:58:20 +03:30
Behdad Esfahbod e2d2d81984 Limit how much work sanitize() can do
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6022
2018-02-18 17:28:53 -08:00
Behdad Esfahbod 246e280d88 [test] Add test for https://github.com/harfbuzz/harfbuzz/issues/740 2018-02-18 15:58:09 -08:00
Behdad Esfahbod 279c70a5b3
Merge pull request #796 from ebraminio/dev-run
Add a continuous builder using fswatch
2018-02-18 14:04:33 -08:00