diff options
| author | Alex Lorenz <arphaman@gmail.com> | 2019-08-26 17:59:41 +0000 |
|---|---|---|
| committer | Alex Lorenz <arphaman@gmail.com> | 2019-08-26 17:59:41 +0000 |
| commit | 8679ef4e46a4d7b46a521a905d60357854117d43 (patch) | |
| tree | e4499bc7e0be5bdd7c34268d20b083d82e6d0426 /clang/test | |
| parent | 846429de741046b3f06d7a515a54d970325b74ad (diff) | |
| download | bcm5719-llvm-8679ef4e46a4d7b46a521a905d60357854117d43.tar.gz bcm5719-llvm-8679ef4e46a4d7b46a521a905d60357854117d43.zip | |
[driver] add a new option `-gen-cdb-fragment-path` to emit
a fragment of a compilation database for each compilation
This patch adds a new option called -gen-cdb-fragment-path to the driver,
which can be used to specify a directory path to which clang can emit a fragment
of a CDB for each compilation it needs to invoke.
This option emits the same CDB contents as -MJ, and will be ignored if -MJ is specified.
Differential Revision: https://reviews.llvm.org/D66555
llvm-svn: 369938
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Driver/gen-cdb-fragment.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/clang/test/Driver/gen-cdb-fragment.c b/clang/test/Driver/gen-cdb-fragment.c new file mode 100644 index 00000000000..553c349afc4 --- /dev/null +++ b/clang/test/Driver/gen-cdb-fragment.c @@ -0,0 +1,37 @@ +// 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 + +// Empty path is equivalent to '.' +// 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 |

