// RUN: rm -rf %t
// RUN: split-file %s %t
// RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json

// RUN: clang-installapi -target arm64-apple-macos13.1 \
// RUN: -F%t -install_name /System/Library/Frameworks/Foo.framework/Foo \
// RUN: %t/inputs.json -o %t/outputs.tbd -v 2>&1 | FileCheck %s --check-prefix=VERBOSE
// RUN: llvm-readtapi -compare %t/outputs.tbd %t/expected.tbd 2>&1 | FileCheck %s --allow-empty

// VERBOSE:       Public Headers: 
// VERBOSE-NEXT:  #import <Foo/Foo.h> 
// CHECK-NOT:     error:  
// CHECK-NOT:     warning:  

//--- Foo.framework/Headers/Foo.h
// Ignore forward declaration. 
@class NSObject;

@interface Visible 
@end

__attribute__((visibility("hidden")))
@interface Hidden
@end

__attribute__((visibility("hidden")))
@interface HiddenWithIvars {
@public 
char _ivar;
}
@end

__attribute__((objc_exception))
@interface Exception 
@end

@interface PublicClass : Visible  {
@package 
  int _internal;
@protected
  int _external;
@private
  int private;
@public
char _public;
}
@end


//--- Foo.framework/PrivateHeaders/Foo_Private.h
#import <Foo/Foo.h>

@interface ClassWithIvars : Visible  {
  char _ivar1;
  char _ivar2;
@private
  int _privateIVar;
@protected
  int _externalIVar;
@package 
  int _internalIVar;
}
@end

@interface Exception () {
@public 
  char _ivarFromExtension;
@private 
  int _privateIvarFromExtension;
}
@end


//--- inputs.json.in
{
  "headers": [ {
    "path" : "DSTROOT/Foo.framework/Headers/Foo.h",
    "type" : "public"
  }, 
  {
    "path" : "DSTROOT/Foo.framework/PrivateHeaders/Foo_Private.h",
    "type" : "private"
  }
  ],
  "version": "3"
}

//--- expected.tbd
{
  "main_library": {
    "compatibility_versions": [
      {
        "version": "0"
      }
    ],
    "current_versions": [
      {
        "version": "0"
      }
    ],
    "exported_symbols": [
      {
        "data": {
          "objc_class": [
            "PublicClass",
            "Exception",
            "Visible",
            "ClassWithIvars"
          ],
          "objc_eh_type": [
            "Exception"
          ],
          "objc_ivar": [
            "Exception._ivarFromExtension",
            "ClassWithIvars._ivar2",
            "PublicClass._external",
            "ClassWithIvars._ivar1",
            "ClassWithIvars._externalIVar",
            "PublicClass._public"
          ]
        }
      }
    ],
    "flags": [
      {
        "attributes": [
          "not_app_extension_safe"
        ]
      }
    ],
    "install_names": [
      {
        "name": "/System/Library/Frameworks/Foo.framework/Foo"
      }
    ],
    "target_info": [
      {
        "min_deployment": "13.1",
        "target": "arm64-macos"
      }
    ]
  },
  "tapi_tbd_version": 5
}
