# -*- Python -*- vim: set ft=python ts=4 sw=4 expandtab tw=79:

import site

# Load the custom analyzer test format, which runs the test again with Z3 if it
# is available.
site.addsitedir(os.path.dirname(__file__))
import analyzer_test
config.test_format = analyzer_test.AnalyzerTest(
        config.test_format.execute_external, config.use_z3_solver)

# Diff command used by Clang Analyzer tests (when comparing .plist files
# with reference output)
config.substitutions.append(('%diff_plist',
    'diff -u -w -I "<string>/" -I "<string>.:" -I "version" -'))

# Diff command for testing SARIF output to reference output.
config.substitutions.append(('%diff_sarif',
    '''diff -U1 -w -I ".*file:.*%basename_t" -I '"version":' -I "2\.0\.0\-csd\.[0-9]*\.beta\." -'''))

if not config.root.clang_staticanalyzer:
    config.unsupported = True
