// Check that the scanner can adjust arguments by reading .rsp files in advance. // RUN: rm -rf %t // RUN: split-file %s %t // First run the tests with a .cdb // RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json // RUN: sed -e "s|DIR|%/t|g" %t/args_nested.template > %t/args_nested.rsp // RUN: cp %t/args_compilation.rsp %t/args.rsp // RUN: clang-scan-deps --compilation-database %t/cdb.json > %t/deps.json // RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s // RUN: cp %t/args_preprocess.rsp %t/args.rsp // RUN: clang-scan-deps --compilation-database %t/cdb.json > %t/deps.json // RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s // Now run the tests again with a in-place compilation database // RUN: cd %t // RUN: cp args_compilation.rsp args.rsp // RUN: clang-scan-deps -o deps.json -- %clang_cl @args.rsp // RUN: cat deps.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s // RUN: cp args_preprocess.rsp args.rsp // RUN: clang-scan-deps -o deps.json -- %clang_cl @args.rsp // RUN: cat deps.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s // Here we ensure that we got a qualified .obj with its full path, since that's what we're passing with /Fo // CHECK: [[PREFIX]]/tu.obj: //--- cdb.json.template [{ "file": "DIR/tu.cpp", "directory": "DIR", "command": "clang-cl @DIR/args.rsp" }] //--- args_compilation.rsp @args_nested.rsp /c //--- args_preprocess.rsp @args_nested.rsp /E //--- args_nested.template /I include tu.cpp /FoDIR/tu.obj //--- include/header.h //--- tu.cpp #include "header.h"