# -*- 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
