From 89ee20f1a39ac78268b57a9aebe8e7428f9944bf Mon Sep 17 00:00:00 2001 From: Rod Sheeter Date: Mon, 12 Feb 2018 16:01:15 -0800 Subject: [PATCH] basic wiring for a (failing) cmap test --- test/api/Makefile.am | 2 + test/api/fonts/README | 1 + .../Roboto-Regular.abc.cmap-format12-only.ttf | Bin 0 -> 2412 bytes .../Roboto-Regular.ac.cmap-format12-only.ttf | Bin 0 -> 2212 bytes test/api/hb-subset-test.h | 3 +- test/api/test-subset-cmap.c | 82 ++++++++++++++++++ test/api/test-subset-glyf.c | 5 +- .../in-house/tests/myanmar-syllable.tests | 1 - 8 files changed, 87 insertions(+), 7 deletions(-) create mode 100644 test/api/fonts/README create mode 100644 test/api/fonts/Roboto-Regular.abc.cmap-format12-only.ttf create mode 100644 test/api/fonts/Roboto-Regular.ac.cmap-format12-only.ttf create mode 100644 test/api/test-subset-cmap.c delete mode 100644 test/shaping/data/in-house/tests/myanmar-syllable.tests diff --git a/test/api/Makefile.am b/test/api/Makefile.am index e36b3fd57..918bfb0e9 100644 --- a/test/api/Makefile.am +++ b/test/api/Makefile.am @@ -29,12 +29,14 @@ TEST_PROGS = \ test-object \ test-set \ test-shape \ + test-subset-cmap \ test-subset-glyf \ test-unicode \ test-version \ $(NULL) test_subset_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la +test_subset_cmap_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la test_subset_glyf_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la test_unicode_CPPFLAGS = \ diff --git a/test/api/fonts/README b/test/api/fonts/README new file mode 100644 index 000000000..a365afd74 --- /dev/null +++ b/test/api/fonts/README @@ -0,0 +1 @@ +cmap-format12-only files created by ttx & remove all other cmap entries diff --git a/test/api/fonts/Roboto-Regular.abc.cmap-format12-only.ttf b/test/api/fonts/Roboto-Regular.abc.cmap-format12-only.ttf new file mode 100644 index 0000000000000000000000000000000000000000..46b4801a24a09447a5baa47c2b2fe50257d8639b GIT binary patch literal 2412 zcmZuzeQX;=7Jsw5cGe#xYo8ORHci&ud^R=-NopWOC2&sCD$tlDJ=Rg7F?PNnZcO5o zfG89SC7708X%SNS6hcr6x{iI^C80%%1PI-6aCd+ZK>`VhKL8a0;zQh_+Pt?;8j2We z-n`$N_ul;8Om-%~0Kkbt0<}BT*#!Ym0pwY<)^&$_`^}cGP9uIA@zL)7?N=Qsy{8Po z(uz3P+uzun8oQ?$fE`CX6iY;tPy+u05b6-u#dfFEhT}y~0GM>d10%`N#H~LKy@>N+ zj5$3Tolb%bf57|`IBy@FxNRg@{@Ii0zkoi2WAVgnu~owSLOISWW5dySKGgFA#`+Nl z$IxK=Qg|0}9C6iHA~mZVVTyVrwEgn-sjlHuRrEtnP{?hJ|_S zceuU_@ukVh=~O-em`lEz=95#y$!A9X{}0?8JH~7U+ABeG_FZHCW@kzJ58$O`0AByb zaS@FlJpZq^U`PIpq?!p@K%fB|#uZKEFo(1Uc0fo{jZB5Pf|Lx41obO1v=RVS4nh@B zI#Jrs{tPCp<(R1jQ&tv6@xL%a%d9R%VdrP>?(OY{4v0d`3^{<2qGJLcF?)&}r8W~s zpn@nKfVeaW31oOcYC@KUEV9KUnM}BSOpxXIt6a z*RN|nzBirrrm=!mymUTZVDMW*$FB{z1Dy+OZx~bIp!vLH(0rN?8Ad_@Zt?f@>zzo^ zhZL=TUe_7mHb1Y&!S2u0vN<)~uP=7sHym4#VQxTQggWu_WW>ugB&*IXD7bGcHmdRh zKkt}ZP+?Hd)I-R-2=(IUA+*~YI5a?(DMACwIvC1%M_W_1R{^;J=Gm6ZFY>uiofq^i zm)04Y*!RcQ>N2uPH(b-+u#PlS(7$0_32EkAuJ3C0l2&y1)*WpcY4V+;;mbUvSq3_T zHAWWe?xCLGda~K}#kUpw?9177tetEZxD>m^Oj>b!bM1u=(n>m7>(?8xO8CkGE66%+ zMOZ-L+_G1A*mQO$iMvQNdRQvkOJb75ArdD^qhzPvVLSbe<&9sG{E_3i>cM!V|C;(l86}{|3lG8T z=;g`{flGJ{RM7`EsSRAxK~V6UbeYSclsyLy^AZ%BmyH{MvI5)=%PfGS0Ezq=@k?nN zR6rfvk#*N^bT}{LZiTD=0S=uycQ<-7ZqMe30VD*Ha|HkbK#&#O5(Z^$#=vcj7@jF% z+}fb~KJ0)0^ty$Ypv#GVJrDaoVjkdvDsl_ zWi8D?N&Rf;?WEj0ue#*Ufc#j#*zV=}5gWOrutM8o1`A@uq zw=%vB;u$=#_0W@5Dk^dD!bvGeOj)HYBao401~1dqgWxii$Q6aVNS;rS_P3=NNrGe3 z%C>7Y#wp;I3!7s{<&&n}Z|wRw_j79b=-J%zmwhG7(DU;^KlDfBX0{w8`u zf2T3bD}#{F<9`XHv^223{F)Br>b+DewFhc%3e767h%w=z#u&wD;O>f09zXg6VpLR2h!GS0#o$d&Cn>?du+XIs3UB0C@m$ zO-p-uWwh_PbO3e|aaSl39D)pX6+kFJTpijORm)DMoB*(NA@1lI>W%FBv+F(F*RkeO zZ*XJ?WVjFcIqutg2X^XV9|mk^ zg;R*bhzt56(J^}t^I^V>*gh~A3c?fcIr5!BEJuQ4LxM|KgZUGP)$PGZw{R})H#{Hp zz_Ovik!Ugk$dz)4_J@YMhu-Y@>tlR4cs^SV^sEFetG4Sx&gP7|-@#4C09^hhb1|)7 zy>nHD4ar;LEeX$nR1heN1M5--rtQen2^+vK-ZGfXJ=2OtM1+!=8afFe9gm}DX+>X@ z_Oe4@!Mhx_R3T-axr$#x4;?dm6qVh}-qh041oaSvkQJr@dQy%G_=?%T$*n1SVPX z1^)cPc&fO0laDj6sy6idIqULq!OK~x$Hzsl+Q`Mi#x`9Gs4+FRIvi6Q)xKbuONGXY z8{M%$xyqqk??>CAdw6}oJ?C}@0<}Ia5e-&gb}WDdTW1JxHA3b8__)Q}ta7oaRbQ*~ zalf0_`vY!|M{VF!tva9byFGz`k6Y(7qSmMS=bLI%yxdyq9d0t*W zF{whQ9xnmE`#hA0H~kp5mvQU^38n~TERo63p3AJQD0C|zm%%x<>cPbx2fF73ebusJ z!xP&csV>Z+n6&A!y0Qi2S!%rb3o^*F?%3E^=_W7b@U9KD8hP^5y{*e#wkN#C%(LG}#6ooxo99sMsaEpR>na!BpGjUueRat~qgH8s$W#T1EL#d* zz`lIWz2F+ zcY#AV2CC=*n^X%9X+J3VZ91&;A)CDonbs*tx85*10kMM7*93@QxA_sfO)h?sPbQot zrI}gFxl`flHQ>;ob7#3b?sTmP7(hZGWz7IU00r&CQZT)fW@bvppwQcW*FTQ(mU2r7a zwDwi~;#>YY0J(l+rORuJ9^{D*)d!U%oZ`od+m>jZ%*~^`*cdX_zArs0pAMtbtx4!Q`a + +#include "hb-test.h" +#include "hb-subset-test.h" + +/* Unit tests for cmap subsetting */ + +static void +test_subset_cmap (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.cmap-format12-only.ttf"); + + hb_set_t *codepoints = hb_set_create(); + hb_set_add (codepoints, 97); + hb_set_add (codepoints, 99); + hb_face_t *face_abc_subset = hb_subset_test_create_subset (face_abc, codepoints); + hb_set_destroy (codepoints); + + hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('c','m','a','p')); + + hb_face_destroy (face_abc_subset); + hb_face_destroy (face_abc); + hb_face_destroy (face_ac); +} + +static void +test_subset_cmap_noop (void) +{ + hb_face_t *face_abc = hb_subset_test_open_font("fonts/Roboto-Regular.abc.cmap-format12-only.ttf"); + + hb_set_t *codepoints = hb_set_create(); + hb_set_add (codepoints, 97); + hb_set_add (codepoints, 98); + hb_set_add (codepoints, 99); + hb_face_t *face_abc_subset = hb_subset_test_create_subset (face_abc, codepoints); + hb_set_destroy (codepoints); + + hb_subset_test_check (face_abc, face_abc_subset, HB_TAG ('c','m','a','p')); + + hb_face_destroy (face_abc_subset); + hb_face_destroy (face_abc); +} + +// TODO(rsheeter) test cmap to no codepoints + +int +main (int argc, char **argv) +{ + hb_test_init (&argc, &argv); + + hb_test_add (test_subset_cmap); + hb_test_add (test_subset_cmap_noop); + + return hb_test_run(); +} diff --git a/test/api/test-subset-glyf.c b/test/api/test-subset-glyf.c index 98e12339a..8db053c7e 100644 --- a/test/api/test-subset-glyf.c +++ b/test/api/test-subset-glyf.c @@ -34,10 +34,8 @@ static void test_subset_glyf (void) { - hb_face_t *face_abc = hb_subset_test_open_font("fonts/Roboto-Regular.abc.ttf"); - g_assert (face_abc); + 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"); - g_assert (face_ac); hb_set_t *codepoints = hb_set_create(); hb_set_add (codepoints, 97); @@ -57,7 +55,6 @@ static void test_subset_glyf_noop (void) { hb_face_t *face_abc = hb_subset_test_open_font("fonts/Roboto-Regular.abc.ttf"); - g_assert (face_abc); hb_set_t *codepoints = hb_set_create(); hb_set_add (codepoints, 97); diff --git a/test/shaping/data/in-house/tests/myanmar-syllable.tests b/test/shaping/data/in-house/tests/myanmar-syllable.tests deleted file mode 100644 index 4666ef99d..000000000 --- a/test/shaping/data/in-house/tests/myanmar-syllable.tests +++ /dev/null @@ -1 +0,0 @@ -../fonts/af3086380b743099c54a3b11b96766039ea62fcd.ttf:--no-glyph-names:U+101D,U+FE00,U+1031,U+FE00,U+1031,U+FE00:[6=0+465|6=0+465|5=0+502]