• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

data/23-Nov-2023-2,9082,444

texts/in-house/23-Nov-2023-32,29031,957

CMakeLists.txtD23-Nov-20231.3 KiB2926

Makefile.amD23-Nov-2023695 4031

README.mdD23-Nov-20231.9 KiB4237

hb-diffD22-Nov-2023227 116

hb-diff-colorizeD22-Nov-2023253 84

hb-diff-filter-failuresD22-Nov-2023166 62

hb-diff-statD22-Nov-2023108 62

hb-unicode-decodeD22-Nov-2023130 62

hb-unicode-encodeD22-Nov-2023134 62

hb-unicode-prettynameD22-Nov-2023175 73

hb_test_tools.pyD23-Nov-202313.8 KiB577471

record-test.shD23-Nov-20233 KiB116102

run-tests.pyD23-Nov-20233.6 KiB142112

README.md

1Adding tests
2============
3
4You can test shaping of a unicode sequence against a font like this:
5```sh
6$ ./hb-unicode-encode 41 42 43 627 | ../../util/hb-shape font.ttf
7```
8assuming an in-tree build.  The 41 42 43 627 here is a sequence of
9Unicode codepoints: U+0041,0042,0043,0627.  When you are happy with
10the shape results, you can use the `record-test.sh` script to add
11this to the test suite.  `record-test.sh` requires `pyftsubset` to
12be installed.  You can get `pyftsubset` by installing
13FontTools from <https://github.com/behdad/fonttools>.
14
15To use `record-test.sh`, just put it right before the `hb-shape` invocation:
16```sh
17$ ./hb-unicode-encode 41 42 43 627 | ./record-test.sh ../../util/hb-shape font.ttf
18```
19what this does is:
20  * Subset the font for the sequence of Unicode characters requested,
21  * Compare the `hb-shape` output of the original font versus the subset
22    font for the input sequence,
23  * If the outputs differ, perhaps it is because the font does not have
24    glyph names; it then compares the output of `hb-view` for both fonts.
25  * If the outputs differ, recording fails.  Otherwise, it will move the
26    subset font file into `data/in-house/fonts` and name it after its
27    hash, and print out the test case input, which you can then redirect
28    to an existing or new test file in `data/in-house/tests` using `-o`,
29    e.g.:
30```sh
31$ ./hb-unicode-encode 41 42 43 627 | ./record-test.sh -o data/in-house/tests/test-name.test ../../util/hb-shape font.ttf
32```
33
34If you created a new test file, add it to `data/in-house/Makefile.sources`
35so it is run.  Check that `make check` does indeed run it, and that the
36test passes.  When everything looks good, `git add` the new font as well
37as the new test file if you created any.  You can see what new files are
38there by running `git status data/in-house`.  And commit!
39
40*Note!*  Please only add tests using Open Source fonts, preferably under
41OFL or similar license.
42