From ccc59dc6121e98ed8d610350b43218e540f61f25 Mon Sep 17 00:00:00 2001 From: Garret Rieger Date: Fri, 18 Jan 2019 17:36:32 -0800 Subject: [PATCH] [subset] Add unit test for glyf subsetting and retain gids. --- .../fonts/Roboto-Regular.ac.retaingids.ttf | Bin 0 -> 2284 bytes test/api/test-subset-glyf.c | 26 ++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 test/api/fonts/Roboto-Regular.ac.retaingids.ttf diff --git a/test/api/fonts/Roboto-Regular.ac.retaingids.ttf b/test/api/fonts/Roboto-Regular.ac.retaingids.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8606a5568997bdf12b3f8e6c903ee9979ee40895 GIT binary patch literal 2284 zcmZuzdu&r>6hHUTuIG0JHPXt@0{Pc zz31Kn2LS1)M35Uib@fmW27siy=q+hzX>QZq`Yj4zC_=oap>5R@uV?JcM0^slySc5b zBGkJx1wiOT-02Vc24S4Pg!m%je*b7lE1cxgKTe-p907agWEx?{MH z`5>=17#cHYaxTPp9;E&OzmIDKiob@~6!eV^@>PNn@fV2Y&Awn4f6DYH)_)7};=zI8 zP%H=m#Kd179O@c;ulvrI0J_`AXF2c?j9nLg6<0tu6v1;*YjH_h`VwZ9n0yf!)Tzu` zW{+5HOT8Kp5s2vt00;mB&|~DoT-@2VRye zMU)4ye4(SDP_N_`EUL<@tXx!8pycW^lq$EovLe%(X0c}ESGXTtq{tbTOrc0Jz4Xb^ zZ#eFklc6pC@iW60M$cXr3ucm6A6E9yd=!#f$3K1bgR`rA!-0mCZ>ndH&7{1cN_#sR zfBt;+25cMFV9(dF=PYQ7O4&I`F5atz9ZC0lH6Soxdl7iRk{Ki>Tx62OETkjW2V3O} ziD6|5ujE47q6BfJK7dHPi^LOa#fzSRhoG?uG?LBmG*I38e;{mRa zgPgZ-P5k(A-|nxcm9t+FPkM$YArsm`ry&4*a(LkLK%c}AXGM&{`gJbGIc2%7&%?M*7vr6b zD{;7(;FRl`kYC@bDqcA(hnEM!a=qN^3otQXTXCZ+>@AZSw5ffl+f@gv_1b66F0Z%R z#Y9SjConqf#RMA@32@b1W%pc6=WLRhP|%{TRM`%Xoz;50c85c*W791voA%fpUayPk zXE`F*=lkZy*(N!ezQn~0@eFM$tF<%mhQpMvO;sFhM>uQ`V+Z%~^uu_Hga0~e|Lwp# zP&dWxXu(vtC=NS06o=wKhF*`08J$gSY8_H^AVrgt71g;|vXd3#Vs=Ifxd}Pkrk<|F z-_Sp0fQfeXG!zNf2EBHsAX#~0O2Ye=@KKj@oUC?YN`?+KQVbsZX($%1dC+ezWl#!H zPU1_sXc~w5R9ba;zFh)CDV*XOA6wwCpm~Z{8y6R8meBfSRemP<#C6Zql+Ghd=XU1K zOC?LcWo>#LJ6<86EGhdB{{Wav9 zW0A~8Jy|I=6@~ND$V#oPD$df*N-dAaSpmK!ldysK?-pHVslF@1%0FF>XDnNmAdDiji8Djllz?%4CciK!w8q zC2$0GKp4j0GJZW)KnLuGPIwlo_!>9|QP>CPG0HO22^Rhk$btis#cHsKdqKiEw&>?V z2KPRs>8Bw@e--C5E98cnl(@SEn|XmSPG)2{^@qG`L_-AgRN(% zYZKV|eWA@@!)Fo&Giy0Ebq#H%{}OS8dz6u*+K{V7mVg`UCHT_GS)uB2F83J`COe*k Y@|&OnsvhE!r*X;Cxa7@pnN14t4}b>!Q~&?~ literal 0 HcmV?d00001 diff --git a/test/api/test-subset-glyf.c b/test/api/test-subset-glyf.c index 0e5c29311..e8609ca83 100644 --- a/test/api/test-subset-glyf.c +++ b/test/api/test-subset-glyf.c @@ -257,6 +257,31 @@ test_subset_glyf_strip_hints_invalid (void) hb_face_destroy (face); } +static void +test_subset_glyf_retain_gids (void) +{ + 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.retaingids.ttf"); + + hb_set_t *codepoints = hb_set_create(); + hb_face_t *face_abc_subset; + hb_set_add (codepoints, 97); + hb_set_add (codepoints, 99); + + hb_subset_input_t *input = hb_subset_test_create_input (codepoints); + hb_subset_input_set_retain_gids (input, true); + face_abc_subset = hb_subset_test_create_subset (face_abc, input); + hb_set_destroy (codepoints); + + hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('g','l','y','f')); + hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('l','o','c', 'a')); + check_maxp_num_glyphs(face_abc_subset, 4, true); + + hb_face_destroy (face_abc_subset); + hb_face_destroy (face_abc); + hb_face_destroy (face_ac); +} + // TODO(grieger): test for long loca generation. int @@ -272,6 +297,7 @@ main (int argc, char **argv) hb_test_add (test_subset_glyf_with_components); hb_test_add (test_subset_glyf_with_gsub); hb_test_add (test_subset_glyf_without_gsub); + hb_test_add (test_subset_glyf_retain_gids); return hb_test_run(); }