xref: /llvm-project/clang/test/ClangScanDeps/diagnostics.c (revision 9d4837f47c48c634d4a0ac799188e1f5332495ef)
12d1e46feSJan Svoboda // RUN: rm -rf %t
22d1e46feSJan Svoboda // RUN: split-file %s %t
3285ec537SJan Svoboda 
42d1e46feSJan Svoboda //--- cdb.json.template
52d1e46feSJan Svoboda [
62d1e46feSJan Svoboda   {
72d1e46feSJan Svoboda     "directory": "DIR",
82d1e46feSJan Svoboda     "command": "clang -c DIR/tu.c -fmodules -target i386-apple-ios14.0-simulator -fmodules-cache-path=DIR/cache -Wno-error=invalid-ios-deployment-target -o DIR/tu.o",
92d1e46feSJan Svoboda     "file": "DIR/tu.c"
102d1e46feSJan Svoboda   }
112d1e46feSJan Svoboda ]
122d1e46feSJan Svoboda //--- mod.h
132d1e46feSJan Svoboda //--- module.modulemap
142d1e46feSJan Svoboda module mod { header "mod.h" }
152d1e46feSJan Svoboda //--- tu.c
162d1e46feSJan Svoboda #include "mod.h"
172d1e46feSJan Svoboda 
182d1e46feSJan Svoboda // RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json
19c4b13f7aSJan Svoboda // RUN: clang-scan-deps -compilation-database %t/cdb.json -format experimental-full 2>&1 > %t/result.json
20c4b13f7aSJan Svoboda // RUN: cat %t/result.json | sed 's:\\\\\?:/:g' | FileCheck %s -DPREFIX=%/t
21285ec537SJan Svoboda 
22285ec537SJan Svoboda // Check that the '-Wno-error=invalid-ios-deployment-target' option is being
23285ec537SJan Svoboda // respected and invalid arguments like '-target i386-apple-ios14.0-simulator'
24285ec537SJan Svoboda // do not result in an error.
25285ec537SJan Svoboda 
26285ec537SJan Svoboda // CHECK-NOT:  error:
27c4b13f7aSJan Svoboda // CHECK:      {
28285ec537SJan Svoboda // CHECK-NEXT:   "modules": [
29285ec537SJan Svoboda // CHECK-NEXT:     {
30285ec537SJan Svoboda // CHECK-NEXT:       "clang-module-deps": [],
31285ec537SJan Svoboda // CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/module.modulemap",
32285ec537SJan Svoboda // CHECK-NEXT:       "command-line": [
33285ec537SJan Svoboda // CHECK-NEXT:         "-cc1"
34285ec537SJan Svoboda // CHECK:            ],
35285ec537SJan Svoboda // CHECK-NEXT:       "context-hash": "[[HASH_MOD:.*]]",
36285ec537SJan Svoboda // CHECK-NEXT:       "file-deps": [
37*9d4837f4SJan Svoboda // CHECK-NEXT:         "[[PREFIX]]/module.modulemap",
38285ec537SJan Svoboda // CHECK-NEXT:         "[[PREFIX]]/mod.h"
39285ec537SJan Svoboda // CHECK-NEXT:       ],
4068eb3b20SArtem Chikin // CHECK-NEXT:       "link-libraries": [],
41285ec537SJan Svoboda // CHECK-NEXT:       "name": "mod"
42285ec537SJan Svoboda // CHECK-NEXT:     }
43285ec537SJan Svoboda // CHECK-NEXT:   ],
44285ec537SJan Svoboda // CHECK-NEXT:   "translation-units": [
45285ec537SJan Svoboda // CHECK-NEXT:     {
4683902c40SBen Langmuir // CHECK:            "clang-context-hash": "[[HASH_TU:.*]],
47285ec537SJan Svoboda // CHECK-NEXT:       "clang-module-deps": [
48285ec537SJan Svoboda // CHECK-NEXT:         {
49285ec537SJan Svoboda // CHECK-NEXT:           "context-hash": "[[HASH_MOD]]",
50285ec537SJan Svoboda // CHECK-NEXT:           "module-name": "mod"
51285ec537SJan Svoboda // CHECK-NEXT:         }
52285ec537SJan Svoboda // CHECK-NEXT:       ],
53285ec537SJan Svoboda // CHECK-NEXT:       "command-line": [
5483902c40SBen Langmuir // CHECK-NOT:          "-fimplicit-modules"
5583902c40SBen Langmuir // CHECK-NOT:          "-fimplicit-module-maps"
5671e32d5cSJan Svoboda // CHECK:            ],
5783902c40SBen Langmuir // CHECK:            "file-deps": [
58285ec537SJan Svoboda // CHECK-NEXT:         "[[PREFIX]]/tu.c"
59285ec537SJan Svoboda // CHECK-NEXT:       ],
60285ec537SJan Svoboda // CHECK-NEXT:       "input-file": "[[PREFIX]]/tu.c"
61285ec537SJan Svoboda // CHECK-NEXT:     }
62