HarfBuzz text shaping engine
http://harfbuzz.github.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.9 KiB
41 lines
1.9 KiB
Adding tests |
|
============ |
|
|
|
You can test shaping of a unicode sequence against a font like this: |
|
```sh |
|
$ ./hb-unicode-encode 41 42 43 627 | ../../util/hb-shape font.ttf |
|
``` |
|
assuming an in-tree build. The 41 42 43 627 here is a sequence of |
|
Unicode codepoints: U+0041,0042,0043,0627. When you are happy with |
|
the shape results, you can use the `record-test.sh` script to add |
|
this to the test suite. `record-test.sh` requires `pyftsubset` to |
|
be installed. You can get `pyftsubset` by installing |
|
FontTools from <https://github.com/behdad/fonttools>. |
|
|
|
To use `record-test.sh`, just put it right before the `hb-shape` invocation: |
|
```sh |
|
$ ./hb-unicode-encode 41 42 43 627 | ./record-test.sh ../../util/hb-shape font.ttf |
|
``` |
|
what this does is: |
|
* Subset the font for the sequence of Unicode characters requested, |
|
* Compare the `hb-shape` output of the original font versus the subset |
|
font for the input sequence, |
|
* If the outputs differ, perhaps it is because the font does not have |
|
glyph names; it then compares the output of `hb-view` for both fonts. |
|
* If the outputs differ, recording fails. Otherwise, it will move the |
|
subset font file into `data/in-house/fonts` and name it after its |
|
hash, and print out the test case input, which you can then redirect |
|
to an existing or new test file in `data/in-house/tests` using `-o`, |
|
e.g.: |
|
```sh |
|
$ ./hb-unicode-encode 41 42 43 627 | ./record-test.sh -o data/in-house/tests/test-name.test ../../util/hb-shape font.ttf |
|
``` |
|
|
|
If you created a new test file, add it to `data/in-house/Makefile.sources` |
|
so it is run. Check that `make check` does indeed run it, and that the |
|
test passes. When everything looks good, `git add` the new font as well |
|
as the new test file if you created any. You can see what new files are |
|
there by running `git status data/in-house`. And commit! |
|
|
|
*Note!* Please only add tests using Open Source fonts, preferably under |
|
OFL or similar license.
|
|
|