|
5 | 5 |
|
6 | 6 | // Deduce the resource directory from the compiler path.
|
7 | 7 | //
|
8 |
| -// RUN: sed -e "s|CLANG|/our/custom/bin/clang|g" -e "s|DIR|%/t|g" \ |
| 8 | +// With `%clang-scan-deps --resource-dir-recipe modify-compiler-path`, the |
| 9 | +// resource directory should be identical to `%clang -print-resource-dir`. |
| 10 | +// (Assuming both binaries are built from the same Git checkout.) |
| 11 | +// Here we get the expected path by running `%clang -print-resource-dir` and |
| 12 | +// then verify `%clang-scan-deps` arrives at the same path by calling the |
| 13 | +// `Driver::GetResourcesPath` function. |
| 14 | +// |
| 15 | +// RUN: EXPECTED_RESOURCE_DIR=`%clang -print-resource-dir` |
| 16 | +// RUN: sed -e "s|CLANG|%clang|g" -e "s|DIR|%/t|g" \ |
9 | 17 | // RUN: %S/Inputs/resource_directory/cdb.json.template > %t/cdb_path.json
|
| 18 | +// |
10 | 19 | // RUN: clang-scan-deps -compilation-database %t/cdb_path.json --format experimental-full \
|
11 | 20 | // RUN: --resource-dir-recipe modify-compiler-path > %t/result_path.json
|
12 |
| -// RUN: cat %t/result_path.json | sed 's:\\\\\?:/:g' | FileCheck %s --check-prefix=CHECK-PATH |
| 21 | +// RUN: cat %t/result_path.json | sed 's:\\\\\?:/:g' \ |
| 22 | +// RUN: | FileCheck %s --check-prefix=CHECK-PATH -DEXPECTED_RESOURCE_DIR="$EXPECTED_RESOURCE_DIR" |
13 | 23 | // CHECK-PATH: "-resource-dir"
|
14 |
| -// CHECK-PATH-NEXT: "/our/custom/lib{{.*}}" |
| 24 | +// CHECK-PATH-NEXT: "[[EXPECTED_RESOURCE_DIR]]" |
15 | 25 |
|
16 | 26 | // Run the compiler and ask it for the resource directory.
|
17 | 27 | //
|
| 28 | +// With `%clang-scan-deps --resource-dir-recipe invoke-compiler`, the resource |
| 29 | +// directory should be identical to `<clang> -print-resource-dir`, where <clang> |
| 30 | +// is an arbitrary version of Clang. (This configuration is not really supported.) |
| 31 | +// Here we hard-code the expected path into `%t/compiler` and then verify |
| 32 | +// `%clang-scan-deps` arrives at the path by actually running the executable. |
| 33 | +// |
| 34 | +// RUN: EXPECTED_RESOURCE_DIR="/custom/compiler/resources" |
| 35 | +// RUN: echo "#!/bin/sh" > %t/compiler |
| 36 | +// RUN: echo "echo '$EXPECTED_RESOURCE_DIR'" >> %t/compiler |
18 | 37 | // RUN: chmod +x %t/compiler
|
19 | 38 | // RUN: sed -e "s|CLANG|%/t/compiler|g" -e "s|DIR|%/t|g" \
|
20 | 39 | // RUN: %S/Inputs/resource_directory/cdb.json.template > %t/cdb_invocation.json
|
| 40 | +// |
21 | 41 | // RUN: clang-scan-deps -compilation-database %t/cdb_invocation.json --format experimental-full \
|
22 | 42 | // RUN: --resource-dir-recipe invoke-compiler > %t/result_invocation.json
|
23 |
| -// RUN: cat %t/result_invocation.json | sed 's:\\\\\?:/:g' | FileCheck %s --check-prefix=CHECK-INVOCATION |
| 43 | +// RUN: cat %t/result_invocation.json | sed 's:\\\\\?:/:g' \ |
| 44 | +// RUN: | FileCheck %s --check-prefix=CHECK-PATH -DEXPECTED_RESOURCE_DIR="$EXPECTED_RESOURCE_DIR" |
24 | 45 | // CHECK-INVOCATION: "-resource-dir"
|
25 |
| -// CHECK-INVOCATION-NEXT: "/custom/compiler/resources" |
| 46 | +// CHECK-INVOCATION-NEXT: "[[EXPECTED_RESOURCE_DIR]]" |
0 commit comments