File: modules-cas-context-hash.c

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (107 lines) | stat: -rw-r--r-- 2,924 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// RUN: rm -rf %t
// RUN: split-file %s %t
// RUN: sed "s|DIR|%/t|g" %t/cdb1.json.template > %t/cdb1.json
// RUN: sed "s|DIR|%/t|g" %t/cdb2.json.template > %t/cdb2.json

// RUN: clang-scan-deps -compilation-database %t/cdb1.json -module-files-dir %t/outputs \
// RUN:   -cas-path %t/cas1 -format experimental-include-tree-full \
// RUN:   > %t/result.json
// RUN: echo "=====" >> %t/result.json
// RUN: clang-scan-deps -compilation-database %t/cdb2.json -module-files-dir %t/outputs \
// RUN:   -cas-path %t/cas2 -format experimental-include-tree-full \
// RUN:   >> %t/result.json

// RUN: cat %t/result.json | FileCheck %s -DPREFIX=%/t

// CHECK: "modules": [
// CHECK:   {
// CHECK:     "cache-key": "llvmcas://[[KEY:[[:xdigit:]]+]]"
// CHECK:     "context-hash": "[[HASH:[A-Z0-9]+]]",
// CHECK:     "name": "Mod"
// CHECK:   }
// CHECK: ]
// CHECK: "translation-units": [
// CHECK:   {
// CHECK:     "commands": [
// CHECK:       {
// CHECK:         "clang-module-deps": [
// CHECK:           {
// CHECK:             "context-hash": "[[HASH]]"
// CHECK:             "module-name": "Mod"
// CHECK:           }
// CHECK:         ],
// CHECK:         "command-line": [
// CHECK:           "-fmodule-file-cache-key"
// CHECK:           "[[PREFIX]]/outputs/[[HASH]]/Mod-[[HASH]].pcm"
// CHECK:           "llvmcas://[[KEY]]"
// CHECK:         ]

// CHECK-LABEL: =====

// CHECK: "modules": [
// CHECK:   {
// CHECK:     "cache-key": "llvmcas://[[KEY]]"
// CHECK:     "context-hash": "[[HASH]]"
// CHECK:     "name": "Mod"
// CHECK:   }
// CHECK: "translation-units": [
// CHECK:   {
// CHECK:     "commands": [
// CHECK:       {
// CHECK:         "clang-module-deps": [
// CHECK:           {
// CHECK:             "context-hash": "[[HASH]]"
// CHECK:             "module-name": "Mod"
// CHECK:           }
// CHECK:         ],
// CHECK:         "command-line": [
// CHECK:           "-fmodule-file-cache-key"
// CHECK:           "[[PREFIX]]/outputs/[[HASH]]/Mod-[[HASH]].pcm"
// CHECK:           "llvmcas://[[KEY]]"
// CHECK:         ]

//--- cdb1.json.template
[{
  "directory": "DIR",
  "arguments": [
    "clang",
    "-fsyntax-only",
    "DIR/tu.c",
    "-fmodules",
    "-fimplicit-module-maps",

    "-Xclang", "-fcas-plugin-path", "-Xclang", "/1",
    "-Xclang", "-fcas-plugin-option", "-Xclang", "a=x",
    "-fmodules-cache-path=DIR/cache1",
    "-fmessage-length=1",
    "-fcolor-diagnostics",
  ],
  "file": "DIR/tu.c"
}]

//--- cdb2.json.template
[{
  "directory": "DIR",
  "arguments": [
    "clang",
    "-fsyntax-only",
    "DIR/tu.c",
    "-fmodules",
    "-fimplicit-module-maps",

    "-Xclang", "-fcas-plugin-path", "-Xclang", "/2",
    "-Xclang", "-fcas-plugin-option", "-Xclang", "b=y",
    "-fmodules-cache-path=DIR/cache2",
    "-fmessage-length=2",
    "-fno-color-diagnostics",
  ],
  "file": "DIR/tu.c"
}]

//--- module.modulemap
module Mod { header "Mod.h" }

//--- Mod.h

//--- tu.c
#include "Mod.h"