brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.0 KiB · 38db3af Raw
184 lines · cpp
1// RUN: rm -rf %t.dir2// RUN: rm -rf %t.cdb3// RUN: mkdir -p %t.dir4// RUN: cp %s %t.dir/modules_cdb_input.cpp5// RUN: cp %s %t.dir/modules_cdb_input2.cpp6// RUN: mkdir %t.dir/Inputs7// RUN: cp %S/Inputs/header.h %t.dir/Inputs/header.h8// RUN: cp %S/Inputs/header2.h %t.dir/Inputs/header2.h9// RUN: cp %S/Inputs/module.modulemap %t.dir/Inputs/module.modulemap10// RUN: sed -e "s|DIR|%/t.dir|g" %S/Inputs/modules_cdb.json > %t.cdb11// RUN: sed -e "s|DIR|%/t.dir|g" %S/Inputs/modules_cdb_clangcl.json > %t_clangcl.cdb12//13// RUN: clang-scan-deps -compilation-database %t.cdb -j 4 -format experimental-full \14// RUN:   -mode preprocess-dependency-directives > %t.result15// RUN: cat %t.result | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t.dir %s16//17// RUN: clang-scan-deps -compilation-database %t_clangcl.cdb -j 4 -format experimental-full \18// RUN:   -mode preprocess-dependency-directives > %t_clangcl.result19// RUN: cat %t_clangcl.result | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t.dir %s20 21#include "header.h"22 23// CHECK:      {24// CHECK-NEXT:   "modules": [25// CHECK-NEXT:     {26// CHECK-NEXT:       "clang-module-deps": [27// CHECK-NEXT:         {28// CHECK-NEXT:           "context-hash": "[[HASH_H2_DINCLUDE:[A-Z0-9]+]]",29// CHECK-NEXT:           "module-name": "header2"30// CHECK-NEXT:         }31// CHECK-NEXT:       ],32// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/Inputs/module.modulemap",33// CHECK-NEXT:       "command-line": [34// CHECK-NEXT:         "-cc1"35// CHECK:              "-emit-module"36// CHECK:              "-fno-modules-prune-non-affecting-module-map-files"37// CHECK:              "-fmodule-file={{.*}}[[PREFIX]]/module-cache{{(_clangcl)?}}/[[HASH_H2_DINCLUDE]]/header2-{{[A-Z0-9]+}}.pcm"38// CHECK-NOT:          "-fimplicit-module-maps"39// CHECK:              "-fmodule-name=header1"40// CHECK:              "-fno-implicit-modules"41// CHECK:            ],42// CHECK-NEXT:       "context-hash": "[[HASH_H1_DINCLUDE:[A-Z0-9]+]]",43// CHECK-NEXT:       "file-deps": [44// CHECK-NEXT:         "[[PREFIX]]/Inputs/module.modulemap",45// CHECK-NEXT:         "[[PREFIX]]/Inputs/header.h"46// CHECK-NEXT:       ],47// CHECK-NEXT:       "link-libraries": [],48// CHECK-NEXT:       "name": "header1"49// CHECK-NEXT:     },50// CHECK-NEXT:     {51// CHECK-NEXT:       "clang-module-deps": [],52// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/Inputs/module.modulemap",53// CHECK-NEXT:       "command-line": [54// CHECK-NEXT:         "-cc1",55// CHECK:              "-emit-module",56// CHECK:              "-fno-modules-prune-non-affecting-module-map-files"57// CHECK-NOT:          "-fimplicit-module-maps",58// CHECK:              "-fmodule-name=header1",59// CHECK:              "-fno-implicit-modules",60// CHECK:            ],61// CHECK-NEXT:       "context-hash": "[[HASH_H1:[A-Z0-9]+]]",62// CHECK-NEXT:       "file-deps": [63// CHECK-NEXT:         "[[PREFIX]]/Inputs/module.modulemap",64// CHECK-NEXT:         "[[PREFIX]]/Inputs/header.h"65// CHECK-NEXT:       ],66// CHECK-NEXT:       "link-libraries": [],67// CHECK-NEXT:       "name": "header1"68// CHECK-NEXT:     },69// CHECK-NEXT:     {70// CHECK-NEXT:       "clang-module-deps": [],71// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/Inputs/module.modulemap",72// CHECK-NEXT:       "command-line": [73// CHECK-NEXT:         "-cc1",74// CHECK:              "-emit-module",75// CHECK:              "-fno-modules-prune-non-affecting-module-map-files"76// CHECK:              "-fmodule-name=header2",77// CHECK-NOT:          "-fimplicit-module-maps",78// CHECK:              "-fno-implicit-modules",79// CHECK:            ],80// CHECK-NEXT:       "context-hash": "[[HASH_H2_DINCLUDE]]",81// CHECK-NEXT:       "file-deps": [82// CHECK-NEXT:         "[[PREFIX]]/Inputs/module.modulemap",83// CHECK-NEXT:         "[[PREFIX]]/Inputs/header2.h"84// CHECK-NEXT:       ],85// CHECK-NEXT:       "link-libraries": [],86// CHECK-NEXT:       "name": "header2"87// CHECK-NEXT:     }88// CHECK-NEXT:   ],89// CHECK-NEXT:   "translation-units": [90// CHECK-NEXT:     {91// CHECK-NEXT:       "commands": [92// CHECK-NEXT:         {93// CHECK-NEXT:           "clang-context-hash": "[[HASH_TU_DINCLUDE:[A-Z0-9]+]]",94// CHECK-NEXT:           "clang-module-deps": [95// CHECK-NEXT:             {96// CHECK-NEXT:               "context-hash": "[[HASH_H1_DINCLUDE]]",97// CHECK-NEXT:               "module-name": "header1"98// CHECK-NEXT:             }99// CHECK-NEXT:           ],100// CHECK-NEXT:           "command-line": [101// CHECK-NOT:              "-fimplicit-modules"102// CHECK-NOT:              "-fimplicit-module-maps"103// CHECK:                  "-fmodule-file={{.*}}[[PREFIX]]/module-cache{{(_clangcl)?}}/[[HASH_H1_DINCLUDE]]/header1-{{[A-Z0-9]+}}.pcm"104// CHECK:                ],105// CHECK-NEXT:           "executable": "{{.*}}clang{{.*}}"106// CHECK-NEXT:           "file-deps": [107// CHECK-NEXT:             "[[PREFIX]]/modules_cdb_input2.cpp"108// CHECK-NEXT:           ],109// CHECK-NEXT:           "input-file": "[[PREFIX]]/modules_cdb_input2.cpp"110// CHECK-NEXT:         }111// CHECK-NEXT:       ]112// CHECK-NEXT:     },113// CHECK-NEXT:     {114// CHECK-NEXT:       "commands": [115// CHECK-NEXT:         {116// CHECK-NEXT:           "clang-context-hash": "[[HASH_TU:[A-Z0-9]+]]",117// CHECK-NEXT:           "clang-module-deps": [118// CHECK-NEXT:             {119// CHECK-NEXT:               "context-hash": "[[HASH_H1]]",120// CHECK-NEXT:               "module-name": "header1"121// CHECK-NEXT:             }122// CHECK-NEXT:           ],123// CHECK-NEXT:           "command-line": [124// CHECK-NOT:              "-fimplicit-modules"125// CHECK-NOT:              "-fimplicit-module-maps"126// CHECK:                  "-fmodule-file={{.*}}[[PREFIX]]/module-cache{{(_clangcl)?}}/[[HASH_H1]]/header1-{{[A-Z0-9]+}}.pcm"127// CHECK:                ],128// CHECK-NEXT:           "executable": "{{.*}}clang{{.*}}"129// CHECK-NEXT:           "file-deps": [130// CHECK-NEXT:             "[[PREFIX]]/modules_cdb_input.cpp"131// CHECK-NEXT:           ],132// CHECK-NEXT:           "input-file": "[[PREFIX]]/modules_cdb_input.cpp"133// CHECK-NEXT:         }134// CHECK-NEXT:       ]135// CHECK-NEXT:     },136// CHECK-NEXT:     {137// CHECK-NEXT:       "commands": [138// CHECK-NEXT:         {139// CHECK-NEXT:           "clang-context-hash": "[[HASH_TU:[A-Z0-9]+]]",140// CHECK-NEXT:           "clang-module-deps": [141// CHECK-NEXT:             {142// CHECK-NEXT:               "context-hash": "[[HASH_H1]]",143// CHECK-NEXT:               "module-name": "header1"144// CHECK-NEXT:             }145// CHECK-NEXT:           ],146// CHECK-NEXT:           "command-line": [147// CHECK-NOT:              "-fimplicit-modules"148// CHECK-NOT:              "-fimplicit-module-maps"149// CHECK:                  "-fmodule-file={{.*}}[[PREFIX]]/module-cache{{(_clangcl)?}}/[[HASH_H1]]/header1-{{[A-Z0-9]+}}.pcm"150// CHECK:                ],151// CHECK-NEXT:           "executable": "{{.*}}clang{{.*}}"152// CHECK-NEXT:           "file-deps": [153// CHECK-NEXT:             "[[PREFIX]]/modules_cdb_input.cpp"154// CHECK-NEXT:           ],155// CHECK-NEXT:           "input-file": "[[PREFIX]]/modules_cdb_input.cpp"156// CHECK-NEXT:         }157// CHECK-NEXT:       ]158// CHECK-NEXT:     },159// CHECK-NEXT:     {160// CHECK-NEXT:       "commands": [161// CHECK-NEXT:         {162// CHECK-NEXT:           "clang-context-hash": "[[HASH_TU:[A-Z0-9]+]]",163// CHECK-NEXT:           "clang-module-deps": [164// CHECK-NEXT:             {165// CHECK-NEXT:               "context-hash": "[[HASH_H1]]",166// CHECK-NEXT:               "module-name": "header1"167// CHECK-NEXT:             }168// CHECK-NEXT:           ],169// CHECK-NEXT:           "command-line": [170// CHECK-NOT:              "-fimplicit-modules"171// CHECK-NOT:              "-fimplicit-module-maps"172// CHECK:                  "-fmodule-file={{.*}}[[PREFIX]]/module-cache{{(_clangcl)?}}/[[HASH_H1]]/header1-{{[A-Z0-9]+}}.pcm"173// CHECK:                ],174// CHECK-NEXT:           "executable": "{{.*}}clang{{.*}}"175// CHECK-NEXT:           "file-deps": [176// CHECK-NEXT:             "[[PREFIX]]/modules_cdb_input.cpp"177// CHECK-NEXT:           ],178// CHECK-NEXT:           "input-file": "[[PREFIX]]/modules_cdb_input.cpp"179// CHECK-NEXT:         }180// CHECK-NEXT:       ]181// CHECK-NEXT:     }182// CHECK-NEXT:   ]183// CHECK-NEXT: }184