xref: /llvm-project/clang/test/ClangScanDeps/line-directive.c (revision 8711120e8bcf891f3c316e20869493e93472f200)
1*8711120eSBen Langmuir // Check that we get the right file dependencies and not the declared paths from
2*8711120eSBen Langmuir // line directives.
3*8711120eSBen Langmuir 
4*8711120eSBen Langmuir // RUN: rm -rf %t
5*8711120eSBen Langmuir // RUN: split-file %s %t
6*8711120eSBen Langmuir // RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json
7*8711120eSBen Langmuir 
8*8711120eSBen Langmuir // RUN: clang-scan-deps -compilation-database %t/cdb.json \
9*8711120eSBen Langmuir // RUN:   -mode preprocess-dependency-directives -format experimental-full > %t/deps.json
10*8711120eSBen Langmuir 
11*8711120eSBen Langmuir // RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck %s -DPREFIX=%/t
12*8711120eSBen Langmuir 
13*8711120eSBen Langmuir // CHECK:      "file-deps": [
14*8711120eSBen Langmuir // CHECK-NEXT:   "[[PREFIX]]/tu.c"
15*8711120eSBen Langmuir // CHECK-NEXT:   "[[PREFIX]]/header.h"
16*8711120eSBen Langmuir // CHECK-NEXT: ]
17*8711120eSBen Langmuir 
18*8711120eSBen Langmuir //--- cdb.json.template
19*8711120eSBen Langmuir [{
20*8711120eSBen Langmuir   "file": "DIR/tu.c",
21*8711120eSBen Langmuir   "directory": "DIR",
22*8711120eSBen Langmuir   "command": "clang -fsyntax-only DIR/tu.c"
23*8711120eSBen Langmuir }]
24*8711120eSBen Langmuir 
25*8711120eSBen Langmuir //--- other.h
26*8711120eSBen Langmuir 
27*8711120eSBen Langmuir //--- other.c
28*8711120eSBen Langmuir 
29*8711120eSBen Langmuir //--- header.h
30*8711120eSBen Langmuir #line 100 "other.h"
31*8711120eSBen Langmuir 
32*8711120eSBen Langmuir //--- tu.c
33*8711120eSBen Langmuir #include "header.h"
34*8711120eSBen Langmuir #line 100 "other.c"
35