89 lines · cpp
1// RUN: rm -rf %t && mkdir -p %t2// RUN: cp -r %S/Inputs/header-search-pruning/* %t3// RUN: cp %S/header-search-pruning.cpp %t/header-search-pruning.cpp4// RUN: sed -e "s|DIR|%/t|g" -e "s|DEFINES|-DINCLUDE_A|g" %S/Inputs/header-search-pruning/cdb.json > %t/cdb_a.json5// RUN: sed -e "s|DIR|%/t|g" -e "s|DEFINES|-DINCLUDE_B|g" %S/Inputs/header-search-pruning/cdb.json > %t/cdb_b.json6// RUN: sed -e "s|DIR|%/t|g" -e "s|DEFINES|-DINCLUDE_A -DINCLUDE_B|g" %S/Inputs/header-search-pruning/cdb.json > %t/cdb_ab.json7//8// RUN: clang-scan-deps -compilation-database %t/cdb_a.json -format experimental-full -optimize-args=header-search >> %t/result_a.json9// RUN: cat %t/result_a.json | sed 's:\\\\\?:/:g' | FileCheck --check-prefixes=CHECK_A %s10//11// RUN: clang-scan-deps -compilation-database %t/cdb_b.json -format experimental-full -optimize-args=header-search >> %t/result_b.json12// RUN: cat %t/result_b.json | sed 's:\\\\\?:/:g' | FileCheck --check-prefixes=CHECK_B %s13//14// RUN: clang-scan-deps -compilation-database %t/cdb_ab.json -format experimental-full -optimize-args=header-search >> %t/result_ab.json15// RUN: cat %t/result_ab.json | sed 's:\\\\\?:/:g' | FileCheck --check-prefixes=CHECK_AB %s16 17#include "mod.h"18 19// CHECK_A: {20// CHECK_A-NEXT: "modules": [21// CHECK_A-NEXT: {22// CHECK_A-NEXT: "clang-module-deps": [],23// CHECK_A-NEXT: "clang-modulemap-file": "{{.*}}",24// CHECK_A-NEXT: "command-line": [25// CHECK_A-NEXT: "-cc1"26// CHECK_A: "-I",27// CHECK_A-NEXT: "begin",28// CHECK_A-NEXT: "-I",29// CHECK_A-NEXT: "a",30// CHECK_A-NEXT: "-I",31// CHECK_A-NEXT: "end"32// CHECK_A: ],33// CHECK_A-NEXT: "context-hash": "{{.*}}",34// CHECK_A-NEXT: "file-deps": [35// CHECK_A: ],36// CHECK_A-NEXT: "link-libraries": [],37// CHECK_A-NEXT: "name": "mod"38// CHECK_A-NEXT: }39// CHECK_A-NEXT: ]40// CHECK_A: }41 42// CHECK_B: {43// CHECK_B-NEXT: "modules": [44// CHECK_B-NEXT: {45// CHECK_B-NEXT: "clang-module-deps": [],46// CHECK_B-NEXT: "clang-modulemap-file": "{{.*}}",47// CHECK_B-NEXT: "command-line": [48// CHECK_B-NEXT: "-cc1"49// CHECK_B: "-I",50// CHECK_B-NEXT: "begin",51// CHECK_B-NEXT: "-I",52// CHECK_B-NEXT: "b",53// CHECK_B-NEXT: "-I",54// CHECK_B-NEXT: "end"55// CHECK_B: ],56// CHECK_B-NEXT: "context-hash": "{{.*}}",57// CHECK_B-NEXT: "file-deps": [58// CHECK_B: ],59// CHECK_B-NEXT: "link-libraries": [],60// CHECK_B-NEXT: "name": "mod"61// CHECK_B-NEXT: }62// CHECK_B-NEXT: ]63// CHECK_B: }64 65// CHECK_AB: {66// CHECK_AB-NEXT: "modules": [67// CHECK_AB-NEXT: {68// CHECK_AB-NEXT: "clang-module-deps": [],69// CHECK_AB-NEXT: "clang-modulemap-file": "{{.*}}",70// CHECK_AB-NEXT: "command-line": [71// CHECK_AB-NEXT: "-cc1"72// CHECK_AB: "-I",73// CHECK_AB-NEXT: "begin",74// CHECK_AB-NEXT: "-I",75// CHECK_AB-NEXT: "a",76// CHECK_AB-NEXT: "-I",77// CHECK_AB-NEXT: "b",78// CHECK_AB-NEXT: "-I",79// CHECK_AB-NEXT: "end"80// CHECK_AB: ],81// CHECK_AB-NEXT: "context-hash": "{{.*}}",82// CHECK_AB-NEXT: "file-deps": [83// CHECK_AB: ],84// CHECK_AB-NEXT: "link-libraries": [],85// CHECK_AB-NEXT: "name": "mod"86// CHECK_AB-NEXT: }87// CHECK_AB-NEXT: ]88// CHECK_AB: }89