163 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 {};15 16class Bar : public Foo {};17/// expected-no-diagnostics18 19//--- reference.output.json.in20{21 "metadata": {22 "formatVersion": {23 "major": 0,24 "minor": 5,25 "patch": 326 },27 "generator": "?"28 },29 "module": {30 "name": "",31 "platform": {32 "architecture": "arm64",33 "operatingSystem": {34 "minimumVersion": {35 "major": 11,36 "minor": 0,37 "patch": 038 },39 "name": "macosx"40 },41 "vendor": "apple"42 }43 },44 "relationships": [45 {46 "kind": "inheritsFrom",47 "source": "c:@S@Bar",48 "target": "c:@S@Foo",49 "targetFallback": "Foo"50 }51 ],52 "symbols": [53 {54 "accessLevel": "public",55 "declarationFragments": [56 {57 "kind": "keyword",58 "spelling": "class"59 },60 {61 "kind": "text",62 "spelling": " "63 },64 {65 "kind": "identifier",66 "spelling": "Foo"67 },68 {69 "kind": "text",70 "spelling": ";"71 }72 ],73 "identifier": {74 "interfaceLanguage": "c++",75 "precise": "c:@S@Foo"76 },77 "kind": {78 "displayName": "Class",79 "identifier": "c++.class"80 },81 "location": {82 "position": {83 "character": 6,84 "line": 085 },86 "uri": "file://INPUT_DIR/input.h"87 },88 "names": {89 "navigator": [90 {91 "kind": "identifier",92 "spelling": "Foo"93 }94 ],95 "subHeading": [96 {97 "kind": "identifier",98 "spelling": "Foo"99 }100 ],101 "title": "Foo"102 },103 "pathComponents": [104 "Foo"105 ]106 },107 {108 "accessLevel": "public",109 "declarationFragments": [110 {111 "kind": "keyword",112 "spelling": "class"113 },114 {115 "kind": "text",116 "spelling": " "117 },118 {119 "kind": "identifier",120 "spelling": "Bar"121 },122 {123 "kind": "text",124 "spelling": ";"125 }126 ],127 "identifier": {128 "interfaceLanguage": "c++",129 "precise": "c:@S@Bar"130 },131 "kind": {132 "displayName": "Class",133 "identifier": "c++.class"134 },135 "location": {136 "position": {137 "character": 6,138 "line": 2139 },140 "uri": "file://INPUT_DIR/input.h"141 },142 "names": {143 "navigator": [144 {145 "kind": "identifier",146 "spelling": "Bar"147 }148 ],149 "subHeading": [150 {151 "kind": "identifier",152 "spelling": "Bar"153 }154 ],155 "title": "Bar"156 },157 "pathComponents": [158 "Bar"159 ]160 }161 ]162}163