[aat] Add macOS specific tests (#1404)

This commit is contained in:
Ebrahim Byagowi 2018-11-23 15:40:05 +03:30 committed by GitHub
parent 22798e93c4
commit 341851efe1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 73 additions and 24 deletions

View File

@ -2,30 +2,41 @@ version: 2
jobs:
macos-llvm-gcc-4.2:
macos-10.12-aat-fonts:
macos:
xcode: "8.3.3"
xcode: "9.2.0"
steps:
- checkout
- run: brew update-reset
- run: brew install wget pkg-config libtool ragel freetype glib cairo
- run: wget https://packages.macports.org/llvm-gcc42/llvm-gcc42-2336.11_3+universal.darwin_15.i386-x86_64.tbz2 && tar zxvf llvm-gcc42-2336.11_3+universal.darwin_15.i386-x86_64.tbz2
- run: CC=$PWD/opt/local/bin/llvm-gcc-4.2 CXX=$PWD/opt/local/bin/llvm-g++-4.2 ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo
# Ignoring assembler complains, https://stackoverflow.com/a/39867021
- run: make 2>&1 | grep -v -e '^/var/folders/*' -e '^[[:space:]]*\.section' -e '^[[:space:]]*\^[[:space:]]*~*'
- run: ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo
- run: make -j4
- run: make check || .ci/fail.sh
macos-notest-apple-gcc-i686-4.2:
macos:
xcode: "8.3.3"
steps:
- checkout
- run: brew update-reset
- run: brew install wget pkg-config libtool ragel
- run: wget https://packages.macports.org/apple-gcc42/apple-gcc42-5666.3_15+universal.darwin_15.i386-x86_64.tbz2 && tar zxvf apple-gcc42-5666.3_15+universal.darwin_15.i386-x86_64.tbz2
- run: CPP=$PWD/opt/local/bin/i686-apple-darwin15-cpp-apple-4.2.1 CC=$PWD/opt/local/bin/i686-apple-darwin15-gcc-apple-4.2.1 CXX=$PWD/opt/local/bin/i686-apple-darwin15-g++-apple-4.2.1 ./autogen.sh
# Ignoring assembler complains, https://stackoverflow.com/a/39867021
- run: make 2>&1 | grep -v -e '^/var/folders/*' -e '^[[:space:]]*\.section' -e '^[[:space:]]*\^[[:space:]]*~*'
# macos-llvm-gcc-4.2:
# macos:
# xcode: "8.3.3"
# steps:
# - checkout
# - run: brew update-reset
# - run: brew install wget pkg-config libtool ragel freetype glib cairo
# - run: wget https://packages.macports.org/llvm-gcc42/llvm-gcc42-2336.11_3+universal.darwin_15.i386-x86_64.tbz2 && tar zxvf llvm-gcc42-2336.11_3+universal.darwin_15.i386-x86_64.tbz2
# - run: CC=$PWD/opt/local/bin/llvm-gcc-4.2 CXX=$PWD/opt/local/bin/llvm-g++-4.2 ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo
# # Ignoring assembler complains, https://stackoverflow.com/a/39867021
# - run: make 2>&1 | grep -v -e '^/var/folders/*' -e '^[[:space:]]*\.section' -e '^[[:space:]]*\^[[:space:]]*~*'
# - run: make check || .ci/fail.sh
# macos-notest-apple-gcc-i686-4.2:
# macos:
# xcode: "8.3.3"
# steps:
# - checkout
# - run: brew update-reset
# - run: brew install wget pkg-config libtool ragel
# - run: wget https://packages.macports.org/apple-gcc42/apple-gcc42-5666.3_15+universal.darwin_15.i386-x86_64.tbz2 && tar zxvf apple-gcc42-5666.3_15+universal.darwin_15.i386-x86_64.tbz2
# - run: CPP=$PWD/opt/local/bin/i686-apple-darwin15-cpp-apple-4.2.1 CC=$PWD/opt/local/bin/i686-apple-darwin15-gcc-apple-4.2.1 CXX=$PWD/opt/local/bin/i686-apple-darwin15-g++-apple-4.2.1 ./autogen.sh
# # Ignoring assembler complains, https://stackoverflow.com/a/39867021
# - run: make 2>&1 | grep -v -e '^/var/folders/*' -e '^[[:space:]]*\.section' -e '^[[:space:]]*\^[[:space:]]*~*'
macos-notest-ios:
macos:
@ -302,6 +313,7 @@ workflows:
build:
jobs:
# macOS
- macos-10.12-aat-fonts
#- macos-llvm-gcc-4.2
#- macos-notest-apple-gcc-i686-4.2
- macos-notest-ios

View File

@ -5,6 +5,7 @@ if (HB_BUILD_UTILS)
add_test (NAME ${test}
COMMAND "${PYTHON_EXECUTABLE}" run-tests.py $<TARGET_FILE:hb-shape> "data/in-house/${test}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
set_property(TEST ${test} PROPERTY SKIP_RETURN_CODE 77)
endforeach ()
file (READ "${CMAKE_CURRENT_SOURCE_DIR}/data/text-rendering-tests/Makefile.sources" TEXTRENDERING)
@ -13,5 +14,6 @@ if (HB_BUILD_UTILS)
add_test (NAME ${test}
COMMAND "${PYTHON_EXECUTABLE}" run-tests.py $<TARGET_FILE:hb-shape> "data/text-rendering-tests/${test}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
set_property(TEST ${test} PROPERTY SKIP_RETURN_CODE 77)
endforeach ()
endif ()

View File

@ -33,6 +33,7 @@ TESTS = \
tests/khmer-misc.tests \
tests/language-tags.tests \
tests/ligature-id.tests \
tests/macos-10.12.tests \
tests/mark-attachment.tests \
tests/mark-filtering-sets.tests \
tests/mongolian-variation-selector.tests \

View File

@ -0,0 +1,10 @@
/Library/Fonts/Khmer MN.ttc@5f5b1072df99b7355d3066ea85fe82969d13c94a::U+17A2,U+1780,U+17D2,U+179F,U+179A,U+1781,U+17D2,U+1798,U+17C2,U+179A:[km_qa=0+1025|km_ka=1+1025|km_sa.sub=1+517|km_ro=4+593|km_vs_ae=5+605|km_kha=5+1025|km_mo.sub=5+0|km_ro=9+593]
/Library/Fonts/Tamil MN.ttc@37a2020c3f86ebcc45e02c1de5fdf81e2676989d::U+0BA4,U+0BCA,U+0B95,U+0BC1,U+0B95,U+0BCD,U+0B95,U+0BAA,U+0BCD,U+0BAA,U+0B9F,U+0BCD,U+0B9F,U+0BC1:[tgm_e=0+1702|tgc_ta=0+1598|tgm_aa=0+1074|tgc_ka=2@-74,0+1518|tgm_u=2+1205|tgc_ka=4+1592|tgm_pulli=4+503|tgc_ka=6+1592|tgc_pa=7+1370|tgm_pulli=7+503|tgc_pa=9+1370|tgc_tta=10+1566|tgm_pulli=10+503|tgc_tta=12+1566|tgm_u=12+1205]
/System/Library/Fonts/Times.dfont@39c954614d3f3317b28564db06d5b7b7a6ff0e39::U+0041,U+0066,U+0300,U+0066,U+0069,U+005A:[A=0+1479|f=1+682|gravecmb=1@-480,588+0|fi=3+1139|Z=5+1251]
/System/Library/Fonts/LucidaGrande.ttc@d89a9d7e57767bfe3b5a4cfd22bb1e9dbe03a062::U+05E1,U+05B0:[shevahebrew=0@-7,0+0|samekhhebrew=0+1361]
/Library/Fonts/Apple Chancery.ttf@5fc49ae9bce39e2105864323183b68ea34c9e562::U+0054,U+0068,U+0020,U+0074,U+0068,U+0020,U+006C,U+006C,U+0020,U+0074,U+0065,U+0020,U+0074,U+006F,U+0020,U+0074,U+0072,U+0020,U+0066,U+0072,U+0020,U+0066,U+0075,U+0020,U+0066,U+006A:[T_h=0+2308|space=2+569|t_h=3+1687|space=5+569|l_l=6+1108|space=8+569|t_e=9+1408|space=11+569|t_o=12+1531|space=14+569|t_r=15+1385|space=17+569|f_r=18+1432|space=20+569|f_u=21+1733|space=23+569|f_j=24+1073]
/System/Library/Fonts/GeezaPro.ttc@f43ee7151c2e9f1dddfbc26cfc148609eb5c5820::U+0627,U+0644,U+0623,U+064E,U+0628,U+0652,U+062C,U+064E,U+062F,U+0650,U+064A,U+064E,U+0651,U+0629,U+0640,U+0627,U+0644,U+0639,U+064E,U+0631,U+064E,U+0628,U+0650,U+064A,U+064E,U+0651,U+0629:[u0629.final.tehMarbuta=26+713|u064e_u0651.shaddaFatha=23@0,-200+0|u064a.medial.yeh=23+656|u0650.kasra=21@80,290+0|u0628.initial.beh=21@-80,0+576|u064e.fatha=19@200,-570+0|u0631.final.reh=19@-200,0+702|u064e.fatha=17@200,-200+0|u0639.medial.ain=17@-200,0+738|u0644.initial.lam=16+515|u0627.final.alef=15+647|u0640.tatweel=14+449|u0629.final.tehMarbuta=13+713|u064e_u0651.shaddaFatha=10@0,-200+0|u064a.initial.yeh=10+656|u0650.kasra=8@80,570+0|u062f.final.dal=8@-80,0+822|u064e.fatha=6@290,-160+0|u062c.medial.jeem=6@-290,0+1069|u0652.sukun=4@0,-200+0|u0628.initial.beh=4+656|u064e.fatha=1@-252,120+0|u0644_u0623.isolated.lamHamzaOnAlef=1@120,0+1282|u0627.alef=0+647]
/System/Library/Fonts/GeezaPro.ttc@f43ee7151c2e9f1dddfbc26cfc148609eb5c5820::U+0628,U+064A,U+064E,U+0651,U+0629:[u0629.final.tehMarbuta=4+713|u064e_u0651.shaddaFatha=1@0,-200+0|u064a.medial.yeh=1+656|u0628.initial.beh=0+656]
/System/Library/Fonts/GeezaPro.ttc@f43ee7151c2e9f1dddfbc26cfc148609eb5c5820::U+0631,U+0628:[u0628.beh=1+1415|u0631.reh=0@-202,0+700]
/System/Library/Fonts/GeezaPro.ttc@f43ee7151c2e9f1dddfbc26cfc148609eb5c5820::U+0628,U+064F:[u064f.damma=0@250,-250+0|u0628.beh=0@-250,0+1165]
/System/Library/Fonts/SFNSDisplay.ttf@92787c30716672737e9059bc367c15d04fbc1ced::U+0056,U+0041,U+0056,U+0041:[gid265=0+1227|gid4=1@-65,0+1162|gid265=2@-65,0+1162|gid4=3@-65,0+1227]

View File

@ -2,7 +2,7 @@
from __future__ import print_function, division, absolute_import
import sys, os, subprocess
import sys, os, subprocess, hashlib, tempfile, shutil
def cmd(command):
global process
@ -28,6 +28,7 @@ process = subprocess.Popen ([hb_shape, '--batch'],
stderr=sys.stdout)
fails = 0
skips = 0
if not len (args):
args = ['-']
@ -46,8 +47,24 @@ for filename in args:
for line in f:
fontfile, options, unicodes, glyphs_expected = line.split (":")
cwd = os.path.dirname(filename)
fontfile = os.path.normpath (os.path.join (cwd, fontfile))
if fontfile.startswith ('/') or fontfile.startswith ('"/'):
fontfile, expected_hash = fontfile.split('@')
try:
with open (fontfile, 'rb') as ff:
actual_hash = hashlib.sha1 (ff.read()).hexdigest ().strip ()
if actual_hash != expected_hash:
print ('different versions of the font is found, expected %s hash was %s but got %s, skip' %
(fontfile, expected_hash, actual_hash))
skips = skips + 1
continue
except:
print ('%s is not found, skip.' % fontfile)
skips = skips + 1
continue
else:
cwd = os.path.dirname(filename)
fontfile = os.path.normpath (os.path.join (cwd, fontfile))
extra_options = ["--shaper=ot"]
glyphs_expected = glyphs_expected.strip()
@ -63,6 +80,12 @@ for filename in args:
print ("%s %s %s %s --unicodes %s" %
(hb_shape, fontfile, ' '.join(extra_options), options, unicodes))
# hack to support fonts with space on run-tests.py, after several other tries...
if ' ' in fontfile:
new_fontfile = os.path.join (tempfile.gettempdir (), 'tmpfile')
shutil.copyfile(fontfile, new_fontfile)
fontfile = new_fontfile
glyphs1 = cmd ([hb_shape, "--font-funcs=ft",
fontfile] + extra_options + ["--unicodes",
unicodes] + (options.split (' ') if options else []))
@ -85,11 +108,12 @@ for filename in args:
print ("Expected: " + glyphs_expected) # file=sys.stderr
fails = fails + 1
if fails != 0:
if fails != 0 or skips != 0:
if not reference:
print (str (fails) + " tests failed.") # file=sys.stderr
sys.exit (1)
print ("%d tests are failed and %d tests are skipped." % (fails, skips)) # file=sys.stderr
if fails != 0:
sys.exit (1)
sys.exit (77)
else:
if not reference:
print ("All tests passed.")