xref: /llvm-project/clang/test/ClangScanDeps/modules-context-hash-warnings.c (revision 83902c403611af3a52453867cb8848fb3fd6a39c)
102871701SBen Langmuir // Differences in -W warning options should result in different canonical module
202871701SBen Langmuir // build commands.
302871701SBen Langmuir 
402871701SBen Langmuir // RUN: rm -rf %t
502871701SBen Langmuir // RUN: split-file %s %t
602871701SBen Langmuir // RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json
702871701SBen Langmuir 
802871701SBen Langmuir // RUN: clang-scan-deps -compilation-database %t/cdb.json -j 1 \
902871701SBen Langmuir // RUN:   -format experimental-full > %t/deps.json
1002871701SBen Langmuir // RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s
1102871701SBen Langmuir 
1202871701SBen Langmuir // CHECK:      {
1302871701SBen Langmuir // CHECK-NEXT:   "modules": [
1402871701SBen Langmuir // CHECK:          {
1502871701SBen Langmuir // CHECK:            "command-line": [
1602871701SBen Langmuir // CHECK:              "-Wall"
1702871701SBen Langmuir // CHECK:            ]
1802871701SBen Langmuir // CHECK:            "context-hash": "[[HASH1:.*]]"
1902871701SBen Langmuir // CHECK:            "name": "Mod"
2002871701SBen Langmuir // CHECK-NEXT:     }
2102871701SBen Langmuir // CHECK-NEXT:     {
2202871701SBen Langmuir // CHECK:            "command-line": [
2302871701SBen Langmuir // CHECK-NOT:          "-Wall"
2402871701SBen Langmuir // CHECK:            ]
2502871701SBen Langmuir // CHECK:            "context-hash": "[[HASH2:.*]]"
2602871701SBen Langmuir // CHECK:            "name": "Mod"
2702871701SBen Langmuir // CHECK-NEXT:     }
2802871701SBen Langmuir // CHECK-NEXT:   ]
2902871701SBen Langmuir // CHECK-NEXT:   "translation-units": [
3002871701SBen Langmuir // CHECK-NEXT:     {
3102871701SBen Langmuir // CHECK:            "clang-module-deps": [
3202871701SBen Langmuir // CHECK-NEXT:         {
3302871701SBen Langmuir // CHECK-NEXT:           "context-hash": "[[HASH1]]"
3402871701SBen Langmuir // CHECK-NEXT:            "module-name": "Mod"
3502871701SBen Langmuir // CHECK-NEXT:         }
3602871701SBen Langmuir // CHECK-NEXT:       ]
3702871701SBen Langmuir // CHECK-NEXT:       "command-line": [
3802871701SBen Langmuir // CHECK:              "-Wall"
3902871701SBen Langmuir // CHECK:            ]
4002871701SBen Langmuir // CHECK:            "input-file": "{{.*}}tu1.c"
4102871701SBen Langmuir // CHECK-NEXT:     }
42*83902c40SBen Langmuir // CHECK:          {
4302871701SBen Langmuir // CHECK:            "clang-module-deps": [
4402871701SBen Langmuir // CHECK-NEXT:         {
4502871701SBen Langmuir // CHECK-NEXT:           "context-hash": "[[HASH2]]"
4602871701SBen Langmuir // CHECK-NEXT:            "module-name": "Mod"
4702871701SBen Langmuir // CHECK-NEXT:         }
4802871701SBen Langmuir // CHECK-NEXT:       ]
4902871701SBen Langmuir // CHECK-NEXT:       "command-line": [
5002871701SBen Langmuir // CHECK-NOT:          "-Wall"
5102871701SBen Langmuir // CHECK:            ]
5202871701SBen Langmuir // CHECK:            "input-file": "{{.*}}tu2.c"
5302871701SBen Langmuir 
5402871701SBen Langmuir //--- cdb.json.template
5502871701SBen Langmuir [
5602871701SBen Langmuir   {
5702871701SBen Langmuir     "directory": "DIR",
5802871701SBen Langmuir     "command": "clang -Wall -fsyntax-only DIR/tu1.c -fmodules -fimplicit-module-maps -fmodules-cache-path=DIR/cache",
5902871701SBen Langmuir     "file": "DIR/tu1.c"
6002871701SBen Langmuir   },
6102871701SBen Langmuir   {
6202871701SBen Langmuir     "directory": "DIR",
6302871701SBen Langmuir     "command": "clang -fsyntax-only DIR/tu2.c -fmodules -fimplicit-module-maps -fmodules-cache-path=DIR/cache",
6402871701SBen Langmuir     "file": "DIR/tu2.c"
6502871701SBen Langmuir   },
6602871701SBen Langmuir ]
6702871701SBen Langmuir 
6802871701SBen Langmuir //--- module.modulemap
6902871701SBen Langmuir module Mod { header "Mod.h" }
7002871701SBen Langmuir 
7102871701SBen Langmuir //--- Mod.h
7202871701SBen Langmuir 
7302871701SBen Langmuir //--- tu1.c
7402871701SBen Langmuir #include "Mod.h"
7502871701SBen Langmuir 
7602871701SBen Langmuir //--- tu2.c
7702871701SBen Langmuir #include "Mod.h"
78