141 lines · cpp
1// RUN: rm -rf %t && mkdir -p %t2// RUN: clang-doc --output=%t --format=json --executor=standalone %s3// RUN: FileCheck %s < %t/json/GlobalNamespace/index.json4 5class MyClass {};6 7void myFunction(int Param);8 9namespace NestedNamespace {10} // namespace NestedNamespace11 12static int Global;13 14enum Color {15 RED,16 GREEN,17 BLUE = 518};19 20typedef int MyTypedef;21 22// CHECK: { 23// CHECK-NEXT: "DocumentationFileName": "index",24// CHECK-NEXT: "Enums": [25// CHECK-NEXT: {26// CHECK-NEXT: "End": true,27// CHECK-NEXT: "InfoType": "enum",28// CHECK-NEXT: "Location": {29// CHECK-NEXT: "Filename": "{{.*}}namespace.cpp",30// CHECK-NEXT: "LineNumber": 1431// CHECK-NEXT: },32// CHECK-NEXT: "Members": [33// CHECK-NEXT: {34// CHECK-NEXT: "Name": "RED",35// CHECK-NEXT: "Value": "0"36// CHECK-NEXT: },37// CHECK-NEXT: {38// CHECK-NEXT: "Name": "GREEN",39// CHECK-NEXT: "Value": "1"40// CHECK-NEXT: },41// CHECK-NEXT: {42// CHECK-NEXT: "End": true,43// CHECK-NEXT: "Name": "BLUE",44// CHECK-NEXT: "ValueExpr": "5"45// CHECK-NEXT: }46// CHECK-NEXT: ],47// CHECK-NEXT: "Name": "Color",48// CHECK-NEXT: "Scoped": false,49// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"50// CHECK-NEXT: }51// CHECK-NEXT: ],52// CHECK-NEXT: "Functions": [53// CHECK-NEXT: {54// CHECK-NEXT: "End": true,55// CHECK-NEXT: "InfoType": "function",56// CHECK-NEXT: "IsStatic": false,57// CHECK-NEXT: "Name": "myFunction",58// CHECK-NEXT: "Params": [59// CHECK-NEXT: {60// CHECK-NEXT: "End": true,61// CHECK-NEXT: "Name": "Param",62// CHECK-NEXT: "Type": "int"63// CHECK-NEXT: }64// CHECK-NEXT: ],65// CHECK-NEXT: "ReturnType": {66// CHECK-NEXT: "IsBuiltIn": true,67// CHECK-NEXT: "IsTemplate": false,68// CHECK-NEXT: "Name": "void",69// CHECK-NEXT: "QualName": "void",70// CHECK-NEXT: "USR": "0000000000000000000000000000000000000000"71// CHECK-NEXT: },72// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"73// CHECK-NEXT: }74// CHECK-NEXT: ],75// CHECK-NEXT: "HasEnums": true,76// CHECK-NEXT: "HasRecords": true,77// CHECK-NEXT: "InfoType": "namespace",78// CHECK-NEXT: "Name": "",79// CHECK-NEXT: "Namespaces": [80// CHECK-NEXT: {81// CHECK-NEXT: "End": true,82// CHECK-NEXT: "Name": "NestedNamespace",83// CHECK-NEXT: "Path": "",84// CHECK-NEXT: "QualName": "NestedNamespace",85// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"86// CHECK-NEXT: }87// CHECK-NEXT: ],88// CHECK-NEXT: "Records": [89// CHECK-NEXT: {90// CHECK-NEXT: "DocumentationFileName": "_ZTV7MyClass",91// CHECK-NEXT: "End": true,92// CHECK-NEXT: "Name": "MyClass",93// CHECK-NEXT: "Path": "GlobalNamespace",94// CHECK-NEXT: "QualName": "MyClass",95// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"96// CHECK-NEXT: }97// CHECK-NEXT: ],98// CHECK-NEXT: "Typedefs": [99// CHECK-NEXT: {100// CHECK-NEXT: "End": true,101// CHECK-NEXT: "InfoType": "typedef",102// CHECK-NEXT: "IsUsing": false,103// CHECK-NEXT: "Location": {104// CHECK-NEXT: "Filename": "{{.*}}namespace.cpp",105// CHECK-NEXT: "LineNumber": 20106// CHECK-NEXT: },107// CHECK-NEXT: "Name": "MyTypedef",108// CHECK-NEXT: "TypeDeclaration": "",109// CHECK-NEXT: "USR": "{{[0-9A-F]*}}",110// CHECK-NEXT: "Underlying": {111// CHECK-NEXT: "IsBuiltIn": true,112// CHECK-NEXT: "IsTemplate": false,113// CHECK-NEXT: "Name": "int",114// CHECK-NEXT: "QualName": "int",115// CHECK-NEXT: "USR": "0000000000000000000000000000000000000000"116// CHECK-NEXT: }117// CHECK-NEXT: }118// CHECK-NEXT: ],119// CHECK-NEXT: "USR": "0000000000000000000000000000000000000000"120// CHECK-NEXT: "Variables": [121// CHECK-NEXT: {122// CHECK-NEXT: "End": true,123// CHECK-NEXT: "InfoType": "variable",124// CHECK-NEXT: "IsStatic": true,125// CHECK-NEXT: "Location": {126// CHECK-NEXT: "Filename": "{{.*}}namespace.cpp",127// CHECK-NEXT: "LineNumber": 12128// CHECK-NEXT: },129// CHECK-NEXT: "Name": "Global",130// CHECK-NEXT: "Type": {131// CHECK-NEXT: "IsBuiltIn": true,132// CHECK-NEXT: "IsTemplate": false,133// CHECK-NEXT: "Name": "int",134// CHECK-NEXT: "QualName": "int",135// CHECK-NEXT: "USR": "0000000000000000000000000000000000000000"136// CHECK-NEXT: },137// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"138// CHECK-NEXT: }139// CHECK-NEXT: ]140// CHECK-NEXT: }141