# -*- Python -*-

# Configuration file for the 'lit' test runner.

def getRoot(config):
    if not config.parent:
        return config
    return getRoot(config.parent)

root = getRoot(config)

# testFormat: The test format to use to interpret tests.
config.test_format = lit.formats.SyntaxCheckTest(compiler=root.clang,
                                                 dir='/usr/include/c++/4.2.1',
                                                 recursive=False,
                                                 pattern='^(.*\\.h|[^.]*)$')

