xref: /llvm-project/clang/test/InstallAPI/functions.test (revision feed66f3eae5006bb05e6cb34801930fd940daa8)
150ae8a2aSCyndy Ishida// RUN: rm -rf %t
250ae8a2aSCyndy Ishida// RUN: split-file %s %t
350ae8a2aSCyndy Ishida// RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json
450ae8a2aSCyndy Ishida
550ae8a2aSCyndy Ishida// RUN: clang-installapi -target arm64-apple-macos13.1 \
6*feed66f3SCyndy Ishida// RUN: -I%t/usr/include -I%t/usr/local/include -dynamiclib \
7c51095f5SCyndy Ishida// RUN: -install_name @rpath/lib/libfunctions.dylib --filetype=tbd-v4 \
850ae8a2aSCyndy Ishida// RUN: %t/inputs.json -o %t/outputs.tbd 2>&1 | FileCheck %s --allow-empty
950ae8a2aSCyndy Ishida// RUN: llvm-readtapi -compare %t/outputs.tbd %t/expected.tbd 2>&1 | FileCheck %s --allow-empty
1050ae8a2aSCyndy Ishida
1150ae8a2aSCyndy Ishida// CHECK-NOT: error:
1250ae8a2aSCyndy Ishida// CHECK-NOT: warning:
1350ae8a2aSCyndy Ishida
1450ae8a2aSCyndy Ishida//--- usr/include/functions.h
1550ae8a2aSCyndy Ishidainline int inlined_func(void) { return 1;}
1650ae8a2aSCyndy Ishidaint public(int a);
1750ae8a2aSCyndy Ishida
1850ae8a2aSCyndy Ishida//--- usr/local/include/private_functions.h
1950ae8a2aSCyndy Ishida__attribute__((visibility("hidden")))
2050ae8a2aSCyndy Ishidavoid hidden(void);
2150ae8a2aSCyndy Ishida
2250ae8a2aSCyndy Ishida//--- inputs.json.in
2350ae8a2aSCyndy Ishida{
2450ae8a2aSCyndy Ishida  "headers": [ {
2550ae8a2aSCyndy Ishida    "path" : "DSTROOT/usr/include/functions.h",
2650ae8a2aSCyndy Ishida    "type" : "public"
2750ae8a2aSCyndy Ishida  },
2850ae8a2aSCyndy Ishida  {
2950ae8a2aSCyndy Ishida    "path" : "DSTROOT/usr/local/include/private_functions.h",
3050ae8a2aSCyndy Ishida    "type" : "private"
3150ae8a2aSCyndy Ishida  }
3250ae8a2aSCyndy Ishida  ],
3350ae8a2aSCyndy Ishida  "version": "3"
3450ae8a2aSCyndy Ishida}
3550ae8a2aSCyndy Ishida
3650ae8a2aSCyndy Ishida//--- expected.tbd
3750ae8a2aSCyndy Ishida{
3850ae8a2aSCyndy Ishida  "main_library": {
3950ae8a2aSCyndy Ishida    "compatibility_versions": [
4050ae8a2aSCyndy Ishida      {
4150ae8a2aSCyndy Ishida        "version": "0"
4250ae8a2aSCyndy Ishida      }
4350ae8a2aSCyndy Ishida    ],
4450ae8a2aSCyndy Ishida    "current_versions": [
4550ae8a2aSCyndy Ishida      {
4650ae8a2aSCyndy Ishida        "version": "0"
4750ae8a2aSCyndy Ishida      }
4850ae8a2aSCyndy Ishida    ],
4950ae8a2aSCyndy Ishida    "exported_symbols": [
5050ae8a2aSCyndy Ishida      {
5150ae8a2aSCyndy Ishida        "text": {
5250ae8a2aSCyndy Ishida          "global": [
5350ae8a2aSCyndy Ishida            "_public"
5450ae8a2aSCyndy Ishida          ]
5550ae8a2aSCyndy Ishida        }
5650ae8a2aSCyndy Ishida      }
5750ae8a2aSCyndy Ishida    ],
5850ae8a2aSCyndy Ishida    "flags": [
5950ae8a2aSCyndy Ishida      {
6050ae8a2aSCyndy Ishida        "attributes": [
6150ae8a2aSCyndy Ishida          "not_app_extension_safe"
6250ae8a2aSCyndy Ishida        ]
6350ae8a2aSCyndy Ishida      }
6450ae8a2aSCyndy Ishida    ],
6550ae8a2aSCyndy Ishida    "install_names": [
6650ae8a2aSCyndy Ishida      {
6750ae8a2aSCyndy Ishida        "name": "@rpath/lib/libfunctions.dylib"
6850ae8a2aSCyndy Ishida      }
6950ae8a2aSCyndy Ishida    ],
7050ae8a2aSCyndy Ishida    "target_info": [
7150ae8a2aSCyndy Ishida      {
7250ae8a2aSCyndy Ishida        "min_deployment": "13.1",
7350ae8a2aSCyndy Ishida        "target": "arm64-macos"
7450ae8a2aSCyndy Ishida      }
7550ae8a2aSCyndy Ishida    ]
7650ae8a2aSCyndy Ishida  },
7750ae8a2aSCyndy Ishida  "tapi_tbd_version": 5
7850ae8a2aSCyndy Ishida}
79