172 lines · plain
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 -x objective-c-header -target arm64-apple-macosx \6// RUN: %t/input.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//--- input.h17@protocol Protocol18@end19 20@protocol AnotherProtocol <Protocol>21@end22 23//--- reference.output.json.in24{25 "metadata": {26 "formatVersion": {27 "major": 0,28 "minor": 5,29 "patch": 330 },31 "generator": "?"32 },33 "module": {34 "name": "",35 "platform": {36 "architecture": "arm64",37 "operatingSystem": {38 "minimumVersion": {39 "major": 11,40 "minor": 0,41 "patch": 042 },43 "name": "macosx"44 },45 "vendor": "apple"46 }47 },48 "relationships": [49 {50 "kind": "conformsTo",51 "source": "c:objc(pl)AnotherProtocol",52 "target": "c:objc(pl)Protocol",53 "targetFallback": "Protocol"54 }55 ],56 "symbols": [57 {58 "accessLevel": "public",59 "declarationFragments": [60 {61 "kind": "keyword",62 "spelling": "@protocol"63 },64 {65 "kind": "text",66 "spelling": " "67 },68 {69 "kind": "identifier",70 "spelling": "Protocol"71 }72 ],73 "identifier": {74 "interfaceLanguage": "objective-c",75 "precise": "c:objc(pl)Protocol"76 },77 "kind": {78 "displayName": "Protocol",79 "identifier": "objective-c.protocol"80 },81 "location": {82 "position": {83 "character": 10,84 "line": 085 },86 "uri": "file://INPUT_DIR/input.h"87 },88 "names": {89 "navigator": [90 {91 "kind": "identifier",92 "spelling": "Protocol"93 }94 ],95 "subHeading": [96 {97 "kind": "identifier",98 "spelling": "Protocol"99 }100 ],101 "title": "Protocol"102 },103 "pathComponents": [104 "Protocol"105 ]106 },107 {108 "accessLevel": "public",109 "declarationFragments": [110 {111 "kind": "keyword",112 "spelling": "@protocol"113 },114 {115 "kind": "text",116 "spelling": " "117 },118 {119 "kind": "identifier",120 "spelling": "AnotherProtocol"121 },122 {123 "kind": "text",124 "spelling": " <"125 },126 {127 "kind": "typeIdentifier",128 "preciseIdentifier": "c:objc(pl)Protocol",129 "spelling": "Protocol"130 },131 {132 "kind": "text",133 "spelling": ">"134 }135 ],136 "identifier": {137 "interfaceLanguage": "objective-c",138 "precise": "c:objc(pl)AnotherProtocol"139 },140 "kind": {141 "displayName": "Protocol",142 "identifier": "objective-c.protocol"143 },144 "location": {145 "position": {146 "character": 10,147 "line": 3148 },149 "uri": "file://INPUT_DIR/input.h"150 },151 "names": {152 "navigator": [153 {154 "kind": "identifier",155 "spelling": "AnotherProtocol"156 }157 ],158 "subHeading": [159 {160 "kind": "identifier",161 "spelling": "AnotherProtocol"162 }163 ],164 "title": "AnotherProtocol"165 },166 "pathComponents": [167 "AnotherProtocol"168 ]169 }170 ]171}172