296 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/c.reference.output.json.in >> %t/c.reference.output.json5// RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}@g" \6// RUN: %t/objc.reference.output.json.in >> %t/objc.reference.output.json7// RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}@g" \8// RUN: %t/objcpp.reference.output.json.in >> %t/objcpp.reference.output.json9 10// RUN: %clang_cc1 -extract-api --pretty-sgf -x c-header -triple arm64-apple-macosx \11// RUN: %t/c.h -o %t/c.output.json | FileCheck -allow-empty %s12// RUN: %clang_cc1 -extract-api --pretty-sgf -x objective-c-header -triple arm64-apple-macosx \13// RUN: %t/objc.h -o %t/objc.output.json | FileCheck -allow-empty %s14// RUN: %clang_cc1 -extract-api --pretty-sgf -x objective-c++-header -triple arm64-apple-macosx \15// RUN: %t/objcpp.h -o %t/objcpp.output.json | FileCheck -allow-empty %s16 17// Generator version is not consistent across test runs, normalize it.18// RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \19// RUN: %t/c.output.json >> %t/c.output-normalized.json20// RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \21// RUN: %t/objc.output.json >> %t/objc.output-normalized.json22// RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \23// RUN: %t/objcpp.output.json >> %t/objcpp.output-normalized.json24 25// RUN: diff %t/c.reference.output.json %t/c.output-normalized.json26// RUN: diff %t/objc.reference.output.json %t/objc.output-normalized.json27// RUN: diff %t/objcpp.reference.output.json %t/objcpp.output-normalized.json28 29// CHECK-NOT: error:30// CHECK-NOT: warning:31 32//--- c.h33char c;34///expected-no-diagnostics35 36//--- objc.h37char objc;38///expected-no-diagnostics39 40//--- objcpp.h41char objcpp;42///expected-no-diagnostics43 44//--- c.reference.output.json.in45{46 "metadata": {47 "formatVersion": {48 "major": 0,49 "minor": 5,50 "patch": 351 },52 "generator": "?"53 },54 "module": {55 "name": "",56 "platform": {57 "architecture": "arm64",58 "operatingSystem": {59 "minimumVersion": {60 "major": 11,61 "minor": 0,62 "patch": 063 },64 "name": "macosx"65 },66 "vendor": "apple"67 }68 },69 "relationships": [],70 "symbols": [71 {72 "accessLevel": "public",73 "declarationFragments": [74 {75 "kind": "typeIdentifier",76 "preciseIdentifier": "c:C",77 "spelling": "char"78 },79 {80 "kind": "text",81 "spelling": " "82 },83 {84 "kind": "identifier",85 "spelling": "c"86 },87 {88 "kind": "text",89 "spelling": ";"90 }91 ],92 "identifier": {93 "interfaceLanguage": "c",94 "precise": "c:@c"95 },96 "kind": {97 "displayName": "Global Variable",98 "identifier": "c.var"99 },100 "location": {101 "position": {102 "character": 5,103 "line": 0104 },105 "uri": "file://INPUT_DIR/c.h"106 },107 "names": {108 "navigator": [109 {110 "kind": "identifier",111 "spelling": "c"112 }113 ],114 "subHeading": [115 {116 "kind": "identifier",117 "spelling": "c"118 }119 ],120 "title": "c"121 },122 "pathComponents": [123 "c"124 ]125 }126 ]127}128//--- objc.reference.output.json.in129{130 "metadata": {131 "formatVersion": {132 "major": 0,133 "minor": 5,134 "patch": 3135 },136 "generator": "?"137 },138 "module": {139 "name": "",140 "platform": {141 "architecture": "arm64",142 "operatingSystem": {143 "minimumVersion": {144 "major": 11,145 "minor": 0,146 "patch": 0147 },148 "name": "macosx"149 },150 "vendor": "apple"151 }152 },153 "relationships": [],154 "symbols": [155 {156 "accessLevel": "public",157 "declarationFragments": [158 {159 "kind": "typeIdentifier",160 "preciseIdentifier": "c:C",161 "spelling": "char"162 },163 {164 "kind": "text",165 "spelling": " "166 },167 {168 "kind": "identifier",169 "spelling": "objc"170 },171 {172 "kind": "text",173 "spelling": ";"174 }175 ],176 "identifier": {177 "interfaceLanguage": "objective-c",178 "precise": "c:@objc"179 },180 "kind": {181 "displayName": "Global Variable",182 "identifier": "objective-c.var"183 },184 "location": {185 "position": {186 "character": 5,187 "line": 0188 },189 "uri": "file://INPUT_DIR/objc.h"190 },191 "names": {192 "navigator": [193 {194 "kind": "identifier",195 "spelling": "objc"196 }197 ],198 "subHeading": [199 {200 "kind": "identifier",201 "spelling": "objc"202 }203 ],204 "title": "objc"205 },206 "pathComponents": [207 "objc"208 ]209 }210 ]211}212//--- objcpp.reference.output.json.in213{214 "metadata": {215 "formatVersion": {216 "major": 0,217 "minor": 5,218 "patch": 3219 },220 "generator": "?"221 },222 "module": {223 "name": "",224 "platform": {225 "architecture": "arm64",226 "operatingSystem": {227 "minimumVersion": {228 "major": 11,229 "minor": 0,230 "patch": 0231 },232 "name": "macosx"233 },234 "vendor": "apple"235 }236 },237 "relationships": [],238 "symbols": [239 {240 "accessLevel": "public",241 "declarationFragments": [242 {243 "kind": "typeIdentifier",244 "preciseIdentifier": "c:C",245 "spelling": "char"246 },247 {248 "kind": "text",249 "spelling": " "250 },251 {252 "kind": "identifier",253 "spelling": "objcpp"254 },255 {256 "kind": "text",257 "spelling": ";"258 }259 ],260 "identifier": {261 "interfaceLanguage": "objective-c++",262 "precise": "c:@objcpp"263 },264 "kind": {265 "displayName": "Global Variable",266 "identifier": "objective-c++.var"267 },268 "location": {269 "position": {270 "character": 5,271 "line": 0272 },273 "uri": "file://INPUT_DIR/objcpp.h"274 },275 "names": {276 "navigator": [277 {278 "kind": "identifier",279 "spelling": "objcpp"280 }281 ],282 "subHeading": [283 {284 "kind": "identifier",285 "spelling": "objcpp"286 }287 ],288 "title": "objcpp"289 },290 "pathComponents": [291 "objcpp"292 ]293 }294 ]295}296