From 368464a8f3f93a08d31547734b97b4886ac20e52 Mon Sep 17 00:00:00 2001 From: ReadRoberts Date: Wed, 19 Jun 2019 14:29:33 -0700 Subject: [PATCH] [makeotfexe] Add test case for bug 811 afdko issue "Bug in building MarkToBase lookup type 4" #811. --- .../expected_output/bug811.ttx | 83 +++++++++++++++++++ tests/makeotfexe_data/input/bug811/feat.fea | 19 +++++ tests/makeotfexe_data/input/bug811/font.pfa | 71 ++++++++++++++++ tests/makeotfexe_test.py | 13 +++ 4 files changed, 186 insertions(+) create mode 100644 tests/makeotfexe_data/expected_output/bug811.ttx create mode 100644 tests/makeotfexe_data/input/bug811/feat.fea create mode 100644 tests/makeotfexe_data/input/bug811/font.pfa diff --git a/tests/makeotfexe_data/expected_output/bug811.ttx b/tests/makeotfexe_data/expected_output/bug811.ttx new file mode 100644 index 000000000..8eb6bc7ea --- /dev/null +++ b/tests/makeotfexe_data/expected_output/bug811.ttx @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/makeotfexe_data/input/bug811/feat.fea b/tests/makeotfexe_data/input/bug811/feat.fea new file mode 100644 index 000000000..3b60d1385 --- /dev/null +++ b/tests/makeotfexe_data/input/bug811/feat.fea @@ -0,0 +1,19 @@ + +table head { + FontRevision 1.011; +} head; + +languagesystem DFLT dflt; + +# Copeid loosely from SourceCodeProRegular +@mGC_above_300_500 = [.notdef]; +@mGC_above_300_680 = [a]; + +markClass @mGC_above_300_500 @MC_above; +markClass @mGC_above_300_680 @MC_above; + +feature GPS4 { + + pos base .notdef mark @MC_above; + pos base a mark @MC_above; +} GPS4; \ No newline at end of file diff --git a/tests/makeotfexe_data/input/bug811/font.pfa b/tests/makeotfexe_data/input/bug811/font.pfa new file mode 100644 index 000000000..4e103e905 --- /dev/null +++ b/tests/makeotfexe_data/input/bug811/font.pfa @@ -0,0 +1,71 @@ +%!FontType1-1.1: SourceSerifPro-Regular 1.0 +%ADOt1write: (1.0.34) +%%BeginResource: font SourceSerifPro-Regular +12 dict dup begin +/FontType 1 def +/FontName /SourceSerifPro-Regular def +/FontInfo 7 dict dup begin +/version (1.0) def +/Notice (Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.) def +/Copyright (Copyright 2014 Adobe Systems Incorporated. All Rights Reserved.) def +/FamilyName (Source Serif Pro) def +end def +/PaintType 0 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/Encoding StandardEncoding def +/FontBBox {-151 10 531 820} def +end +currentfile eexec BAB431EA06BB0A1031E1AA11919E714AC69FC6474167B6 +17C8FF56014245E5C1290C81D5312994CDC47B07C655DDD53C35D530C44F953F +804152D5ED7591016D3D1968FC4A9F629E0ADB83B91691E8A0AB81C098760580 +FFC73B03E534FD00C1C69885C6151AADEBF9BBF7284F088A81EB0A35C6F197CE +C173C8CE58E9B3FBEBF7D49545999FA57A7A5A1B26B5A043EFA3B327BCA94F18 +86E0147BE33716D304B24CEB7E89D8626444FA1EE116EEBDBB6E33ADDEEFE14E +2DC12D84FE2170D0C1780958ED3BA07FA26741A6FE7B905C5C7EEBF87FCB87C1 +152EDB0A053EABFA5158B67F1A5FCAB305A3629E5742EFE1F03AC8B914674ACF +3561EFE1F3F63FF9DBDD6BB3656F8CAC8FBFED6BD0268D01803B872E3A013E37 +5E2A88A23DC6AC16C2DD6BA37DCBFCFB2BE8BC3C0D50AC62B7BDA8EC036FA5B7 +B6FDC19EE2F7A8DFDAAAB8848D2767B945658D7A76FC1DC150D2C7C4D439E4C6 +5AE8D4C78D4753139A826042642E768DC6BA0A299C7AE0A73D34103BBAFC28DF +F5EFF54B907D95B1DF08E675550F13A4B6604FFC17CA288FD1CC7096D726C6B2 +C054C7751CFC7AC8BF1ED6A32D66511AEED2FA6C37F117589FACCB71230099ED +F18616A45F1BFC054DCBF2EC0EA1161B068E764A4E1DE82AEA5A3E8E8BC2FF43 +2AB25FA09826009C4E4715E197E2EE9ED128ED2BB342DE97667709F7B28D45C6 +38B1E5186AC11D136CC3448E9AA6D4C4770E08E841776F6509E0ED7BE47AE414 +63D9C6E8E7F01358B19E81946781DC46AD622636645323AC9E8F54DE259C72AD +22897189FE0F94DACB63A12DCC91B36ABC6DF0B40893506F3140928B9655EB7D +EF30A3DB087744731F1B354F905087C09442F619A708632B420698677F88B48A +8E2F10E9A1BFD691701F3F9A7F4CA7AE962B35932B420A169FFC7D68D73BA28A +2E4EDA6F7AF4043AC8A0504DA03A807E596A33D931C86DBD515DF7785F37DDD4 +474042CC4F4162256A72D27DCD5652CA25875780DC8D08C77D206AC4B2283BDC +ACE78B97B16C36FAAC198AC144BBB28667AD4735F92BF68422AB02503228222A +FE28DF3EA257CAC35C50DA04BDFF02BCC2A768ED0E596CD52A5BE194D1DEDDC5 +E2C98671187FC42A5266E0FE0F5E54CED9DC3033002EA38F173D29C447057E67 +995899943096075A9679EB9DD294E7F21BF963B1740125A70AA528B388FB3667 +F42E599A3A9E8E61BAD3C618A84E3544C275B99890D4957901A17816667037F1 +F9A2CBDB29D186A57007B593A1C82EE07C1E7BEC56AFF1DB899E317E47E438F6 +F9E8048B4125773C9B10B7889DB3F0294E30A40009DCDB637900B59441DBA845 +04BC70EECDCCF3774CEC136C4D516DD4BBAF09DD31E61CDE7B53CB4E8D95EC50 +A6F9B29010E4534C0F87A93CFCB7B003E348C35966F6FCE678E52C6565A6F2A8 +4C8015D13E43C4B83C4C157D3CA080CD9D14EA84507450A5D8BFAD55162955AC +6ADE9AABEAC482F8FE01C3DD49E85794826384FDED2C4A58DCC6949E9C1C8BD5 +558DCA00A4A68A0947C8F2BC1A2CA0512C43CD88610CB79EE47D00FE2011CFA5 +9EDE376FC214890CA0AC278FCE390889CFE4A1F4CB3E93DDA1311FB3CDBE8031 +3C1E765AFB46B6D66B9FFAC8EE3FAAFA660E91FC528BD0507BAC8978F74B5C5D +FA73FD286E1549874CF0D583E4FB4FDDB10EC6450DC16FB67EFB4B876F327613 +5D487765CD6D67AD6C1AA8F82D4E37B1CB943177C0BA9A23B7F593CD156E4391 +3DD4777C9B9BF1575E2B7BE21F0BA40D062C8FBBF68A64119736ABD5C6CF5BEF +41A6E9528CA8B0AAFF647AF80B5EF8EFA8A4D960B3D9165B2C0011B77F2FD5F1 +C3DCB2E2432E8E65283DC59BF83B6723CA8B2F1712E8540913A21126BB644A90 +51A91F3CDEB3A1DB1CA41E65084F7C +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +%%EOF diff --git a/tests/makeotfexe_test.py b/tests/makeotfexe_test.py index 4c3d0819f..4da80436e 100644 --- a/tests/makeotfexe_test.py +++ b/tests/makeotfexe_test.py @@ -416,3 +416,16 @@ def test_parameter_offset_overflow_bug746(): with open(stderr_path, 'rb') as f: output = f.read() assert(b"[FATAL] feature parameter offset too large") in output + + +def test_base_anchor_bug811(): + input_filename = "bug811/font.pfa" + feat_filename = get_input_path('bug811/feat.fea') + actual_path = get_temp_file_path() + ttx_filename = "bug811.ttx" + runner(CMD + ['-o', 'f', '_{}'.format(get_input_path(input_filename)), + 'ff', '_{}'.format(get_input_path(feat_filename)), + 'o', '_{}'.format(actual_path)]) + actual_ttx = generate_ttx_dump(actual_path, ['GPOS']) + expected_ttx = get_expected_path(ttx_filename) + assert differ([expected_ttx, actual_ttx, '-s', '