brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.3 KiB · 0c5db8e Raw
367 lines · cpp
1// RUN: rm -rf %t2// RUN: split-file %s %t3// RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}@g" \4// RUN: %t/reference.output.json.in >> %t/reference.output.json5// RUN: %clang_cc1 -extract-api --pretty-sgf -triple arm64-apple-macosx \6// RUN:   -x c++-header %t/input.h -o %t/output.json -verify7 8// Generator version is not consistent across test runs, normalize it.9// RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \10// RUN: %t/output.json >> %t/output-normalized.json11// RUN: diff %t/reference.output.json %t/output-normalized.json12 13//--- input.h14class Foo {15private:16  int a;17  mutable int b;18 19protected:20  int c;21 22public:23  int d;24};25/// expected-no-diagnostics26 27//--- reference.output.json.in28{29  "metadata": {30    "formatVersion": {31      "major": 0,32      "minor": 5,33      "patch": 334    },35    "generator": "?"36  },37  "module": {38    "name": "",39    "platform": {40      "architecture": "arm64",41      "operatingSystem": {42        "minimumVersion": {43          "major": 11,44          "minor": 0,45          "patch": 046        },47        "name": "macosx"48      },49      "vendor": "apple"50    }51  },52  "relationships": [53    {54      "kind": "memberOf",55      "source": "c:@S@Foo@FI@a",56      "target": "c:@S@Foo",57      "targetFallback": "Foo"58    },59    {60      "kind": "memberOf",61      "source": "c:@S@Foo@FI@b",62      "target": "c:@S@Foo",63      "targetFallback": "Foo"64    },65    {66      "kind": "memberOf",67      "source": "c:@S@Foo@FI@c",68      "target": "c:@S@Foo",69      "targetFallback": "Foo"70    },71    {72      "kind": "memberOf",73      "source": "c:@S@Foo@FI@d",74      "target": "c:@S@Foo",75      "targetFallback": "Foo"76    }77  ],78  "symbols": [79    {80      "accessLevel": "public",81      "declarationFragments": [82        {83          "kind": "keyword",84          "spelling": "class"85        },86        {87          "kind": "text",88          "spelling": " "89        },90        {91          "kind": "identifier",92          "spelling": "Foo"93        },94        {95          "kind": "text",96          "spelling": ";"97        }98      ],99      "identifier": {100        "interfaceLanguage": "c++",101        "precise": "c:@S@Foo"102      },103      "kind": {104        "displayName": "Class",105        "identifier": "c++.class"106      },107      "location": {108        "position": {109          "character": 6,110          "line": 0111        },112        "uri": "file://INPUT_DIR/input.h"113      },114      "names": {115        "navigator": [116          {117            "kind": "identifier",118            "spelling": "Foo"119          }120        ],121        "subHeading": [122          {123            "kind": "identifier",124            "spelling": "Foo"125          }126        ],127        "title": "Foo"128      },129      "pathComponents": [130        "Foo"131      ]132    },133    {134      "accessLevel": "private",135      "declarationFragments": [136        {137          "kind": "typeIdentifier",138          "preciseIdentifier": "c:I",139          "spelling": "int"140        },141        {142          "kind": "text",143          "spelling": " "144        },145        {146          "kind": "identifier",147          "spelling": "a"148        },149        {150          "kind": "text",151          "spelling": ";"152        }153      ],154      "identifier": {155        "interfaceLanguage": "c++",156        "precise": "c:@S@Foo@FI@a"157      },158      "kind": {159        "displayName": "Instance Property",160        "identifier": "c++.property"161      },162      "location": {163        "position": {164          "character": 6,165          "line": 2166        },167        "uri": "file://INPUT_DIR/input.h"168      },169      "names": {170        "navigator": [171          {172            "kind": "identifier",173            "spelling": "a"174          }175        ],176        "subHeading": [177          {178            "kind": "identifier",179            "spelling": "a"180          }181        ],182        "title": "a"183      },184      "pathComponents": [185        "Foo",186        "a"187      ]188    },189    {190      "accessLevel": "private",191      "declarationFragments": [192        {193          "kind": "keyword",194          "spelling": "mutable"195        },196        {197          "kind": "text",198          "spelling": " "199        },200        {201          "kind": "typeIdentifier",202          "preciseIdentifier": "c:I",203          "spelling": "int"204        },205        {206          "kind": "text",207          "spelling": " "208        },209        {210          "kind": "identifier",211          "spelling": "b"212        },213        {214          "kind": "text",215          "spelling": ";"216        }217      ],218      "identifier": {219        "interfaceLanguage": "c++",220        "precise": "c:@S@Foo@FI@b"221      },222      "kind": {223        "displayName": "Instance Property",224        "identifier": "c++.property"225      },226      "location": {227        "position": {228          "character": 14,229          "line": 3230        },231        "uri": "file://INPUT_DIR/input.h"232      },233      "names": {234        "navigator": [235          {236            "kind": "identifier",237            "spelling": "b"238          }239        ],240        "subHeading": [241          {242            "kind": "identifier",243            "spelling": "b"244          }245        ],246        "title": "b"247      },248      "pathComponents": [249        "Foo",250        "b"251      ]252    },253    {254      "accessLevel": "protected",255      "declarationFragments": [256        {257          "kind": "typeIdentifier",258          "preciseIdentifier": "c:I",259          "spelling": "int"260        },261        {262          "kind": "text",263          "spelling": " "264        },265        {266          "kind": "identifier",267          "spelling": "c"268        },269        {270          "kind": "text",271          "spelling": ";"272        }273      ],274      "identifier": {275        "interfaceLanguage": "c++",276        "precise": "c:@S@Foo@FI@c"277      },278      "kind": {279        "displayName": "Instance Property",280        "identifier": "c++.property"281      },282      "location": {283        "position": {284          "character": 6,285          "line": 6286        },287        "uri": "file://INPUT_DIR/input.h"288      },289      "names": {290        "navigator": [291          {292            "kind": "identifier",293            "spelling": "c"294          }295        ],296        "subHeading": [297          {298            "kind": "identifier",299            "spelling": "c"300          }301        ],302        "title": "c"303      },304      "pathComponents": [305        "Foo",306        "c"307      ]308    },309    {310      "accessLevel": "public",311      "declarationFragments": [312        {313          "kind": "typeIdentifier",314          "preciseIdentifier": "c:I",315          "spelling": "int"316        },317        {318          "kind": "text",319          "spelling": " "320        },321        {322          "kind": "identifier",323          "spelling": "d"324        },325        {326          "kind": "text",327          "spelling": ";"328        }329      ],330      "identifier": {331        "interfaceLanguage": "c++",332        "precise": "c:@S@Foo@FI@d"333      },334      "kind": {335        "displayName": "Instance Property",336        "identifier": "c++.property"337      },338      "location": {339        "position": {340          "character": 6,341          "line": 9342        },343        "uri": "file://INPUT_DIR/input.h"344      },345      "names": {346        "navigator": [347          {348            "kind": "identifier",349            "spelling": "d"350          }351        ],352        "subHeading": [353          {354            "kind": "identifier",355            "spelling": "d"356          }357        ],358        "title": "d"359      },360      "pathComponents": [361        "Foo",362        "d"363      ]364    }365  ]366}367