Edit

kc3-lang/harfbuzz/test/subset/generate-expected-outputs.py

Branch :

  • Show log

    Commit

  • Author : cclauss
    Date : 2018-12-30 13:07:28
    Hash : b5c12b9f
    Message : print() is a function in Python 3 (#1520)

  • test/subset/generate-expected-outputs.py
  • #!/usr/bin/env python
    
    # Pre-generates the expected output subset files (via fonttools) for
    # specified subset test suite(s).
    
    from __future__ import print_function, division, absolute_import
    
    import io
    import os
    import sys
    
    from subprocess import check_call
    from subset_test_suite import SubsetTestSuite
    
    
    def usage():
    	print("Usage: generate-expected-outputs.py <test suite file> ...")
    
    
    def generate_expected_output(input_file, unicodes, profile_flags, output_path):
    	args = ["fonttools", "subset", input_file]
    	args.extend(profile_flags)
    	args.extend(["--notdef-outline",
    		     "--name-IDs=*",
    		     "--name-languages=*",
    		     "--name-legacy",
    		     "--drop-tables+=DSIG,GPOS,GSUB,GDEF",
    		     "--unicodes=%s" % unicodes,
    		     "--output-file=%s" % output_path])
    	check_call(args)
    
    
    args = sys.argv[1:]
    if not args:
    	usage()
    
    for path in args:
    	with io.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))