From 77b158c72d355e8e5e32f0d9748174041fddc8dd Mon Sep 17 00:00:00 2001 From: Qunxin Liu Date: Mon, 7 Aug 2023 16:02:02 -0700 Subject: [PATCH] [instancer] add tests for gvar partial instancing --- test/subset/data/Makefile.am | 1 + test/subset/data/Makefile.sources | 1 + ...all-codepoint.wght=200-300-500,wdth=80-90.ttf | Bin 0 -> 8256 bytes ...retain-all-codepoint.wght=300-600,wdth=85.ttf | Bin 0 -> 7244 bytes ...all-codepoint.wght=200-300-500,wdth=80-90.ttf | Bin 0 -> 7452 bytes ...retain-all-codepoint.wght=300-600,wdth=85.ttf | Bin 0 -> 6780 bytes .../profiles/no-tables-with-item-variations.txt | 1 + .../data/tests/glyf_partial_instancing.tests | 13 +++++++++++++ test/subset/generate-expected-outputs.py | 1 + test/subset/meson.build | 1 + 10 files changed, 18 insertions(+) create mode 100644 test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.ABC.no-tables-with-item-variations.retain-all-codepoint.wght=200-300-500,wdth=80-90.ttf create mode 100644 test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.ABC.no-tables-with-item-variations.retain-all-codepoint.wght=300-600,wdth=85.ttf create mode 100644 test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.composite.no-tables-with-item-variations.retain-all-codepoint.wght=200-300-500,wdth=80-90.ttf create mode 100644 test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.composite.no-tables-with-item-variations.retain-all-codepoint.wght=300-600,wdth=85.ttf create mode 100644 test/subset/data/profiles/no-tables-with-item-variations.txt create mode 100644 test/subset/data/tests/glyf_partial_instancing.tests diff --git a/test/subset/data/Makefile.am b/test/subset/data/Makefile.am index 980bddb07..4d46a6151 100644 --- a/test/subset/data/Makefile.am +++ b/test/subset/data/Makefile.am @@ -72,6 +72,7 @@ EXTRA_DIST += \ expected/collect_name_ids \ expected/instantiate_colrv1 \ expected/instantiate_cff2_update_metrics \ + expected/glyf_partial_instancing \ fonts \ profiles \ $(NULL) diff --git a/test/subset/data/Makefile.sources b/test/subset/data/Makefile.sources index 919ec7391..ba2a1a2f4 100644 --- a/test/subset/data/Makefile.sources +++ b/test/subset/data/Makefile.sources @@ -63,6 +63,7 @@ TESTS = \ tests/collect_name_ids.tests \ tests/instantiate_colrv1.tests \ tests/instantiate_cff2_update_metrics.tests \ + tests/glyf_partial_instancing.tests \ $(NULL) # TODO: re-enable once colrv1 subsetting is stabilized. diff --git a/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.ABC.no-tables-with-item-variations.retain-all-codepoint.wght=200-300-500,wdth=80-90.ttf b/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.ABC.no-tables-with-item-variations.retain-all-codepoint.wght=200-300-500,wdth=80-90.ttf new file mode 100644 index 0000000000000000000000000000000000000000..92b190bed9be06a2135f87506a53b932fe51106d GIT binary patch literal 8256 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 MGHx4miVY(AU(YZzvH$=8 literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.composite.no-tables-with-item-variations.retain-all-codepoint.wght=300-600,wdth=85.ttf b/test/subset/data/expected/glyf_partial_instancing/Roboto-Variable.composite.no-tables-with-item-variations.retain-all-codepoint.wght=300-600,wdth=85.ttf new file mode 100644 index 0000000000000000000000000000000000000000..74343354d2dd2325d2941f7c2bf6c71c6cfd1433 GIT binary patch literal 6780 zcma)AdvILUdH?R+yAQ3_^7<`#WuLoT@7ncBmShQAmW^2?OR^+DvL0ry{Myy(X=F>t z@(bfwvM`vNz!02=VM>!SX(uVu=B`PYg-IJ=k`DR9lup{|44u$UCT(cwgmy3!hQYr5 zedn&^N1@ZZ_nv#c$N668JKs5XNg<+TXf&#B?dfa0wCKD_qy~Vk>+Gr8e4=>nDZt+c zobKtpuQ$`S=UE~T)1S+n$V^rGbPQGo0k6&;$xKp-+6n$0JU)A3THpR@{4A086yO`f zlOspI?|pnTQSchk;wOeN{;{XWzJc*?fWB@db8M0VR0eoA;LynU>EUzVywV1Je+>A8 z5%4$kb{H`BalqF`hcbh{A6H_$Ith5oC=eyOcP+;M2JpJkBh#lsAJRVo?gd;jK9SAP zMalqX`+`R@rzSn$Tl_1)Gl2D@nIl7Yz27xPR5Q|w-Q_K$r z-2U+!A@~K0Xru3Ssg;TImq%iPv>88bSIhmqv^INsYMfS&ObtCutH(3bM`^WW*0_b2 z?uA^D7A{B2mMn)aI^G(7toU>0t(~2%lvF-fKKIcL zqGA6FDoj+q!(^?&YvZL$>lMr&M|(MW(N>Upa&UT7fxR-OP&qc88CO)O>ZYBv5%CCu zAF#3k{Gj9ED5#20M*k;(c?L=GE7#Dz1<)$s3Ovd|7hmA>^32g^zyXg-p)=ZhYPpZ) z2Cs0ER;|8TU9)Uit#anAf4Ol@dryhqcn`sHBL-hI_z*%qET>YcNtV*8RRRC}hheQed%AJwbBzW%rB-1WoW$Y=lNwLee)@P{`pUcT%t{jAGtUw`iMW%cOg z%gB@Yxm4ru5s@H8J*6~K@vFWvkD`q4r9>V3$q!HATApECcgc1I_0w1qYi34;S0&&n z0p6=Rxqqae&Qb~PIqygRU0*|yS^5O`oXc4Q&KeY?GE%Kt8;xFn`|Usc;cdQt z5e&*Vns=yXPW!E4{Px{hdUwwEL0Q=cR9!t=wrp_m&px?!?f1X`_~UEW8XA80;kCjQ zpwH&C^&fw{e&;Ohob#2w_g*Qz_13JkIS5Pquz5z^MDNVbkTW-9(y5r7x*d!4?G-+Bo>K|i6Ffq8*`Nw3iJ%D>XLB=iHN zn9kE*(Rb-<^i6t=en6|}61dLLSLsjbeTjdOUM)!Z9z8)XLC&l6Q;a@O&w%qKx&oPB zr|0P}A^C5VUntk5>{hxA8(jI%({~`*rdhfGx!*wl#~8ngx+qJh=q$|v`z-ihf+hbz z?<;ZWe+qWINPk8@(w;_s@>K#V){9nz{z3YaLSMm5KUe6h;CZ~z_uPWlZs~g|j?u0h zAC*(1+eb=;XiK55V5L?R`kYB}y=z5^7x5tL_ zG=xe#M#ll)kM{_TqW-tx$kTGwMJE{h&K&MtvC!lQ{T69=?6gF-` z?>=D0@$Oz2bxcA-u!QY7fp!p_lytsQced}bosKxO-4T!8CXS$|bb)H~wn)`Q~6)~jNCt0NxXS}6{1Efr&Rju_qS zh>^`##c-`7hH4x!SnY^x^~++QdPHP4IU>DjMjWbg#KEdd;y|S%_E$J!U&0an8?Op; zqa#uq7m0`d$Ps%tIHGU;I?=nnQuM?Qitd;r_QYNmU2#Wr#%IKX>m2cbkr4MAFN+St z5$(oa(FS<;U5;qg9nqpsiRP#yc15Q|lW;`i+DqcTwT?)xam2mlj<{$0rR49#j_q}# z;qDT#ZOfFX-_j|zZn;Zrx%-l+-JBFP)l;HsQ@coPOp5honuy0Xh*)i;Z2!8|ONHTG zUAF(OGDk%9dxTzJx^llLtrTllIbzL9N0hJhi%4x*`M%P+mF4?Zb8i**R+Q~r`RD!1 zYL@mbsR{QjHN)njx=^3DPU{PqnklqHnz~p!r+uV(79T9>E3OOn`RjarN)7dum_gHL zp7SYHzE0nS&vUQuknfz&LuM5zRmg*n$Wv4o==0R6eF0N7g?dO;7pv#gk5rE*ne-}o z))5kDateEg{PmUHH{tivpuOR*f`fT znmJW%+LOv@o@dNs)0Ch@BEj!t)5jTL&_!_1g_Xq3A2TR?GYK7BXx&kFbmx(h=~gax zj6~ng<8mevrO4;@=P!TzTTec5;qkfivoq(ua`v$^kDfkt^2G7!V^fbzP8>Zl{_x?k z(UIYy!R$aLedyqU{rmdO)I)pwdVBVCbw2pO{T=OXyIWf}h;Xo|Ldg{en~bKRU}Xj6 zg2m_-S5_#tugUgHq}`d&5xP{gqdV2SD-w;G5hH3RZ7tT!PiD}{&J#?Cz$lD`h>jkk zV^4odZ?@8M6fnKFK`yByrj5rtAxSmg1he^x6P9c-KH+f8qAR= z1~JJWaO1XuRmq$ z>0xs>xJixK^6tsg-Nq@mpSJa^uG_wtG0>H=qPCJYA_cfRg@`Gch!r)Wx@qQ}H_MsZ zh(eZ1jX6WPxF?rXF81`Npw!kc_NK0=irSP$LaqZXmDkBmN-Xj--N;C0(HWo)1v7I+ z4M_e-K1ueBq-qi&;Vit6IG5?QBzE;|UUhL{$(M_>B2ZLNG?$W;6yP-A0xoXG<=#-> z4uBG7%4;|_5<&-?-3w8|L?(mYWFT3T45^D$%mt&a0Q0(nqp?D-gp@@}BnO%B0O-6j zlPgL_U@auMsMm37EK(RZvw(x;%yx?)sB|6gyXiq+f9jPGLB4Fk(a2Y2MRQJlFk#$G z>pdwDJ-%H|~F)H1>iNK{X(Eo-!-nF9+2cNN zDLZK=BIOI&L1U=VE;bq$DEHF6F2%YMXY)ZF1r1!rMEw2g$9j512Ih|tqk0b z=vgyjnOPZQm;=+Ovch|_9u>-w%Bwz>9Y%wNFpxF|Tm-MjJ8>g-B8I_rE6!+VbuhM_ zt;XAGH<|~*!B1w;_8{+~`XF`!P7>;pmEud8AYy?@$DB&xR(LyS3PYev2mo%&9=RPH zT>x7^MlxuzO>VB(TAXt&6}1mX>~WLx#bwFZGXuJ%hm8h<8<}UVpth!MZ>-gx$!6dO zst|Gyh;|_K)Bv&<0$bA7e8ypz7GKb0AI03?A`(SZ>4j=F#!;|my7aWEr_;b<8;C}9 z+l#k8oZ;l+LfZxXxVup8@yb{|7)!ilBDNnje>gK_L{ZLxGi6-m^g(+&G9+bF#Ig*_ zR$yYR17?~kVBJ0yLLvm~j%$3n$`y$Oo)C7wfAkO@I9V-Z%Y91js}&5=az zfIoH<17yseNVv=aDHWD=r|d3P%C}$M=sc3J)m8N%@&qZ}*iTRuFi{*lZ>$aBO(OLo zJX*I^Y+kZxxZ~S+XrzEC3?T&#-FxPbeeW>D{jc@5lx&UY~gdOtaX2=fk%qKHg^%*0Qci!m24x9#*HcXS% z<3`%?2r1ff1#`F{Iq-#{C}?t(7su>kaIp(6!fk^w8#kPS%}jFx2Ngg`ds$B*da#Ni zL{7#{hK>h#Vo&l!V38Kq-B83HH4}rbFrWKs(@{}TxwCuZ`C=bdgAw(kjv)dlXu92# zz_uZMds2>wBgMIda8@cU2DKoE3LSj7*<|cixFIYpW4EmWT<95B@ZU?osOMLaQJ+&4 zKdL=yun}GqLZP>^=|OjEMwF>OvV#vthzBMbH|F*Pm!{s7H=^;%!ius_x>Jf}g}5-o z0{tW^AxF!NWPoYb0+9nL2XnNsG-Z1t5rDk^J<1CF|CAvWu+L)ZEi16-iz$IS`4`Cny!bK8 zix%E2rLY`=O?Gh;pI93 z#*FiE8KW;C&HnVIcH;KOe9SA$aR);;YOVwIj04#Fs?g`Hyn0R|t)YO&(9LrR(7(AX)lSd|KEScqwWHnjvx6#eMMt7kh9a zVOcI8pTa|`)zO0>@HbkpJ`#jY3twE96aN<(n^RLS>Q$abjZ;yMMV<~Cr*T|pGHhMn zkD`dJK2Hyno0f$w)iU@?YA=7^