brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.7 KiB · b98cd27 Raw
400 lines · c
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 -extract-api --pretty-sgf --product-name=GlobalRecord -target arm64-apple-macosx \6// RUN: %t/input1.h %t/input2.h %t/input3.h -o %t/output.json | FileCheck -allow-empty %s7 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// CHECK-NOT: error:14// CHECK-NOT: warning:15 16//--- input1.h17int num;18 19//--- input2.h20/**21 * \brief Add two numbers.22 * \param [in]  x   A number.23 * \param [in]  y   Another number.24 * \param [out] res The result of x + y.25 */26void add(const int x, const int y, int *res);27 28//--- input3.h29char unavailable __attribute__((unavailable));30 31//--- reference.output.json.in32{33  "metadata": {34    "formatVersion": {35      "major": 0,36      "minor": 5,37      "patch": 338    },39    "generator": "?"40  },41  "module": {42    "name": "GlobalRecord",43    "platform": {44      "architecture": "arm64",45      "operatingSystem": {46        "minimumVersion": {47          "major": 11,48          "minor": 0,49          "patch": 050        },51        "name": "macosx"52      },53      "vendor": "apple"54    }55  },56  "relationships": [],57  "symbols": [58    {59      "accessLevel": "public",60      "declarationFragments": [61        {62          "kind": "typeIdentifier",63          "preciseIdentifier": "c:I",64          "spelling": "int"65        },66        {67          "kind": "text",68          "spelling": " "69        },70        {71          "kind": "identifier",72          "spelling": "num"73        },74        {75          "kind": "text",76          "spelling": ";"77        }78      ],79      "identifier": {80        "interfaceLanguage": "c",81        "precise": "c:@num"82      },83      "kind": {84        "displayName": "Global Variable",85        "identifier": "c.var"86      },87      "location": {88        "position": {89          "character": 4,90          "line": 091        },92        "uri": "file://INPUT_DIR/input1.h"93      },94      "names": {95        "navigator": [96          {97            "kind": "identifier",98            "spelling": "num"99          }100        ],101        "subHeading": [102          {103            "kind": "identifier",104            "spelling": "num"105          }106        ],107        "title": "num"108      },109      "pathComponents": [110        "num"111      ]112    },113    {114      "accessLevel": "public",115      "declarationFragments": [116        {117          "kind": "typeIdentifier",118          "preciseIdentifier": "c:v",119          "spelling": "void"120        },121        {122          "kind": "text",123          "spelling": " "124        },125        {126          "kind": "identifier",127          "spelling": "add"128        },129        {130          "kind": "text",131          "spelling": "("132        },133        {134          "kind": "keyword",135          "spelling": "const"136        },137        {138          "kind": "text",139          "spelling": " "140        },141        {142          "kind": "typeIdentifier",143          "preciseIdentifier": "c:I",144          "spelling": "int"145        },146        {147          "kind": "text",148          "spelling": " "149        },150        {151          "kind": "internalParam",152          "spelling": "x"153        },154        {155          "kind": "text",156          "spelling": ", "157        },158        {159          "kind": "keyword",160          "spelling": "const"161        },162        {163          "kind": "text",164          "spelling": " "165        },166        {167          "kind": "typeIdentifier",168          "preciseIdentifier": "c:I",169          "spelling": "int"170        },171        {172          "kind": "text",173          "spelling": " "174        },175        {176          "kind": "internalParam",177          "spelling": "y"178        },179        {180          "kind": "text",181          "spelling": ", "182        },183        {184          "kind": "typeIdentifier",185          "preciseIdentifier": "c:I",186          "spelling": "int"187        },188        {189          "kind": "text",190          "spelling": " *"191        },192        {193          "kind": "internalParam",194          "spelling": "res"195        },196        {197          "kind": "text",198          "spelling": ");"199        }200      ],201      "docComment": {202        "lines": [203          {204            "range": {205              "end": {206                "character": 3,207                "line": 0208              },209              "start": {210                "character": 3,211                "line": 0212              }213            },214            "text": ""215          },216          {217            "range": {218              "end": {219                "character": 26,220                "line": 1221              },222              "start": {223                "character": 2,224                "line": 1225              }226            },227            "text": " \\brief Add two numbers."228          },229          {230            "range": {231              "end": {232                "character": 29,233                "line": 2234              },235              "start": {236                "character": 2,237                "line": 2238              }239            },240            "text": " \\param [in]  x   A number."241          },242          {243            "range": {244              "end": {245                "character": 35,246                "line": 3247              },248              "start": {249                "character": 2,250                "line": 3251              }252            },253            "text": " \\param [in]  y   Another number."254          },255          {256            "range": {257              "end": {258                "character": 40,259                "line": 4260              },261              "start": {262                "character": 2,263                "line": 4264              }265            },266            "text": " \\param [out] res The result of x + y."267          },268          {269            "range": {270              "end": {271                "character": 3,272                "line": 5273              },274              "start": {275                "character": 0,276                "line": 5277              }278            },279            "text": " "280          }281        ]282      },283      "functionSignature": {284        "parameters": [285          {286            "declarationFragments": [287              {288                "kind": "keyword",289                "spelling": "const"290              },291              {292                "kind": "text",293                "spelling": " "294              },295              {296                "kind": "typeIdentifier",297                "preciseIdentifier": "c:I",298                "spelling": "int"299              },300              {301                "kind": "text",302                "spelling": " "303              },304              {305                "kind": "internalParam",306                "spelling": "x"307              }308            ],309            "name": "x"310          },311          {312            "declarationFragments": [313              {314                "kind": "keyword",315                "spelling": "const"316              },317              {318                "kind": "text",319                "spelling": " "320              },321              {322                "kind": "typeIdentifier",323                "preciseIdentifier": "c:I",324                "spelling": "int"325              },326              {327                "kind": "text",328                "spelling": " "329              },330              {331                "kind": "internalParam",332                "spelling": "y"333              }334            ],335            "name": "y"336          },337          {338            "declarationFragments": [339              {340                "kind": "typeIdentifier",341                "preciseIdentifier": "c:I",342                "spelling": "int"343              },344              {345                "kind": "text",346                "spelling": " *"347              },348              {349                "kind": "internalParam",350                "spelling": "res"351              }352            ],353            "name": "res"354          }355        ],356        "returns": [357          {358            "kind": "typeIdentifier",359            "preciseIdentifier": "c:v",360            "spelling": "void"361          }362        ]363      },364      "identifier": {365        "interfaceLanguage": "c",366        "precise": "c:@F@add"367      },368      "kind": {369        "displayName": "Function",370        "identifier": "c.func"371      },372      "location": {373        "position": {374          "character": 5,375          "line": 6376        },377        "uri": "file://INPUT_DIR/input2.h"378      },379      "names": {380        "navigator": [381          {382            "kind": "identifier",383            "spelling": "add"384          }385        ],386        "subHeading": [387          {388            "kind": "identifier",389            "spelling": "add"390          }391        ],392        "title": "add"393      },394      "pathComponents": [395        "add"396      ]397    }398  ]399}400