16626f6feSBen Langmuir // RUN: rm -rf %t 26626f6feSBen Langmuir // RUN: split-file %s %t 36626f6feSBen Langmuir // RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json 46626f6feSBen Langmuir // RUN: sed "s|DIR|%/t|g" %t/cdb_without.json.template > %t/cdb_without.json 56626f6feSBen Langmuir // RUN: clang-scan-deps -compilation-database %t/cdb.json \ 6*71e32d5cSJan Svoboda // RUN: -format experimental-full > %t/deps.json 76626f6feSBen Langmuir // RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s 83ce78cbdSBen Langmuir // RUN: clang-scan-deps -compilation-database %t/cdb.json \ 9*71e32d5cSJan Svoboda // RUN: -format experimental-full -dependency-target foo > %t/deps_mt1.json 103ce78cbdSBen Langmuir // RUN: cat %t/deps_mt1.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s -check-prefix=DEPS_MT1 113ce78cbdSBen Langmuir // RUN: clang-scan-deps -compilation-database %t/cdb.json \ 12*71e32d5cSJan Svoboda // RUN: -format experimental-full -dependency-target foo -dependency-target bar > %t/deps_mt2.json 133ce78cbdSBen Langmuir // RUN: cat %t/deps_mt2.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s -check-prefix=DEPS_MT2 146626f6feSBen Langmuir // RUN: clang-scan-deps -compilation-database %t/cdb_without.json \ 15*71e32d5cSJan Svoboda // RUN: -format experimental-full > %t/deps_without.json 166626f6feSBen Langmuir // RUN: cat %t/deps_without.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t -check-prefix=WITHOUT %s 176626f6feSBen Langmuir 186626f6feSBen Langmuir // CHECK: { 196626f6feSBen Langmuir // CHECK-NEXT: "modules": [ 206626f6feSBen Langmuir // CHECK-NEXT: { 216626f6feSBen Langmuir // CHECK: "command-line": [ 226626f6feSBen Langmuir // CHECK-NEXT: "-cc1" 236626f6feSBen Langmuir // CHECK: "-serialize-diagnostic-file" 246626f6feSBen Langmuir // CHECK-NEXT: "[[PREFIX]]{{.*}}Mod{{.*}}.diag" 253ce78cbdSBen Langmuir // CHECK: "-MT" 263ce78cbdSBen Langmuir // CHECK-NEXT: "[[PREFIX]]{{.*}}Mod{{.*}}.pcm" 276626f6feSBen Langmuir // CHECK: "-dependency-file" 286626f6feSBen Langmuir // CHECK-NEXT: "[[PREFIX]]{{.*}}Mod{{.*}}.d" 296626f6feSBen Langmuir // CHECK: ], 306626f6feSBen Langmuir 313ce78cbdSBen Langmuir // DEPS_MT1: "-MT" 323ce78cbdSBen Langmuir // DEPS_MT1-NEXT: "foo" 333ce78cbdSBen Langmuir 343ce78cbdSBen Langmuir // DEPS_MT2: "-MT" 353ce78cbdSBen Langmuir // DEPS_MT2-NEXT: "foo" 363ce78cbdSBen Langmuir // DEPS_MT2-NEXT: "-MT" 373ce78cbdSBen Langmuir // DEPS_MT2-NEXT: "bar" 383ce78cbdSBen Langmuir 396626f6feSBen Langmuir // WITHOUT: { 406626f6feSBen Langmuir // WITHOUT-NEXT: "modules": [ 416626f6feSBen Langmuir // WITHOUT-NEXT: { 426626f6feSBen Langmuir // WITHOUT: "command-line": [ 436626f6feSBen Langmuir // WITHOUT-NEXT: "-cc1" 446626f6feSBen Langmuir // WITHOUT-NOT: "-serialize-diagnostic-file" 456626f6feSBen Langmuir // WITHOUT-NOT: "-dependency-file" 463ce78cbdSBen Langmuir // WITHOUT-NOT: "-MT" 476626f6feSBen Langmuir // WITHOUT: ], 486626f6feSBen Langmuir 496626f6feSBen Langmuir //--- cdb.json.template 506626f6feSBen Langmuir [{ 516626f6feSBen Langmuir "directory": "DIR", 526626f6feSBen Langmuir "command": "clang -fsyntax-only DIR/tu.c -fmodules -fimplicit-module-maps -fmodules-cache-path=DIR/cache -serialize-diagnostics DIR/tu.diag -MD -MT tu -MF DIR/tu.d", 536626f6feSBen Langmuir "file": "DIR/tu.c" 546626f6feSBen Langmuir }] 556626f6feSBen Langmuir 566626f6feSBen Langmuir //--- cdb_without.json.template 576626f6feSBen Langmuir [{ 586626f6feSBen Langmuir "directory": "DIR", 596626f6feSBen Langmuir "command": "clang -fsyntax-only DIR/tu.c -fmodules -fimplicit-module-maps -fmodules-cache-path=DIR/cache", 606626f6feSBen Langmuir "file": "DIR/tu.c" 616626f6feSBen Langmuir }] 626626f6feSBen Langmuir 636626f6feSBen Langmuir //--- module.modulemap 646626f6feSBen Langmuir module Mod { header "Mod.h" } 656626f6feSBen Langmuir 666626f6feSBen Langmuir //--- Mod.h 676626f6feSBen Langmuir 686626f6feSBen Langmuir //--- tu.c 696626f6feSBen Langmuir #include "Mod.h" 70