xref: /llvm-project/clang/test/ExtractAPI/nested_namespaces.cpp (revision e05c1b46d0d3739cc48ad912dbe6e9affce05927)
108f034f9SErick Velez // RUN: rm -rf %t
208f034f9SErick Velez // RUN: split-file %s %t
308f034f9SErick Velez // RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}@g" \
408f034f9SErick Velez // RUN: %t/reference.output.json.in >> %t/reference.output.json
5*e05c1b46SDaniel Grumberg // RUN: %clang_cc1 -extract-api --pretty-sgf -triple arm64-apple-macosx \
608f034f9SErick Velez // RUN:   -x c++-header %t/input.h -o %t/output.json -verify
708f034f9SErick Velez 
808f034f9SErick Velez // Generator version is not consistent across test runs, normalize it.
908f034f9SErick Velez // RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \
1008f034f9SErick Velez // RUN: %t/output.json >> %t/output-normalized.json
1108f034f9SErick Velez // RUN: diff %t/reference.output.json %t/output-normalized.json
1208f034f9SErick Velez 
1308f034f9SErick Velez //--- input.h
1408f034f9SErick Velez namespace Foo {
1508f034f9SErick Velez   namespace Bar { }
1608f034f9SErick Velez }
1708f034f9SErick Velez 
1808f034f9SErick Velez /// expected-no-diagnostics
1908f034f9SErick Velez 
2008f034f9SErick Velez //--- reference.output.json.in
2108f034f9SErick Velez {
2208f034f9SErick Velez   "metadata": {
2308f034f9SErick Velez     "formatVersion": {
2408f034f9SErick Velez       "major": 0,
2508f034f9SErick Velez       "minor": 5,
2608f034f9SErick Velez       "patch": 3
2708f034f9SErick Velez     },
2808f034f9SErick Velez     "generator": "?"
2908f034f9SErick Velez   },
3008f034f9SErick Velez   "module": {
3108f034f9SErick Velez     "name": "",
3208f034f9SErick Velez     "platform": {
3308f034f9SErick Velez       "architecture": "arm64",
3408f034f9SErick Velez       "operatingSystem": {
3508f034f9SErick Velez         "minimumVersion": {
3608f034f9SErick Velez           "major": 11,
3708f034f9SErick Velez           "minor": 0,
3808f034f9SErick Velez           "patch": 0
3908f034f9SErick Velez         },
4008f034f9SErick Velez         "name": "macosx"
4108f034f9SErick Velez       },
4208f034f9SErick Velez       "vendor": "apple"
4308f034f9SErick Velez     }
4408f034f9SErick Velez   },
4508f034f9SErick Velez   "relationships": [
4608f034f9SErick Velez     {
4708f034f9SErick Velez       "kind": "memberOf",
4808f034f9SErick Velez       "source": "c:@N@Foo@N@Bar",
4908f034f9SErick Velez       "target": "c:@N@Foo",
5008f034f9SErick Velez       "targetFallback": "Foo"
5108f034f9SErick Velez     }
5208f034f9SErick Velez   ],
5308f034f9SErick Velez   "symbols": [
5408f034f9SErick Velez     {
5508f034f9SErick Velez       "accessLevel": "public",
5608f034f9SErick Velez       "declarationFragments": [
5708f034f9SErick Velez         {
5808f034f9SErick Velez           "kind": "keyword",
5908f034f9SErick Velez           "spelling": "namespace"
6008f034f9SErick Velez         },
6108f034f9SErick Velez         {
6208f034f9SErick Velez           "kind": "text",
6308f034f9SErick Velez           "spelling": " "
6408f034f9SErick Velez         },
6508f034f9SErick Velez         {
6608f034f9SErick Velez           "kind": "identifier",
6708f034f9SErick Velez           "spelling": "Foo"
6808f034f9SErick Velez         },
6908f034f9SErick Velez         {
7008f034f9SErick Velez           "kind": "text",
7108f034f9SErick Velez           "spelling": ";"
7208f034f9SErick Velez         }
7308f034f9SErick Velez       ],
7408f034f9SErick Velez       "identifier": {
7508f034f9SErick Velez         "interfaceLanguage": "c++",
7608f034f9SErick Velez         "precise": "c:@N@Foo"
7708f034f9SErick Velez       },
7808f034f9SErick Velez       "kind": {
7908f034f9SErick Velez         "displayName": "Namespace",
8008f034f9SErick Velez         "identifier": "c++.namespace"
8108f034f9SErick Velez       },
8208f034f9SErick Velez       "location": {
8308f034f9SErick Velez         "position": {
8463537872SQuietMisdreavus           "character": 10,
8563537872SQuietMisdreavus           "line": 0
8608f034f9SErick Velez         },
8708f034f9SErick Velez         "uri": "file://INPUT_DIR/input.h"
8808f034f9SErick Velez       },
8908f034f9SErick Velez       "names": {
9008f034f9SErick Velez         "navigator": [
9108f034f9SErick Velez           {
9208f034f9SErick Velez             "kind": "identifier",
9308f034f9SErick Velez             "spelling": "Foo"
9408f034f9SErick Velez           }
9508f034f9SErick Velez         ],
9608f034f9SErick Velez         "subHeading": [
9708f034f9SErick Velez           {
9808f034f9SErick Velez             "kind": "identifier",
9908f034f9SErick Velez             "spelling": "Foo"
10008f034f9SErick Velez           }
10108f034f9SErick Velez         ],
10208f034f9SErick Velez         "title": "Foo"
10308f034f9SErick Velez       },
10408f034f9SErick Velez       "pathComponents": [
10508f034f9SErick Velez         "Foo"
10608f034f9SErick Velez       ]
10708f034f9SErick Velez     },
10808f034f9SErick Velez     {
10908f034f9SErick Velez       "accessLevel": "public",
11008f034f9SErick Velez       "declarationFragments": [
11108f034f9SErick Velez         {
11208f034f9SErick Velez           "kind": "keyword",
11308f034f9SErick Velez           "spelling": "namespace"
11408f034f9SErick Velez         },
11508f034f9SErick Velez         {
11608f034f9SErick Velez           "kind": "text",
11708f034f9SErick Velez           "spelling": " "
11808f034f9SErick Velez         },
11908f034f9SErick Velez         {
12008f034f9SErick Velez           "kind": "identifier",
12108f034f9SErick Velez           "spelling": "Bar"
12208f034f9SErick Velez         },
12308f034f9SErick Velez         {
12408f034f9SErick Velez           "kind": "text",
12508f034f9SErick Velez           "spelling": ";"
12608f034f9SErick Velez         }
12708f034f9SErick Velez       ],
12808f034f9SErick Velez       "identifier": {
12908f034f9SErick Velez         "interfaceLanguage": "c++",
13008f034f9SErick Velez         "precise": "c:@N@Foo@N@Bar"
13108f034f9SErick Velez       },
13208f034f9SErick Velez       "kind": {
13308f034f9SErick Velez         "displayName": "Namespace",
13408f034f9SErick Velez         "identifier": "c++.namespace"
13508f034f9SErick Velez       },
13608f034f9SErick Velez       "location": {
13708f034f9SErick Velez         "position": {
13863537872SQuietMisdreavus           "character": 12,
13963537872SQuietMisdreavus           "line": 1
14008f034f9SErick Velez         },
14108f034f9SErick Velez         "uri": "file://INPUT_DIR/input.h"
14208f034f9SErick Velez       },
14308f034f9SErick Velez       "names": {
14408f034f9SErick Velez         "navigator": [
14508f034f9SErick Velez           {
14608f034f9SErick Velez             "kind": "identifier",
14708f034f9SErick Velez             "spelling": "Bar"
14808f034f9SErick Velez           }
14908f034f9SErick Velez         ],
15008f034f9SErick Velez         "subHeading": [
15108f034f9SErick Velez           {
15208f034f9SErick Velez             "kind": "identifier",
15308f034f9SErick Velez             "spelling": "Bar"
15408f034f9SErick Velez           }
15508f034f9SErick Velez         ],
15608f034f9SErick Velez         "title": "Bar"
15708f034f9SErick Velez       },
15808f034f9SErick Velez       "pathComponents": [
15908f034f9SErick Velez         "Foo",
16008f034f9SErick Velez         "Bar"
16108f034f9SErick Velez       ]
16208f034f9SErick Velez     }
16308f034f9SErick Velez   ]
16408f034f9SErick Velez }
165