brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · b450b13 Raw
112 lines · c
1// UNSUPPORTED: target=powerpc64-ibm-aix{{.*}}2 3// RUN: rm -rf %t4// RUN: split-file %s %t5 6//--- module.modulemap7module root { header "root.h" }8module direct { header "direct.h" }9module transitive { header "transitive.h" }10module addition { header "addition.h" }11//--- root.h12#include "direct.h"13#include "root/textual.h"14//--- direct.h15#include "transitive.h"16//--- transitive.h17// empty18 19//--- addition.h20// empty21 22//--- tu.c23#include "root.h"24 25//--- root/textual.h26// This is here to verify that the "root" directory doesn't clash with name of27// the "root" module.28 29//--- cdb.json.template30[{31  "file": "",32  "directory": "DIR",33  "command": "clang -fmodules -fmodules-cache-path=DIR/cache -I DIR -x c -c"34}]35 36// RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json37// RUN: clang-scan-deps -compilation-database %t/cdb.json -format experimental-full -tu-buffer-path %t/tu.c > %t/result.json38// RUN: cat %t/result.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s --check-prefix=CHECK39 40// CHECK:      {41// CHECK-NEXT:   "modules": [42// CHECK-NEXT:     {43// CHECK-NEXT:       "clang-module-deps": [44// CHECK-NEXT:         {45// CHECK-NEXT:           "context-hash": "{{.*}}",46// CHECK-NEXT:           "module-name": "transitive"47// CHECK-NEXT:         }48// CHECK-NEXT:       ],49// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/module.modulemap",50// CHECK-NEXT:       "command-line": [51// CHECK:            ],52// CHECK-NEXT:       "context-hash": "{{.*}}",53// CHECK-NEXT:       "file-deps": [54// CHECK-NEXT:         "[[PREFIX]]/module.modulemap"55// CHECK-NEXT:         "[[PREFIX]]/direct.h"56// CHECK-NEXT:       ],57// CHECK:            "name": "direct"58// CHECK-NEXT:     },59// CHECK-NEXT:     {60// CHECK-NEXT:       "clang-module-deps": [61// CHECK-NEXT:         {62// CHECK-NEXT:           "context-hash": "{{.*}}",63// CHECK-NEXT:           "module-name": "direct"64// CHECK-NEXT:         }65// CHECK-NEXT:       ],66// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/module.modulemap",67// CHECK-NEXT:       "command-line": [68// CHECK:            ],69// CHECK-NEXT:       "context-hash": "{{.*}}",70// CHECK-NEXT:       "file-deps": [71// CHECK-NEXT:         "[[PREFIX]]/module.modulemap"72// CHECK-NEXT:         "[[PREFIX]]/root.h"73// CHECK-NEXT:         "[[PREFIX]]/root/textual.h"74// CHECK-NEXT:       ],75// CHECK:            "name": "root"76// CHECK-NEXT:     },77// CHECK-NEXT:     {78// CHECK-NEXT:       "clang-module-deps": [],79// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/module.modulemap",80// CHECK-NEXT:       "command-line": [81// CHECK:            ],82// CHECK-NEXT:       "context-hash": "{{.*}}",83// CHECK-NEXT:       "file-deps": [84// CHECK-NEXT:         "[[PREFIX]]/module.modulemap"85// CHECK-NEXT:         "[[PREFIX]]/transitive.h"86// CHECK-NEXT:       ],87// CHECK:            "name": "transitive"88// CHECK-NEXT:     }89// CHECK-NEXT:   ],90// CHECK-NEXT:   "translation-units": [91// CHECK-NEXT:     {92// CHECK-NEXT:       "commands": [93// CHECK-NEXT:         {94// CHECK-NEXT:           "clang-context-hash": "{{.*}}",95// CHECK-NEXT:           "clang-module-deps": [96// CHECK-NEXT:             {97// CHECK-NEXT:               "context-hash": "{{.*}}",98// CHECK-NEXT:               "module-name": "root"99// CHECK-NEXT:             }100// CHECK-NEXT:           ],101// CHECK-NEXT:           "command-line": [102// CHECK:                ],103// CHECK:                "file-deps": [104// CHECK-NEXT:             [[PREFIX]]/tu.c105// CHECK-NEXT:           ],106// CHECK-NEXT:           "input-file": "[[PREFIX]]/tu.c"107// CHECK-NEXT:         }108// CHECK-NEXT:       ]109// CHECK-NEXT:     }110// CHECK-NEXT:   ]111// CHECK-NEXT: }112