brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · 9f7a62f Raw
104 lines · c
1// Ensure '-DFOO -fmodules-ignore-macro=FOO' and '' both produce the same2// canonical module build command.3 4// RUN: rm -rf %t5// RUN: split-file %s %t6// RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json7 8// RUN: clang-scan-deps -compilation-database %t/cdb.json -j 1 \9// RUN:   -format experimental-full > %t/deps.json10// RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s11 12// CHECK:      {13// CHECK-NEXT:   "modules": [14// CHECK:          {15// CHECK:            "command-line": [16// CHECK-NOT:          "FOO"17// CHECK-NOT:          "-fmodules-ignore-macro18// CHECK:            ]19// CHECK:            "context-hash": "[[HASH_NO_FOO:.*]]"20// CHECK:            "name": "Mod"21// CHECK-NEXT:     }22// CHECK-NEXT:     {23// CHECK:            "command-line": [24// CHECK:              "-D"25// CHECK-NEXT:         "FOO"26// CHECK:            ]27// CHECK:            "context-hash": "[[HASH_FOO:.*]]"28// CHECK:            "name": "Mod"29// CHECK-NEXT:     }30// CHECK-NEXT:   ]31// CHECK-NEXT:   "translation-units": [32// CHECK-NEXT:     {33// CHECK:            "clang-module-deps": [34// CHECK-NEXT:         {35// CHECK-NEXT:           "context-hash": "[[HASH_NO_FOO]]"36// CHECK-NEXT:            "module-name": "Mod"37// CHECK-NEXT:         }38// CHECK-NEXT:       ]39// CHECK-NEXT:       "command-line": [40// CHECK-NOT:          "-DFOO"41// CHECK-NOT:          "FOO"42// CHECK:            ]43// CHECK:            "input-file": "{{.*}}tu1.c"44// CHECK-NEXT:     }45// CHECK:          {46// CHECK:            "clang-module-deps": [47// CHECK-NEXT:         {48// CHECK-NEXT:           "context-hash": "[[HASH_FOO]]"49// CHECK-NEXT:            "module-name": "Mod"50// CHECK-NEXT:         }51// CHECK-NEXT:       ]52// CHECK-NEXT:       "command-line": [53// CHECK:              "-D"54// CHECK-NEXT:         "FOO"55// CHECK:            ]56// CHECK:            "input-file": "{{.*}}tu2.c"57// CHECK-NEXT:     }58// CHECK:          {59// CHECK:            "clang-module-deps": [60// CHECK-NEXT:         {61// CHECK-NEXT:           "context-hash": "[[HASH_NO_FOO]]"62// CHECK-NEXT:            "module-name": "Mod"63// CHECK-NEXT:         }64// CHECK-NEXT:       ]65// CHECK-NEXT:       "command-line": [66// CHECK:              "-fmodules-ignore-macro=FOO"67// CHECK:              "-D"68// CHECK-NEXT:         "FOO"69// CHECK:            ]70// CHECK:            "input-file": "{{.*}}tu3.c"71 72//--- cdb.json.template73[74  {75    "directory": "DIR",76    "command": "clang -fsyntax-only DIR/tu1.c -fmodules -fimplicit-module-maps -fmodules-cache-path=DIR/cache",77    "file": "DIR/tu1.c"78  },79  {80    "directory": "DIR",81    "command": "clang -DFOO -fsyntax-only DIR/tu2.c -fmodules -fimplicit-module-maps -fmodules-cache-path=DIR/cache",82    "file": "DIR/tu2.c"83  },84  {85    "directory": "DIR",86    "command": "clang -DFOO -fmodules-ignore-macro=FOO -fsyntax-only DIR/tu3.c -fmodules -fimplicit-module-maps -fmodules-cache-path=DIR/cache",87    "file": "DIR/tu3.c"88  },89]90 91//--- module.modulemap92module Mod { header "Mod.h" }93 94//--- Mod.h95 96//--- tu1.c97#include "Mod.h"98 99//--- tu2.c100#include "Mod.h"101 102//--- tu3.c103#include "Mod.h"104