16a1f50b8SJan Svoboda // RUN: rm -rf %t && mkdir -p %t 26a1f50b8SJan Svoboda // RUN: cp -r %S/Inputs/header-search-pruning/* %t 36a1f50b8SJan Svoboda // RUN: cp %S/header-search-pruning.cpp %t/header-search-pruning.cpp 46a1f50b8SJan Svoboda // RUN: sed -e "s|DIR|%/t|g" -e "s|DEFINES|-DINCLUDE_A|g" %S/Inputs/header-search-pruning/cdb.json > %t/cdb_a.json 56a1f50b8SJan Svoboda // RUN: sed -e "s|DIR|%/t|g" -e "s|DEFINES|-DINCLUDE_B|g" %S/Inputs/header-search-pruning/cdb.json > %t/cdb_b.json 66a1f50b8SJan Svoboda // 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.json 76a1f50b8SJan Svoboda // 86a1f50b8SJan Svoboda // RUN: clang-scan-deps -compilation-database %t/cdb_a.json -format experimental-full -optimize-args >> %t/result_a.json 9*f9096b89SJan Svoboda // RUN: cat %t/result_a.json | sed 's:\\\\\?:/:g' | FileCheck --check-prefixes=CHECK_A %s 106a1f50b8SJan Svoboda // 116a1f50b8SJan Svoboda // RUN: clang-scan-deps -compilation-database %t/cdb_b.json -format experimental-full -optimize-args >> %t/result_b.json 12*f9096b89SJan Svoboda // RUN: cat %t/result_b.json | sed 's:\\\\\?:/:g' | FileCheck --check-prefixes=CHECK_B %s 136a1f50b8SJan Svoboda // 146a1f50b8SJan Svoboda // RUN: clang-scan-deps -compilation-database %t/cdb_ab.json -format experimental-full -optimize-args >> %t/result_ab.json 15*f9096b89SJan Svoboda // RUN: cat %t/result_ab.json | sed 's:\\\\\?:/:g' | FileCheck --check-prefixes=CHECK_AB %s 166a1f50b8SJan Svoboda 176a1f50b8SJan Svoboda #include "mod.h" 186a1f50b8SJan Svoboda 196a1f50b8SJan Svoboda // CHECK_A: { 206a1f50b8SJan Svoboda // CHECK_A-NEXT: "modules": [ 216a1f50b8SJan Svoboda // CHECK_A-NEXT: { 226a1f50b8SJan Svoboda // CHECK_A-NEXT: "clang-module-deps": [], 236a1f50b8SJan Svoboda // CHECK_A-NEXT: "clang-modulemap-file": "{{.*}}", 246a1f50b8SJan Svoboda // CHECK_A-NEXT: "command-line": [ 256a1f50b8SJan Svoboda // CHECK_A-NEXT: "-cc1" 266a1f50b8SJan Svoboda // CHECK_A: "-I", 276a1f50b8SJan Svoboda // CHECK_A-NEXT: "begin", 286a1f50b8SJan Svoboda // CHECK_A-NEXT: "-I", 296a1f50b8SJan Svoboda // CHECK_A-NEXT: "a", 306a1f50b8SJan Svoboda // CHECK_A-NEXT: "-I", 316a1f50b8SJan Svoboda // CHECK_A-NEXT: "end" 326a1f50b8SJan Svoboda // CHECK_A: ], 336a1f50b8SJan Svoboda // CHECK_A-NEXT: "context-hash": "{{.*}}", 346a1f50b8SJan Svoboda // CHECK_A-NEXT: "file-deps": [ 356a1f50b8SJan Svoboda // CHECK_A: ], 366a1f50b8SJan Svoboda // CHECK_A-NEXT: "name": "mod" 376a1f50b8SJan Svoboda // CHECK_A-NEXT: } 386a1f50b8SJan Svoboda // CHECK_A-NEXT: ] 396a1f50b8SJan Svoboda // CHECK_A: } 406a1f50b8SJan Svoboda 416a1f50b8SJan Svoboda // CHECK_B: { 426a1f50b8SJan Svoboda // CHECK_B-NEXT: "modules": [ 436a1f50b8SJan Svoboda // CHECK_B-NEXT: { 446a1f50b8SJan Svoboda // CHECK_B-NEXT: "clang-module-deps": [], 456a1f50b8SJan Svoboda // CHECK_B-NEXT: "clang-modulemap-file": "{{.*}}", 466a1f50b8SJan Svoboda // CHECK_B-NEXT: "command-line": [ 476a1f50b8SJan Svoboda // CHECK_B-NEXT: "-cc1" 486a1f50b8SJan Svoboda // CHECK_B: "-I", 496a1f50b8SJan Svoboda // CHECK_B-NEXT: "begin", 506a1f50b8SJan Svoboda // CHECK_B-NEXT: "-I", 516a1f50b8SJan Svoboda // CHECK_B-NEXT: "b", 526a1f50b8SJan Svoboda // CHECK_B-NEXT: "-I", 536a1f50b8SJan Svoboda // CHECK_B-NEXT: "end" 546a1f50b8SJan Svoboda // CHECK_B: ], 556a1f50b8SJan Svoboda // CHECK_B-NEXT: "context-hash": "{{.*}}", 566a1f50b8SJan Svoboda // CHECK_B-NEXT: "file-deps": [ 576a1f50b8SJan Svoboda // CHECK_B: ], 586a1f50b8SJan Svoboda // CHECK_B-NEXT: "name": "mod" 596a1f50b8SJan Svoboda // CHECK_B-NEXT: } 606a1f50b8SJan Svoboda // CHECK_B-NEXT: ] 616a1f50b8SJan Svoboda // CHECK_B: } 626a1f50b8SJan Svoboda 636a1f50b8SJan Svoboda // CHECK_AB: { 646a1f50b8SJan Svoboda // CHECK_AB-NEXT: "modules": [ 656a1f50b8SJan Svoboda // CHECK_AB-NEXT: { 666a1f50b8SJan Svoboda // CHECK_AB-NEXT: "clang-module-deps": [], 676a1f50b8SJan Svoboda // CHECK_AB-NEXT: "clang-modulemap-file": "{{.*}}", 686a1f50b8SJan Svoboda // CHECK_AB-NEXT: "command-line": [ 696a1f50b8SJan Svoboda // CHECK_AB-NEXT: "-cc1" 706a1f50b8SJan Svoboda // CHECK_AB: "-I", 716a1f50b8SJan Svoboda // CHECK_AB-NEXT: "begin", 726a1f50b8SJan Svoboda // CHECK_AB-NEXT: "-I", 736a1f50b8SJan Svoboda // CHECK_AB-NEXT: "a", 746a1f50b8SJan Svoboda // CHECK_AB-NEXT: "-I", 756a1f50b8SJan Svoboda // CHECK_AB-NEXT: "b", 766a1f50b8SJan Svoboda // CHECK_AB-NEXT: "-I", 776a1f50b8SJan Svoboda // CHECK_AB-NEXT: "end" 786a1f50b8SJan Svoboda // CHECK_AB: ], 796a1f50b8SJan Svoboda // CHECK_AB-NEXT: "context-hash": "{{.*}}", 806a1f50b8SJan Svoboda // CHECK_AB-NEXT: "file-deps": [ 816a1f50b8SJan Svoboda // CHECK_AB: ], 826a1f50b8SJan Svoboda // CHECK_AB-NEXT: "name": "mod" 836a1f50b8SJan Svoboda // CHECK_AB-NEXT: } 846a1f50b8SJan Svoboda // CHECK_AB-NEXT: ] 856a1f50b8SJan Svoboda // CHECK_AB: } 86