#!/usr/bin/env python

# Runs a subsetting test suite. Compares the results of subsetting via harfbuz
# to subsetting via fonttools.

from __future__ import print_function

import io
import os
import subprocess
import sys

from subset_test_suite import SubsetTestSuite


def cmd(command):
	p = subprocess.Popen (
		command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
	p.wait ()
	print (p.stderr.read (), end="") # file=sys.stderr
	return p.stdout.read (), p.returncode


def run_test(test):
	result, return_code = cmd([hb_subset,
														 test.font_path,
														 "--unicodes=%s" % test.unicodes()])

	if return_code:
		print ("ERROR: hb-subset failed for %s, %s, %s" % (test.font_path, test.profile_path, test.unicodes()))
		return 1

	with open(os.path.join(test_suite.get_output_directory(),
												 test.get_font_name())) as expected:
		if not result == expected.read():
			print ("ERROR: hb-subset %s, %s, %s does not match expected value." % (test.font_path, test.profile_path, test.unicodes()))
			return 1

	return 0


args = sys.argv[1:]
if not args or sys.argv[1].find('hb-subset') == -1 or not os.path.exists (sys.argv[1]):
	print ("First argument does not seem to point to usable hb-subset.")
	sys.exit (1)
hb_subset, args = args[0], args[1:]

if not len(args):
	print ("No tests supplied.")
	sys.exit (1)

fails = 0
for path in args:
	with io.open(path, mode="r", encoding="utf-8") as f:
		print ("Running tests in " + path)
		test_suite = SubsetTestSuite(path, f.read())
		for test in test_suite.tests():
			fails += run_test(test)

if fails != 0:
	print (str (fails) + " test(s) failed.")
	sys.exit(1)
else:
	print ("All tests passed.")

7a2ed3cd98a83dd80cc1c11734fae6f27c636b60
<mask token>


def cmd(command):
    p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess
        .PIPE)
    p.wait()
    print(p.stderr.read(), end='')
    return p.stdout.read(), p.returncode


def run_test(test):
    result, return_code = cmd([hb_subset, test.font_path, '--unicodes=%s' %
        test.unicodes()])
    if return_code:
        print('ERROR: hb-subset failed for %s, %s, %s' % (test.font_path,
            test.profile_path, test.unicodes()))
        return 1
    with open(os.path.join(test_suite.get_output_directory(), test.
        get_font_name())) as expected:
        if not result == expected.read():
            print(
                'ERROR: hb-subset %s, %s, %s does not match expected value.' %
                (test.font_path, test.profile_path, test.unicodes()))
            return 1
    return 0


<mask token>

<mask token>


def cmd(command):
    p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess
        .PIPE)
    p.wait()
    print(p.stderr.read(), end='')
    return p.stdout.read(), p.returncode


def run_test(test):
    result, return_code = cmd([hb_subset, test.font_path, '--unicodes=%s' %
        test.unicodes()])
    if return_code:
        print('ERROR: hb-subset failed for %s, %s, %s' % (test.font_path,
            test.profile_path, test.unicodes()))
        return 1
    with open(os.path.join(test_suite.get_output_directory(), test.
        get_font_name())) as expected:
        if not result == expected.read():
            print(
                'ERROR: hb-subset %s, %s, %s does not match expected value.' %
                (test.font_path, test.profile_path, test.unicodes()))
            return 1
    return 0


<mask token>
if not args or sys.argv[1].find('hb-subset') == -1 or not os.path.exists(sys
    .argv[1]):
    print('First argument does not seem to point to usable hb-subset.')
    sys.exit(1)
<mask token>
if not len(args):
    print('No tests supplied.')
    sys.exit(1)
<mask token>
for path in args:
    with io.open(path, mode='r', encoding='utf-8') as f:
        print('Running tests in ' + path)
        test_suite = SubsetTestSuite(path, f.read())
        for test in test_suite.tests():
            fails += run_test(test)
if fails != 0:
    print(str(fails) + ' test(s) failed.')
    sys.exit(1)
else:
    print('All tests passed.')

<mask token>


def cmd(command):
    p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess
        .PIPE)
    p.wait()
    print(p.stderr.read(), end='')
    return p.stdout.read(), p.returncode


