diff --git a/test/api/fonts/Roboto-Regular.components.subset.ttf b/test/api/fonts/Roboto-Regular.components.subset.ttf new file mode 100644 index 000000000..e759d7767 Binary files /dev/null and b/test/api/fonts/Roboto-Regular.components.subset.ttf differ diff --git a/test/api/fonts/Roboto-Regular.components.ttf b/test/api/fonts/Roboto-Regular.components.ttf new file mode 100644 index 000000000..816e3a28e Binary files /dev/null and b/test/api/fonts/Roboto-Regular.components.ttf differ diff --git a/test/api/test-subset-glyf.c b/test/api/test-subset-glyf.c index 3c9d8fe9f..96e37bbcb 100644 --- a/test/api/test-subset-glyf.c +++ b/test/api/test-subset-glyf.c @@ -52,6 +52,26 @@ test_subset_glyf (void) hb_face_destroy (face_ac); } +static void +test_subset_glyf_with_components (void) +{ + hb_face_t *face_components = hb_subset_test_open_font ("fonts/Roboto-Regular.components.ttf"); + hb_face_t *face_subset = hb_subset_test_open_font ("fonts/Roboto-Regular.components.subset.ttf"); + + hb_set_t *codepoints = hb_set_create(); + hb_set_add (codepoints, 0x1fc); + hb_face_t *face_generated_subset = hb_subset_test_create_subset (face_components, codepoints); + hb_set_destroy (codepoints); + + hb_subset_test_check (face_subset, face_generated_subset, HB_TAG ('g','l','y','f')); + hb_subset_test_check (face_subset, face_generated_subset, HB_TAG ('l','o','c', 'a')); + hb_subset_test_check (face_subset, face_generated_subset, HB_TAG ('m','a','x', 'p')); + + hb_face_destroy (face_generated_subset); + hb_face_destroy (face_subset); + hb_face_destroy (face_components); +} + static void test_subset_glyf_noop (void) { @@ -79,6 +99,7 @@ main (int argc, char **argv) hb_test_init (&argc, &argv); hb_test_add (test_subset_glyf); + hb_test_add (test_subset_glyf_with_components); hb_test_add (test_subset_glyf_noop); return hb_test_run();