Khaled Hosny
c3f590bb1e
[arabic] Support legacy PUA shaping
...
Support legacy pre-OpenType Windows 3.1-era fonts, by remapping PUA code
points in cmap table and letting our fallback shaper build the GSUB
table.
Uniscribe applies also mset-like substitution, but our fallback mark
positioning gives better results, so this is not implemented.
2022-06-19 10:42:05 -06:00
Garret Rieger
af74ab452f
[repack] always run the sort in repack.
...
This is needed to ensure virtual link ordering constraints are respected when repack is being called from fontTools. For subset usage, repack won't be called if the graph doesn't already overflow so this change doesn't cause any extra work.
2022-06-16 15:17:58 -06:00
Garret Rieger
311413f16b
[subset] Fix fuzzer issue.
...
Fixes https://oss-fuzz.com/testcase-detail/5693568490012672 . new_index should be set from new_index2 when the entry is present in the map.
2022-06-14 17:49:13 +01:00
Behdad Esfahbod
697287fbd7
[benchmark-shape,hb-shape-threads] Fix argument parsing order
...
After recent change.
2022-06-05 06:53:42 -06:00
Behdad Esfahbod
c03a31417b
[hb-shape-threads] Adjustments similar to benchmark-shape
...
Duplication sighz.
2022-06-05 02:31:21 -06:00
Behdad Esfahbod
d7c9cc34ae
Fix build
2022-06-05 02:30:11 -06:00
Behdad Esfahbod
b39b5f2f31
[name] Implement approximate language matching
...
Very rudimentary.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3354
2022-06-03 13:00:33 +01:00
Khaled Hosny
26d8066a41
[test/shape] Remove texts subdirectory
...
These texts were never hooked into the test suite, they however
represent a good collection of test texts, but one can always access
them from git history.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3123
2022-06-03 12:12:13 +01:00
Khaled Hosny
cd41557a96
[test/shape] Add PhagsPa tests
...
Adopted from texts/in-house/shaper-arabic/script-phags-pa/misc/misc.txt.
Using Noto Sans PhagsPa.
2022-06-03 12:12:13 +01:00
Khaled Hosny
1ab12e314a
[test/shape] Add Malayalam dot-reph tests
...
Adopted from texts/in-house/shaper-indic/script-malayalam/misc/dot-reph.txt.
Using Noto Sans Malayalam.
2022-06-03 12:12:13 +01:00
Khaled Hosny
6b2f3b5a99
[test/shape] Add Javanese tests
...
Adopted from texts/in-house/shaper-use/script-javanese/misc.txt.
I don’t know what font this was originally tested against, so I used
Noto Sans Javanese.
2022-06-03 12:12:13 +01:00
Khaled Hosny
c9c47dd8ad
[test/shape] Add Hebrew diacritics tests
...
Adopted from 406044986a
. Using
TaameyFrankCLM.ttf from the Mozilla issue.
2022-06-03 12:12:13 +01:00
Khaled Hosny
ef5d7febc8
[test/shape] Allow using hb-subset in record-test.sh
...
I think it is about time we use our own subsetter here. FontTools can
still be used.
2022-06-03 12:12:13 +01:00
Behdad Esfahbod
7aacdd05bd
[cplusplus] Test hashing shared_ptr / unique_ptr
2022-06-03 02:10:06 -06:00
Behdad Esfahbod
d7785a6da0
[cplusplus] Add unique_ptr
2022-06-02 12:43:04 -06:00
Behdad Esfahbod
e0f3cab246
[cplusplus] Add hb-cplusplus.hh
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/2152
2022-06-02 18:22:05 +01:00
Garret Rieger
98aaecd397
[subset] fix data race touching Crap() in cff subsetting.
2022-06-01 22:50:35 +01:00
Garret Rieger
d8d96b26e7
[threads-test] Add a threads test against hb-subset.
2022-06-01 22:50:35 +01:00
Garret Rieger
858570b1d9
[subset] add some additional 32bit var store cases.
...
Test the path where the 32 bit delta is not included.
2022-06-01 19:31:55 +01:00
Garret Rieger
209d6aa2b7
[subset] Update make files for 32bit_var_store test.
2022-06-01 19:31:55 +01:00
Garret Rieger
9c41bfe1a6
[subset] Add subset test of font with 32 bit delta in a var store.
2022-06-01 19:31:55 +01:00
Behdad Esfahbod
18cd15bede
Rename test
2022-06-01 07:55:59 -06:00
Behdad Esfahbod
62e803b361
[sbix] Limit glyph extents
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3557
2022-06-01 07:39:20 -06:00
Behdad Esfahbod
5a058ba158
[shape-fuzzer] Add commented out more buffer-verify option
...
Those currently fail and I've been unable to debug them.
I tried two, passing them to hb-shape doesn't reproduce the failure. :(
2022-06-01 04:53:50 -06:00
Behdad Esfahbod
189f65344a
[fuzz-shape] Verify shape output
...
Let the fuzzers loose on shape verify.
2022-06-01 04:53:50 -06:00
Behdad Esfahbod
33145a4b75
[test/shape] Pass --unsafe-to-concat to hb-shape
2022-05-31 06:36:08 -06:00
Behdad Esfahbod
b010962c3b
[test/hb-shape-threads] Silence hb_language_get_default() threadysafety issue
2022-05-30 05:34:25 -06:00
Behdad Esfahbod
4e59900ff5
[test/hb-shape-threads] Share font amongst threads
2022-05-30 05:21:55 -06:00
Behdad Esfahbod
18b0bd0f5f
[test/hb-shape-threads] Verify buffer
2022-05-30 05:12:12 -06:00
Behdad Esfahbod
484cc18732
[test-shape-threads] Set language
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
f371789b40
Sprinkle static around
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
4386626ee0
[test/threads] Fix dependency
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
e0544c481d
[test/threads] Fix distcheck
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
e3d5a117a3
[hb-shape-threads] Fix tsan race
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
33c990f0a9
Include cassert to fix bots
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
049af18684
[threads] Add suite to test
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
87453f63fa
[hb-shape-threads] Fix current-work-dir so test passes
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
f77faf8654
[hb-shape-threads] Allow overriding test parameters from cmdline
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
f0fba59969
[hb-shape-threads] Reduce num-iterations
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
e8a2436332
[threads] Add a condition_variable to test for all threads to be ready
2022-05-30 05:09:53 -06:00
Behdad Esfahbod
4d42a94c19
[threads] Add hb-shape-threads test
2022-05-30 05:09:53 -06:00
Garret Rieger
3472f73b79
[subset] also include no subset tables when guessing which tables are present.
2022-05-25 21:52:48 +00:00
Garret Rieger
9564d98739
[subset] fix subsetting of faces created via hb_face_create_for_tables.
...
Fixes #3609 .
2022-05-25 21:16:37 +00:00
Garret Rieger
4e11da054d
[repacker] update repacker test golden file.
...
Changed due to removal of Kahn sorting.
2022-05-20 09:41:18 -06:00
Behdad Esfahbod
25393288f0
[test] Fix compiler warning
2022-05-19 18:16:48 -06:00
Garret Rieger
52d59bf150
[perf] Make subset benchmark data driven.
2022-05-10 14:30:08 -06:00
Garret Rieger
8f9f0c494b
[subset] Enforce cmap12 group ordering constraints in collect_mapping.
...
Fixes fuzzer issue: https://oss-fuzz.com/testcase-detail/6365271012540416
2022-05-10 12:15:09 -06:00
Garret Rieger
b051f3fa83
[subset] Fix cpal subsetting when there are partial palette overlaps.
...
The existing code doesn't correctly handle the case where palettes partially overlap in the color record array. This changes the subsetting to only share entries in the color record array when palettes have the same first color index. Partially overlapping palettes will be converted to disjoint segments in the color record array.
Updates one of the color tests to use multiple palettes.
Also fixes fuzzer: https://oss-fuzz.com/testcase-detail/5568200165687296 .
2022-05-09 12:25:05 -06:00
Behdad Esfahbod
ca8a0f3ea3
[gvar] Protect against out-of-range access
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47281
Fixes https://oss-fuzz.com/testcase-detail/5508865908670464
2022-05-06 11:54:38 -06:00
Behdad Esfahbod
4de5352a3d
[test] Add test
...
From https://github.com/harfbuzz/harfbuzz/issues/3545
Dropped the CFF table.
2022-04-28 14:40:33 -06:00
Behdad Esfahbod
4d48fae4f2
Enforce Regional_Indicators native direction to LTR
...
And undo the morx direction reversal change introduced in
https://github.com/harfbuzz/harfbuzz/pull/3315
23159084b4
This fixes original bug https://github.com/harfbuzz/harfbuzz/issues/3314
And the reversion in morx code fixes regressions:
https://github.com/harfbuzz/harfbuzz/issues/3528
https://github.com/harfbuzz/harfbuzz/issues/3535
Supersedes:
https://github.com/harfbuzz/harfbuzz/pull/3529
2022-04-21 11:15:34 -06:00
Khaled Hosny
383c11d756
Add test for ligature-id allocation
...
Test for the fix in 7bdc20ec81
for the
regression from 43be5ba442
.
2022-04-19 16:33:57 +02:00
David Corbett
ecb3e7ec92
Enable indic-feature-order.tests
2022-03-28 18:02:36 -06:00
Behdad Esfahbod
044d7a06db
[indic-like] Add per-lookup per-syllable flag
...
This allows mix-and-matching per-syllable and other lookups.
In fact, removes the clear-syllables call completely.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3513
2022-03-28 17:39:54 -06:00
Behdad Esfahbod
18c0290cf5
Add test for previous commit
2022-03-28 13:24:16 -06:00
Behdad Esfahbod
a665e29ed7
[use] Avoid O(n^2) in the machine
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3502
2022-03-25 15:17:55 -06:00
Behdad Esfahbod
ccd9161bfd
[apply-lookup] Try to fix the logic for contextual lookups
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1611
Notably, this fixes Myles's AdditionFont:
https://litherum.blogspot.com/2019/03/addition-font.html
Test with AdditionFont, eg.:
$ util/hb-view AdditionFont.otf =1112112+1113134=
2022-03-25 15:14:40 -06:00
Behdad Esfahbod
a003fc0df1
Remove accidental files
2022-03-25 09:37:50 -06:00
Andrew John
0182988229
[set] Add call to export set contents to an array. ( #3500 )
...
[set] Add hb_set_next_many.
2022-03-25 09:36:44 -06:00
Khaled Hosny
f76ffa8374
[build] Change how platform shaper tests are enable
...
Run the tests unconditionally and skip if the shaper is not available.
This fixes distcheck (https://github.com/harfbuzz/harfbuzz/pull/3504 )
and shows SKIP for these tests instead of ignoring them.
2022-03-24 06:48:12 +02:00
Chun-wei Fan
eb44d64bc2
test: Dist the platform shaper test data
...
For builds from release tarballs, the tests fail in the DirectWrite and
Uniscribe tests when these platform shapers are enabled, since the data files
were not found in the source tree, when building with Meson at least.
Fix this by dist'ing the platform shaper test data files.
2022-03-24 11:25:50 +08:00
Behdad Esfahbod
36b8f97413
Update tests for recent changes
2022-03-21 21:50:04 -06:00
Behdad Esfahbod
03085132ba
[buffer] Fix out-buffer under memory-alloc failure
...
This was broken in July refactoring of the buffer, and exposed to
ReverseChainSingleSubstFormat1 in 3807061d63
Fixes:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38800
https://bugs.chromium.org/p/chromium/issues/detail?id=1303552
2022-03-21 18:09:06 -06:00
David Corbett
98b4852434
[indic] Test clearing syllables earlier
2022-03-21 15:42:08 -06:00
Andy John
ef588ea97b
Add option to insert a sorted arrays of values to sets.
2022-03-21 15:32:59 -06:00
Qunxin Liu
7cb002cb58
[subset] bug fix in prune_langsys
...
we should not cache visited langsys cause 2 different Record<Langsys>
could have different Tag while pointing to the same Langsys, a langsys
is redundant in Record<Langsys> A does not mean it's redundant in Record
B. Same thing for visited_script.
Also adding the number of features in the LangSys's feature list to the
visited langsys count so it's more accurate.
Plus some improvement in langsys compare()
2022-03-16 13:08:13 -06:00
David Corbett
49fb8f9072
[USE] Treat visible viramas like dependent vowels
2022-03-13 14:45:27 -06:00
Qunxin Liu
a35757c6bc
[repacker] expose hb_subset_repack() API, hb_object_t and hb_link_t structs
2022-03-10 17:26:20 -07:00
Garret Rieger
f6071c16b0
[subset] Rename codepoint -> unicode in subset plan api
2022-02-28 23:45:40 +02:00
Behdad Esfahbod
222301bfa4
Merge pull request #3429 from harfbuzz/external_plan
...
[subset] expose subset plan in public subsetting API
2022-02-24 12:55:01 -07:00
Matthias Clasen
d4cb07728c
Add a missing file
...
The style test is using notosansitalic.ttf now,
but I forgot to add it with the test. Fix that.
2022-02-18 18:27:02 -06:00
Matthias Clasen
16b232be0e
[hb-style] Fix the sign of slant ratios
...
We want negative slant angles to yield
positive slant ratios. Fix that.
Test included.
2022-02-18 18:10:34 -06:00
Matthias Clasen
e76061a737
[hb-style] Fix synthetic slant values
...
When reporting the slant ratio of a font
that has synthetic slant set, we were
reporting twice the expected value.
Fix that. Test included.
2022-02-18 17:53:54 -06:00
Behdad Esfahbod
56f11ec938
[buffer] Add HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3454
2022-02-18 17:52:27 -06:00
Behdad Esfahbod
f8e9e315bb
Merge pull request #3437 from matthiasclasen/synthesize-missing-baselines
...
[BASE] Synthesize missing baselines
2022-02-17 14:34:46 -06:00
Matthias Clasen
f81578fd86
[ot-layout] Synthesize missing baselines
...
Add a variation of hb_ot_layout_get_baseline that
synthesizes missing baselines, using heuristics in part
taken from the CSS Inline Layout Module, Level 3.
Includes some new tests for synthesized baselines.
The base2.ttf is a subset of Noto Sans Bengali that
includes just the Bengali Ka.
New API: hb_ot_layout_get_baseline_with_fallback
2022-02-16 17:37:33 -06:00
Behdad Esfahbod
d2998faad3
Merge pull request #3410 from harfbuzz/boring-expansion
...
[Boring Expansion] >64k loca & hmtx tables
This does two things:
The num-glyphs reported by the face now is the maximum reported by the maxp and that deduced from the length of the loca table; I think this is the right thing to do anyway; According to OpenType such loca tables are invalid.
The interpretation hmtx tables that have excessive bytes at the end, again, invalid according to OpenType, has changed. Previously we were interpreting those excessive bytes as extra lsb values. Now we interpret them as extra advance values, the last of which is repeated for all missing glyphs. Again, these are tables that are invalid according to OpenType, and the advances are for glyph indices beyond maxp table's num-glyphs.
The combined effect is that the font can have shapes and advances for gid's beyond the maxp limit of 64k. In fact, maxp table becomes optional.
2022-02-16 14:37:09 -06:00
Khaled Hosny
cfa8cd7fb0
[autotools] Fix make distcheck
...
The test-draw.c can now optionally uses hb-ft, but automake file was not
passing FreeType cflags or libs to it.
2022-02-16 11:58:38 +02:00
Behdad Esfahbod
a396543ae1
Merge pull request #3411 from harfbuzz/draw
...
[draw] Finish and release draw API
2022-02-15 18:47:55 -06:00
Behdad Esfahbod
67eb9acf79
[config] Add HB_NO_BORING_EXPANSION
2022-02-15 17:17:49 -06:00
Behdad Esfahbod
1bf588e28b
[test/shape] Internal rename
...
Residual from e0d7060f80
2022-02-15 16:57:23 -06:00
Behdad Esfahbod
197ed8f592
[test/api] Fix leaks
2022-02-15 14:30:12 -06:00
Behdad Esfahbod
531c27d199
Fix build
2022-02-15 14:20:54 -06:00
Behdad Esfahbod
8b7ccc41c4
[hmtx] Implement [boring-expansion] >64k expansion
...
This implements https://github.com/be-fonts/boring-expansion-spec/issues/7
2022-02-15 14:15:12 -06:00
Behdad Esfahbod
379e526aa4
[test] Add test for current hmtx logic
2022-02-14 15:02:31 -06:00
Behdad Esfahbod
ed6d287d11
[ot-face] Load num-glyphs from `loca` table before `maxp`
...
Implements [boring-expansion] [maxp] Relax
https://github.com/be-fonts/boring-expansion-spec/issues/6
2022-02-14 13:52:30 -06:00
Ebrahim Byagowi
6b75a30a73
[draw/test] Swap a freetype test case with a simpler one
...
As CI failure, apparently the my local freetype and CI one have different
result so let's switch the case with a simpler one just to test quadratic command
is emitted correctly.
2022-02-14 01:54:33 +03:30
Behdad Esfahbod
ae223764a3
[test/draw] Typo
2022-02-13 15:39:14 -06:00
Ebrahim Byagowi
0429921c10
[draw/test] Add test for freetype callback
...
Let's have that part of the code also covered.
2022-02-14 00:18:13 +03:30
Ebrahim Byagowi
d4588204e5
[draw/glyf] Emit empty contours
...
This makes it actually match freetype behaviour even though rasterizer
should filter such contours specially for stroking.
See https://github.com/harfbuzz/harfbuzz/pull/3411#discussion_r802283827 for the context.
2022-02-13 23:50:53 +03:30
Khaled Hosny
0e357c504c
[draw] Test scaling subfont differently from parent
2022-02-13 13:21:15 -06:00
Behdad Esfahbod
151f205819
[draw] Emit move_to immediately, like other operators
2022-02-13 13:21:15 -06:00
Khaled Hosny
aca80a4a40
[draw] Add test for applying synthetic slant
2022-02-13 13:21:15 -06:00
Khaled Hosny
052fd2d8b9
[draw] Add test for hb_draw_move_to() etc
2022-02-13 13:21:15 -06:00
Behdad Esfahbod
f1a9a9ccaf
[draw-state] Pass state down to callbacks
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
9f05362d43
[test-draw] Fix compiler warning
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
1740916ede
[draw] Remove check for no-op
...
This is unnecessary overhead. Up to rasterizers to handle this. Plus,
this throws off point-numbers in uses that rely on it.
Disabled one test that broke with this.
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
5610fa1da0
[test-draw] Re-enable two disabled tests
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
8b4f429000
[draw] Virtualize hb_font_draw_glyph() into hb_font_get_glyph_shape()
...
To be implemented in hb-ft.
2022-02-13 13:21:14 -06:00
Behdad Esfahbod
2bed4f46fb
[draw] Fix draw signatures
2022-02-13 13:21:14 -06:00