1 | // RUN: rm -rf %t && mkdir -p %t |
2 | // RUN: clang-doc --output=%t --format=json --executor=standalone %s |
3 | // RUN: FileCheck %s < %t/GlobalNamespace/index.json |
4 | |
5 | class MyClass {}; |
6 | |
7 | void myFunction(int Param); |
8 | |
9 | namespace NestedNamespace { |
10 | } // namespace NestedNamespace |
11 | |
12 | // FIXME: Global variables are not mapped or serialized. |
13 | static int Global; |
14 | |
15 | enum Color { |
16 | RED, |
17 | GREEN, |
18 | BLUE = 5 |
19 | }; |
20 | |
21 | typedef int MyTypedef; |
22 | |
23 | // CHECK: { |
24 | // CHECK-NEXT: "Enums": [ |
25 | // CHECK-NEXT: { |
26 | // CHECK-NEXT: "Location": { |
27 | // CHECK-NEXT: "Filename": "{{.*}}namespace.cpp", |
28 | // CHECK-NEXT: "LineNumber": 15 |
29 | // CHECK-NEXT: }, |
30 | // CHECK-NEXT: "Members": [ |
31 | // CHECK-NEXT: { |
32 | // CHECK-NEXT: "Name": "RED", |
33 | // CHECK-NEXT: "Value": "0" |
34 | // CHECK-NEXT: }, |
35 | // CHECK-NEXT: { |
36 | // CHECK-NEXT: "Name": "GREEN", |
37 | // CHECK-NEXT: "Value": "1" |
38 | // CHECK-NEXT: }, |
39 | // CHECK-NEXT: { |
40 | // CHECK-NEXT: "Name": "BLUE", |
41 | // CHECK-NEXT: "ValueExpr": "5" |
42 | // CHECK-NEXT: } |
43 | // CHECK-NEXT: ], |
44 | // CHECK-NEXT: "Name": "Color", |
45 | // CHECK-NEXT: "Scoped": false, |
46 | // CHECK-NEXT: "USR": "{{[0-9A-F]*}}" |
47 | // CHECK-NEXT: } |
48 | // CHECK-NEXT: ], |
49 | // CHECK-NEXT: "Functions": [ |
50 | // CHECK-NEXT: { |
51 | // CHECK-NEXT: "IsStatic": false, |
52 | // CHECK-NEXT: "Name": "myFunction", |
53 | // CHECK-NEXT: "Params": [ |
54 | // CHECK-NEXT: { |
55 | // CHECK-NEXT: "Name": "Param", |
56 | // CHECK-NEXT: "Type": "int" |
57 | // CHECK-NEXT: } |
58 | // CHECK-NEXT: ], |
59 | // CHECK-NEXT: "ReturnType": { |
60 | // CHECK-NEXT: "IsBuiltIn": false, |
61 | // CHECK-NEXT: "IsTemplate": false, |
62 | // CHECK-NEXT: "Name": "void", |
63 | // CHECK-NEXT: "QualName": "void", |
64 | // CHECK-NEXT: "USR": "0000000000000000000000000000000000000000" |
65 | // CHECK-NEXT: }, |
66 | // CHECK-NEXT: "USR": "{{[0-9A-F]*}}" |
67 | // CHECK-NEXT: } |
68 | // CHECK-NEXT: ], |
69 | // CHECK-NEXT: "Name": "", |
70 | // CHECK-NEXT: "Namespaces": [ |
71 | // CHECK-NEXT: { |
72 | // CHECK-NEXT: "Name": "NestedNamespace", |
73 | // CHECK-NEXT: "Path": "", |
74 | // CHECK-NEXT: "QualName": "NestedNamespace", |
75 | // CHECK-NEXT: "USR": "{{[0-9A-F]*}}" |
76 | // CHECK-NEXT: } |
77 | // CHECK-NEXT: ], |
78 | // CHECK-NEXT: "Records": [ |
79 | // CHECK-NEXT: { |
80 | // CHECK-NEXT: "Name": "MyClass", |
81 | // CHECK-NEXT: "Path": "GlobalNamespace", |
82 | // CHECK-NEXT: "QualName": "MyClass", |
83 | // CHECK-NEXT: "USR": "{{[0-9A-F]*}}" |
84 | // CHECK-NEXT: } |
85 | // CHECK-NEXT: ], |
86 | // CHECK-NEXT: "Typedefs": [ |
87 | // CHECK-NEXT: { |
88 | // CHECK-NEXT: "IsUsing": false, |
89 | // CHECK-NEXT: "Location": { |
90 | // CHECK-NEXT: "Filename": "{{.*}}namespace.cpp", |
91 | // CHECK-NEXT: "LineNumber": 21 |
92 | // CHECK-NEXT: }, |
93 | // CHECK-NEXT: "Name": "MyTypedef", |
94 | // CHECK-NEXT: "TypeDeclaration": "", |
95 | // CHECK-NEXT: "USR": "{{[0-9A-F]*}}", |
96 | // CHECK-NEXT: "Underlying": { |
97 | // CHECK-NEXT: "IsBuiltIn": false, |
98 | // CHECK-NEXT: "IsTemplate": false, |
99 | // CHECK-NEXT: "Name": "int", |
100 | // CHECK-NEXT: "QualName": "int", |
101 | // CHECK-NEXT: "USR": "0000000000000000000000000000000000000000" |
102 | // CHECK-NEXT: } |
103 | // CHECK-NEXT: } |
104 | // CHECK-NEXT: ], |
105 | // CHECK-NEXT: "USR": "0000000000000000000000000000000000000000" |
106 | // CHECK-NOT: "Variables": [ |
107 | // CHECK-NEXT: } |
108 | |