You can test shaping of a unicode sequence against a font like this:
$ ./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.
pyftsubset to be installed. You can get
pyftsubset by installing FontTools from https://github.com/behdad/fonttools.
record-test.sh, just put it right before the
$ ./hb-unicode-encode 41 42 43 627 | ./record-test.sh ../../util/hb-shape font.ttf
what this does is:
hb-shapeoutput of the original font versus the subset font for the input sequence,
hb-viewfor both fonts.
data/in-house/fontsand 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
$ ./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.