X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=test%2Fapi%2Ftest-subset-hdmx.c;h=44e579aceef95af85ed91b0100dbbc3fe7866355;hb=1baac414088e430483b85f702898c8448083bfc2;hp=c78009b6bb0c3635910c4dec23e8891a4d97270a;hpb=b9f425ddd6223cd82b3d35f13fbd060d3c0c0e38;p=platform%2Fupstream%2Fharfbuzz.git diff --git a/test/api/test-subset-hdmx.c b/test/api/test-subset-hdmx.c index c78009b..44e579a 100644 --- a/test/api/test-subset-hdmx.c +++ b/test/api/test-subset-hdmx.c @@ -33,8 +33,8 @@ static void test_subset_hdmx_simple_subset (void) { - hb_face_t *face_abc = hb_subset_test_open_font ("fonts/Roboto-Regular.abc.ttf"); - hb_face_t *face_ac = hb_subset_test_open_font ("fonts/Roboto-Regular.ac.ttf"); + hb_face_t *face_abc = hb_test_open_font_file ("fonts/Roboto-Regular.abc.ttf"); + hb_face_t *face_ac = hb_test_open_font_file ("fonts/Roboto-Regular.ac.ttf"); hb_set_t *codepoints = hb_set_create (); hb_face_t *face_abc_subset; @@ -51,23 +51,42 @@ test_subset_hdmx_simple_subset (void) } static void +test_subset_hdmx_multiple_device_records (void) +{ + hb_face_t *face_abc = hb_test_open_font_file ("fonts/Roboto-Regular.multihdmx.abc.ttf"); + hb_face_t *face_a = hb_test_open_font_file ("fonts/Roboto-Regular.multihdmx.a.ttf"); + + hb_set_t *codepoints = hb_set_create (); + hb_face_t *face_abc_subset; + hb_set_add (codepoints, 'a'); + face_abc_subset = hb_subset_test_create_subset (face_abc, hb_subset_test_create_input (codepoints)); + hb_set_destroy (codepoints); + + hb_subset_test_check (face_a, face_abc_subset, HB_TAG ('h','d','m','x')); + + hb_face_destroy (face_abc_subset); + hb_face_destroy (face_abc); + hb_face_destroy (face_a); +} + +static void test_subset_hdmx_invalid (void) { - hb_face_t *face = hb_subset_test_open_font("fonts/crash-ccc61c92d589f895174cdef6ff2e3b20e9999a1a"); + hb_face_t *face = hb_test_open_font_file ("../fuzzing/fonts/crash-ccc61c92d589f895174cdef6ff2e3b20e9999a1a"); hb_subset_input_t *input = hb_subset_input_create_or_fail (); hb_set_t *codepoints = hb_subset_input_unicode_set (input); + hb_face_t *subset; + hb_set_add (codepoints, 'a'); hb_set_add (codepoints, 'b'); hb_set_add (codepoints, 'c'); - hb_subset_profile_t *profile = hb_subset_profile_create(); - hb_face_t *subset = hb_subset (face, profile, input); + subset = hb_subset (face, input); g_assert (subset); g_assert (subset == hb_face_get_empty ()); hb_subset_input_destroy (input); - hb_subset_profile_destroy (profile); hb_face_destroy (subset); hb_face_destroy (face); } @@ -75,21 +94,21 @@ test_subset_hdmx_invalid (void) static void test_subset_hdmx_fails_sanitize (void) { - hb_face_t *face = hb_subset_test_open_font("fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5609911946838016"); + hb_face_t *face = hb_test_open_font_file ("../fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5609911946838016"); hb_subset_input_t *input = hb_subset_input_create_or_fail (); hb_set_t *codepoints = hb_subset_input_unicode_set (input); + hb_face_t *subset; + hb_set_add (codepoints, 'a'); hb_set_add (codepoints, 'b'); hb_set_add (codepoints, 'c'); - hb_subset_profile_t *profile = hb_subset_profile_create(); - hb_face_t *subset = hb_subset (face, profile, input); + subset = hb_subset (face, input); g_assert (subset); g_assert (subset == hb_face_get_empty ()); hb_subset_input_destroy (input); - hb_subset_profile_destroy (profile); hb_face_destroy (subset); hb_face_destroy (face); } @@ -97,7 +116,7 @@ test_subset_hdmx_fails_sanitize (void) static void test_subset_hdmx_noop (void) { - hb_face_t *face_abc = hb_subset_test_open_font("fonts/Roboto-Regular.abc.ttf"); + hb_face_t *face_abc = hb_test_open_font_file ("fonts/Roboto-Regular.abc.ttf"); hb_set_t *codepoints = hb_set_create(); hb_face_t *face_abc_subset; @@ -119,6 +138,7 @@ main (int argc, char **argv) hb_test_init (&argc, &argv); hb_test_add (test_subset_hdmx_simple_subset); + hb_test_add (test_subset_hdmx_multiple_device_records); hb_test_add (test_subset_hdmx_invalid); hb_test_add (test_subset_hdmx_fails_sanitize); hb_test_add (test_subset_hdmx_noop);