brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · 210fbfb Raw
77 lines · plain
1// This test checks that we don't crash or report spurious dependencies on2// FW_Private when compiling the implementation of framework module FW.3 4// RUN: rm -rf %t5// RUN: split-file %s %t6 7//--- cdb.json.template8[{9  "directory": "DIR",10  "file": "DIR/tu.m",11  "command": "clang -fmodules -fmodules-cache-path=DIR/cache -fmodule-name=FW -F DIR/frameworks -c DIR/tu.m -o DIR/tu.o"12}]13 14//--- frameworks/FW.framework/Modules/module.modulemap15framework module FW { umbrella header "FW.h" }16//--- frameworks/FW.framework/Modules/module.private.modulemap17framework module FW_Private { umbrella header "FW_Private.h" }18//--- frameworks/FW.framework/Headers/FW.h19//--- frameworks/FW.framework/PrivateHeaders/FW_Private.h20//--- frameworks/FW.framework/PrivateHeaders/Missed.h21#import <FW/FW.h> // When included from tu.m, this ends up adding (spurious) dependency on FW for FW_Private.22 23//--- tu.m24@import FW_Private; // This is a direct dependency.25#import <FW/Missed.h>26 27// RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json28// RUN: clang-scan-deps -compilation-database %t/cdb.json -format experimental-full > %t/result.json29// RUN: cat %t/result.json | sed 's:\\\\\?:/:g' | FileCheck %s -DPREFIX=%/t30 31// CHECK:      {32// CHECK-NEXT:   "modules": [33// CHECK-NEXT:     {34// CHECK-NEXT:       "clang-module-deps": [],35// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap",36// CHECK-NEXT:       "command-line": [37// CHECK:            ],38// CHECK-NEXT:       "context-hash": "{{.*}}",39// CHECK-NEXT:       "file-deps": [40// CHECK-NEXT:         "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap",41// CHECK-NEXT:         "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/FW_Private.h"42// CHECK-NEXT:       ],43// CHECK-NEXT:       "link-libraries": [44// CHECK-NEXT:         {45// CHECK-NEXT:           "isFramework": true,46// CHECK-NEXT:           "link-name": "FW"47// CHECK-NEXT:         }48// CHECK-NEXT:       ],49// CHECK-NEXT:       "name": "FW_Private"50// CHECK-NEXT:     }51// CHECK-NEXT:   ],52// CHECK-NEXT:   "translation-units": [53// CHECK-NEXT:     {54// CHECK-NEXT:       "commands": [55// CHECK-NEXT:         {56// CHECK-NEXT:           "clang-context-hash": "{{.*}}",57// CHECK-NEXT:           "clang-module-deps": [58// CHECK-NEXT:             {59// CHECK-NEXT:               "context-hash": "{{.*}}",60// CHECK-NEXT:               "module-name": "FW_Private"61// CHECK-NEXT:             }62// CHECK-NEXT:           ],63// CHECK-NEXT:           "command-line": [64// CHECK:                ],65// CHECK:                "file-deps": [66// CHECK-NEXT:             "[[PREFIX]]/tu.m",67// CHECK-NEXT:             "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/Missed.h",68// CHECK-NEXT:             "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h",69// CHECK-NEXT:             "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap"70// CHECK-NEXT:           ],71// CHECK-NEXT:           "input-file": "[[PREFIX]]/tu.m"72// CHECK-NEXT:         }73// CHECK:            ]74// CHECK:          }75// CHECK:        ]76// CHECK:      }77