llvm/clang/test/Driver/gen-cdb-fragment.c

// REQUIRES: x86-registered-target
// RUN: rm -rf %t.cdb
// RUN: %clang -target x86_64-apple-macos10.15 -c %s -o -  -gen-cdb-fragment-path %t.cdb
// RUN: ls %t.cdb | FileCheck --check-prefix=CHECK-LS %s
// CHECK-LS: gen-cdb-fragment.c.{{.*}}.json

// RUN: cat %t.cdb/*.json | FileCheck --check-prefix=CHECK %s
// CHECK: { "directory": "{{.*}}", "file": "{{.*}}gen-cdb-fragment.c", "output": "-", "arguments": [{{.*}}, "--target=x86_64-apple-macos10.15"{{.*}}]},
// RUN: cat %t.cdb/*.json | FileCheck --check-prefix=CHECK-FLAG %s
// CHECK-FLAG-NOT: -gen-cdb-fragment-path

// RUN: rm -rf %t.cdb
// RUN: mkdir %t.cdb
// RUN: ls %t.cdb | not FileCheck --check-prefix=CHECK-LS %s
// RUN: %clang -target x86_64-apple-macos10.15 -S %s -o -  -gen-cdb-fragment-path %t.cdb
// RUN: ls %t.cdb | FileCheck --check-prefix=CHECK-LS %s

// Working directory arg is respected.
// RUN: rm -rf %t.cdb
// RUN: mkdir %t.cdb
// RUN: %clang -target x86_64-apple-macos10.15 -working-directory %t.cdb -c %s -o -  -gen-cdb-fragment-path "."
// RUN: ls %t.cdb | FileCheck --check-prefix=CHECK-LS %s
// RUN: cat %t.cdb/*.json | FileCheck --check-prefix=CHECK-CWD %s
// CHECK-CWD: "directory": "{{.*}}.cdb"

// -### does not emit the CDB fragment
// RUN: rm -rf %t.cdb
// RUN: mkdir %t.cdb
// RUN: %clang -target x86_64-apple-macos10.15 -S %s -o -  -gen-cdb-fragment-path %t.cdb -###
// RUN: ls %t.cdb | not FileCheck --check-prefix=CHECK-LS %s

// -MJ is preferred over -gen-cdb-fragment-path
// RUN: rm -rf %t.cdb
// RUN: mkdir %t.cdb
// RUN: %clang -target x86_64-apple-macos10.15 -S %s -o -  -gen-cdb-fragment-path %t.cdb -MJ %t.out
// RUN: ls %t.cdb | not FileCheck --check-prefix=CHECK-LS %s
// RUN: FileCheck %s < %t.out