[subset] apply subset profiles (flags) to the subset integration tests.
This commit is contained in:
parent
a4aca190a9
commit
5241d7f4b9
|
@ -15,16 +15,17 @@ def usage():
|
||||||
print "Usage: generate-expected-outputs.py <test suite file> ..."
|
print "Usage: generate-expected-outputs.py <test suite file> ..."
|
||||||
|
|
||||||
|
|
||||||
def generate_expected_output(input_file, unicodes, output_path):
|
def generate_expected_output(input_file, unicodes, profile_flags, output_path):
|
||||||
check_call(["fonttools", "subset",
|
args = ["fonttools", "subset", input_file]
|
||||||
input_file,
|
args.extend(profile_flags)
|
||||||
"--notdef-outline",
|
args.extend(["--notdef-outline",
|
||||||
"--name-IDs=*",
|
"--name-IDs=*",
|
||||||
"--name-languages=*",
|
"--name-languages=*",
|
||||||
"--name-legacy",
|
"--name-legacy",
|
||||||
"--drop-tables+=DSIG,GPOS,GSUB,GDEF",
|
"--drop-tables+=DSIG,GPOS,GSUB,GDEF",
|
||||||
"--unicodes=%s" % unicodes,
|
"--unicodes=%s" % unicodes,
|
||||||
"--output-file=%s" % output_path])
|
"--output-file=%s" % output_path])
|
||||||
|
check_call(args)
|
||||||
|
|
||||||
|
|
||||||
args = sys.argv[1:]
|
args = sys.argv[1:]
|
||||||
|
@ -41,6 +42,6 @@ for path in args:
|
||||||
unicodes = test.unicodes()
|
unicodes = test.unicodes()
|
||||||
font_name = test.get_font_name()
|
font_name = test.get_font_name()
|
||||||
print "Creating subset %s/%s" % (output_directory, font_name)
|
print "Creating subset %s/%s" % (output_directory, font_name)
|
||||||
generate_expected_output(test.font_path, unicodes,
|
generate_expected_output(test.font_path, unicodes, test.get_profile_flags(),
|
||||||
os.path.join(output_directory,
|
os.path.join(output_directory,
|
||||||
font_name))
|
font_name))
|
||||||
|
|
|
@ -44,6 +44,7 @@ def run_test(test):
|
||||||
"--font-file=" + test.font_path,
|
"--font-file=" + test.font_path,
|
||||||
"--output-file=" + out_file,
|
"--output-file=" + out_file,
|
||||||
"--unicodes=%s" % test.unicodes()]
|
"--unicodes=%s" % test.unicodes()]
|
||||||
|
cli_args.extend (test.get_profile_flags())
|
||||||
print (' '.join(cli_args))
|
print (' '.join(cli_args))
|
||||||
_, return_code = cmd(cli_args)
|
_, return_code = cmd(cli_args)
|
||||||
|
|
||||||
|
@ -78,7 +79,7 @@ def run_ttx(file):
|
||||||
|
|
||||||
def strip_check_sum (ttx_string):
|
def strip_check_sum (ttx_string):
|
||||||
return re.sub ('checkSumAdjustment value=["]0x([0-9a-fA-F])+["]',
|
return re.sub ('checkSumAdjustment value=["]0x([0-9a-fA-F])+["]',
|
||||||
'checkSumAdjustment value="0x00000000"',
|
'checkSumAdjustment value="0x00000000"',
|
||||||
ttx_string, count=1)
|
ttx_string, count=1)
|
||||||
|
|
||||||
args = sys.argv[1:]
|
args = sys.argv[1:]
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import io
|
||||||
import os
|
import os
|
||||||
|
|
||||||
# A single test in a subset test suite. Identifies a font
|
# A single test in a subset test suite. Identifies a font
|
||||||
|
@ -13,15 +14,19 @@ class Test:
|
||||||
def unicodes(self):
|
def unicodes(self):
|
||||||
return ",".join("%X" % ord(c) for (i, c) in enumerate(self.subset))
|
return ",".join("%X" % ord(c) for (i, c) in enumerate(self.subset))
|
||||||
|
|
||||||
|
def get_profile_flags(self):
|
||||||
|
with io.open(self.profile_path, mode="r", encoding="utf-8") as f:
|
||||||
|
return f.read().splitlines();
|
||||||
|
|
||||||
def get_font_name(self):
|
def get_font_name(self):
|
||||||
font_base_name = os.path.basename(self.font_path)
|
font_base_name = os.path.basename(self.font_path)
|
||||||
font_base_name_parts = os.path.splitext(font_base_name)
|
font_base_name_parts = os.path.splitext(font_base_name)
|
||||||
profile_name = os.path.splitext(os.path.basename(self.profile_path))[0]
|
profile_name = os.path.splitext(os.path.basename(self.profile_path))[0]
|
||||||
|
|
||||||
return "%s.%s.%s%s" % (font_base_name_parts[0],
|
return "%s.%s.%s%s" % (font_base_name_parts[0],
|
||||||
profile_name,
|
profile_name,
|
||||||
self.unicodes(),
|
self.unicodes(),
|
||||||
font_base_name_parts[1])
|
font_base_name_parts[1])
|
||||||
|
|
||||||
# A group of tests to perform on the subsetter. Each test
|
# A group of tests to perform on the subsetter. Each test
|
||||||
# Identifies a font a subsetting profile, and a subset to be cut.
|
# Identifies a font a subsetting profile, and a subset to be cut.
|
||||||
|
|
Loading…
Reference in New Issue