def run_test(test):
    result, return_code = cmd([hb_subset, test.font_path, '--unicodes=%s' %
        test.unicodes()])
    if return_code:
        print('ERROR: hb-subset failed for %s, %s, %s' % (test.font_path,
            test.profile_path, test.unicodes()))
        return 1
    with open(os.path.join(test_suite.get_output_directory(), test.
        get_font_name())) as expected:
        if not result == expected.read():
            print(
                'ERROR: hb-subset %s, %s, %s does not match expected value.' %
                (test.font_path, test.profile_path, test.unicodes()))
            return 1
    return 0


args = sys.argv[1:]
if not args or sys.argv[1].find('hb-subset') == -1 or not os.path.exists(sys
    .argv[1]):
    print('First argument does not seem to point to usable hb-subset.')
    sys.exit(1)
hb_subset, args = args[0], args[1:]
if not len(args):
    print('No tests supplied.')
    sys.exit(1)
fails = 0
for path in args:
    with io.open(path, mode='r', encoding='utf-8') as f:
        print('Running tests in ' + path)
        test_suite = SubsetTestSuite(path, f.read())
        for test in test_suite.tests():
            fails += run_test(test)
if fails != 0:
    print(str(fails) + ' test(s) failed.')
    sys.exit(1)
else:
    print('All tests passed.')

from __future__ import print_function
import io
import os
import subprocess
import sys
from subset_test_suite import SubsetTestSuite


def cmd(command):
    p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess
        .PIPE)
    p.wait()
    print(p.stderr.read(), end='')
    return p.stdout.read(), p.returncode


def run_test(test):
    result, return_code = cmd([hb_subset, test.font_path, '--unicodes=%s' %
        test.unicodes()])
    if return_code:
        print('ERROR: hb-subset failed for %s, %s, %s' % (test.font_path,
            test.profile_path, test.unicodes()))
        return 1
    with open(os.path.join(test_suite.get_output_directory(), test.
        get_font_name())) as expected:
        if not result == expected.read():
            print(
                'ERROR: hb-subset %s, %s, %s does not match expected value.' %
                (test.font_path, test.profile_path, test.unicodes()))
            return 1
    return 0


args = sys.argv[1:]
if not args or sys.argv[1].find('hb-subset') == -1 or not os.path.exists(sys
    .argv[1]):
    print('First argument does not seem to point to usable hb-subset.')
    sys.exit(1)
hb_subset, args = args[0], args[1:]
if not len(args):
    print('No tests supplied.')
    sys.exit(1)
fails = 0
for path in args:
    with io.open(path, mode='r', encoding='utf-8') as f:
        print('Running tests in ' + path)
        test_suite = SubsetTestSuite(path, f.read())
        for test in test_suite.tests():
            fails += run_test(test)
if fails != 0:
    print(str(fails) + ' test(s) failed.')
    sys.exit(1)
else:
    print('All tests passed.')

#!/usr/bin/env python

# Runs a subsetting test suite. Compares the results of subsetting via harfbuz
# to subsetting via fonttools.

from __future__ import print_function

import io
import os
import subprocess
import sys

from subset_test_suite import SubsetTestSuite


def cmd(command):
	p = subprocess.Popen (
		command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
	p.wait ()
	print (p.stderr.read (), end="") # file=sys.stderr
	return p.stdout.read (), p.returncode


def run_test(test):
	result, return_code = cmd([hb_subset,
														 test.font_path,
														 "--unicodes=%s" % test.unicodes()])

	if return_code:
		print ("ERROR: hb-subset failed for %s, %s, %s" % (test.font_path, test.profile_path, test.unicodes()))
		return 1

	with open(os.path.join(test_suite.get_output_directory(),
												 test.get_font_name())) as expected:
		if not result == expected.read():
			print ("ERROR: hb-subset %s, %s, %s does not match expected value." % (test.font_path, test.profile_path, test.unicodes()))
			return 1

	return 0


args = sys.argv[1:]
if not args or sys.argv[1].find('hb-subset') == -1 or not os.path.exists (sys.argv[1]):
	print ("First argument does not seem to point to usable hb-subset.")
	sys.exit (1)
hb_subset, args = args[0], args[1:]

if not len(args):
	print ("No tests supplied.")
	sys.exit (1)

fails = 0
for path in args:
	with io.open(path, mode="r", encoding="utf-8") as f:
		print ("Running tests in " + path)
		test_suite = SubsetTestSuite(path, f.read())
		for test in test_suite.tests():
			fails += run_test(test)

if fails != 0:
	print (str (fails) + " test(s) failed.")
	sys.exit(1)
else:
	print ("All tests passed.")
