#!/usr/bin/env python3 # Pre-generates the expected output subset files (via fonttools) for # specified subset test suite(s). import os import sys from subprocess import check_call from subset_test_suite import SubsetTestSuite def usage(): print("Usage: generate-expected-outputs.py ...") def generate_expected_output(input_file, unicodes, profile_flags, output_path): args = ["fonttools", "subset", input_file] args.extend(["--notdef-outline", "--layout-features=*", "--drop-tables+=DSIG,GPOS,GSUB,GDEF", "--drop-tables-=sbix", "--unicodes=%s" % unicodes, "--output-file=%s" % output_path]) args.extend(profile_flags) check_call(args) args = sys.argv[1:] if not args: usage() for path in args: with open(path, mode="r", encoding="utf-8") as f: test_suite = SubsetTestSuite(path, f.read()) output_directory = test_suite.get_output_directory() print("Generating output files for %s" % output_directory) for test in test_suite.tests(): unicodes = test.unicodes() font_name = test.get_font_name() print("Creating subset %s/%s" % (output_directory, font_name)) generate_expected_output(test.font_path, unicodes, test.get_profile_flags(), os.path.join(output_directory, font_name))