# -*- Python -*-

import os
import platform
import lit

# Configuration file for the 'lit' test runner.

# name: The name of this test suite.
config.name = 'Zorg'

# testFormat: The test format to use to interpret tests.
#
# For now we require '&&' between commands, until they get globally killed and
# the test runner updated.
execute_external = platform.system() != 'Windows'
config.test_format = lit.formats.ShTest(execute_external)

# suffixes: A list of file extensions to treat as test files.
config.suffixes = ['.py']

# test_source_root: The root path where tests are located.
config.test_source_root = os.path.dirname(__file__)
config.test_exec_root = config.test_source_root

config.target_triple = None

config.environment['PYTHONPATH'] = os.path.join(config.test_source_root, '..')


src_root = os.path.join(config.test_source_root, '..')

config.substitutions.append(('%{src_root}', src_root))