OSDN Git Service

Test Roboto's vertical font metrics
authorRoozbeh Pournader <roozbeh@google.com>
Wed, 27 Jul 2016 20:08:37 +0000 (13:08 -0700)
committerRoozbeh Pournader <roozbeh@google.com>
Wed, 27 Jul 2016 20:10:24 +0000 (13:10 -0700)
Test that yMin, yMax, Ascent, and Descent values of Roboto are not
changed.

Bug: 26187231
Change-Id: Ia41f5a118e292b8eda8dae5124be112dc0cdbc8d

tools/fonts/fontchain_lint.py

index 336fce9..b6f46a2 100755 (executable)
@@ -554,6 +554,15 @@ def compute_expected_emoji():
     return all_emoji, default_emoji, equivalent_emoji
 
 
+def check_vertical_metrics():
+    for record in _fallback_chain:
+        if record.name in ['sans-serif', 'sans-serif-condensed']:
+            font = open_font(record.font)
+            assert (font['head'].yMax == 2163 and font['head'].yMin == -555 and
+                    font['hhea'].ascent == 1900 and font['hhea'].descent == -500), (
+                   'Vertical metrics of %s do not match expected Roboto metrics.' % (record.font,))
+
+
 def main():
     global _fonts_dir
     target_out = sys.argv[1]
@@ -562,6 +571,8 @@ def main():
     fonts_xml_path = path.join(target_out, 'etc', 'fonts.xml')
     parse_fonts_xml(fonts_xml_path)
 
+    check_vertical_metrics()
+
     hyphens_dir = path.join(target_out, 'usr', 'hyphen-data')
     check_hyphens(hyphens_dir)