diff --git a/test/api/fonts/Roboto-Regular.abcAE.ttf b/test/api/fonts/Roboto-Regular.abcAE.ttf new file mode 100644 index 000000000..b3aae5bb5 Binary files /dev/null and b/test/api/fonts/Roboto-Regular.abcAE.ttf differ diff --git a/test/api/fonts/Roboto-Regular.bAE.ttf b/test/api/fonts/Roboto-Regular.bAE.ttf new file mode 100644 index 000000000..c7d1b3a31 Binary files /dev/null and b/test/api/fonts/Roboto-Regular.bAE.ttf differ diff --git a/test/api/test-subset-glyf.c b/test/api/test-subset-glyf.c index 2b330ced2..6be19e7c5 100644 --- a/test/api/test-subset-glyf.c +++ b/test/api/test-subset-glyf.c @@ -79,6 +79,31 @@ test_subset_glyf (void) hb_face_destroy (face_ac); } +static void +test_subset_glyf_set_overlaps_flag (void) +{ + hb_face_t *face_abcAE = hb_test_open_font_file ("fonts/Roboto-Regular.abcAE.ttf"); + hb_face_t *face_bAE = hb_test_open_font_file ("fonts/Roboto-Regular.bAE.ttf"); + + hb_set_t *codepoints = hb_set_create(); + hb_face_t *face_abcAE_subset; + hb_set_add (codepoints, 32); + hb_set_add (codepoints, 98); + hb_set_add (codepoints, 508); + + hb_subset_input_t* input = hb_subset_test_create_input (codepoints); + hb_subset_input_set_overlaps_flag (input, true); + face_abcAE_subset = hb_subset_test_create_subset (face_abcAE, input); + hb_set_destroy (codepoints); + + hb_subset_test_check (face_bAE, face_abcAE_subset, HB_TAG ('l','o','c', 'a')); + hb_subset_test_check (face_bAE, face_abcAE_subset, HB_TAG ('g','l','y','f')); + + hb_face_destroy (face_abcAE_subset); + hb_face_destroy (face_abcAE); + hb_face_destroy (face_bAE); +} + static void test_subset_glyf_with_input_glyphs (void) { @@ -342,6 +367,7 @@ main (int argc, char **argv) hb_test_add (test_subset_glyf_noop); hb_test_add (test_subset_glyf); + hb_test_add (test_subset_glyf_set_overlaps_flag); hb_test_add (test_subset_glyf_with_input_glyphs); hb_test_add (test_subset_glyf_strip_hints_simple); hb_test_add (test_subset_glyf_strip_hints_composite);