test/vector validates hb-vector CLI output by comparing exact stdout with golden files.
data/tests/*.tests)Each non-empty, non-comment line has 4 semicolon-separated fields:
font-file;options;unicodes;expected-file
font-file: relative to the .tests file (or absolute path).options: shell-split arguments passed to hb-vector.unicodes: Unicode sequence, using shape-style codepoint format (for example U+0061,U+0062,U+0063).expected-file: path to golden output, relative to the .tests file. This is also used as the TAP test name.Example:
../../../api/fonts/Roboto-Regular.abc.ttf;--font-size=64;U+0061,U+0062,U+0063;../expected/basic/reuse-svg.svg
In an in-tree build:
meson test -C build-default -v --suite vector
Regenerate a golden file with the current hb-vector binary and replace the file under data/expected/.
Use record-test.sh:
./record-test.sh -o data/tests/basic.tests --test-name reuse-svg ../../build-default/util/hb-vector ../api/fonts/Roboto-Regular.abc.ttf --font-size=64 abc
It subsets the input font, verifies subset-vs-original rendering with hb-view, stores the subset font under ../fonts/<sha1>.ttf (relative to the target .tests file), writes expected output under ../expected/<tests-stem>/<test-name>.<ext> by default (unless --expected-dir or --expected-file is provided), and appends one test line to the target .tests file. hb-shape, hb-view, and hb-subset are resolved as sibling executables next to the provided hb-vector binary. The emitted test line uses Unicode codepoint input in the unicodes field.