xamarin-macios/tests/xtro-sharpie
Rolf Bjarne Kvinge f8314a435e
Add a [NativeName] attribute we can use to declare the native name for a type (enum/struct). (#14918)
We already have a few attributes that can specify the native name for a type, whenever the native name doesn't match the managed name:

* [Register ("DifferentClassName"): specifies the Objective-C class name
* [Native ("DifferentEnumName")]: specifies the Objective-C enum name (and also that it's a native-sized enum)
* [Protocol ("DifferentProtocolName")]: specifies the Objective-C protocol name
* [Category ("DifferentCategoryName")]: specifies the Objective-C category name

Unfortunately this leaves (at least) two cracks:

* Objective-C structs.
* Objective-C enums which aren't native-sized.

So I'm adding a [NativeName] attribute for this purpose, and updating numerous
types to specify the native name (either using an existing [Native] attribute
for enums that already have one, or by adding a new [NativeName] attribute).

The static registrar needs to know the native name for such types, in case
they appear as parameter types in function signatures.

This also allows us to simplify xtro a bit, to not have a separate map of
managed name given a native name, because we can now build that map
dynamically.
2022-05-09 22:16:17 +02:00
..
api-annotations-dotnet [NET Attribute Conversion][generator] Generate NET style attributes (#14779) 2022-05-02 09:44:25 -05:00
u2ignore
u2todo Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
xtro-report [xtro-report] Honor the input directory in a few places. 2021-11-24 15:39:03 +01:00
xtro-sanity [ARKit] Ignore this framework on Mac Catalyst. (#14290) 2022-03-03 21:43:33 +01:00
.gitignore [xtro] Generate a proj file that contains variables for the current pch and assembly. (#14249) 2022-02-25 17:03:01 +01:00
AttributeHelpers.cs [xtro-sharpie] Detect UnsupportedOSPlatform attributes as a deprecation attribute. 2021-11-24 15:39:03 +01:00
DeprecatedCheck.cs [xtro] Fix typo in comment. (#13384) 2021-11-19 08:51:22 +01:00
DesignatedInitializerCheck.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
DllImportCheck.cs [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
EnumCheck.cs [xtro] Don't report missing availability attributes for enums representing errors. (#13445) 2021-11-26 07:22:58 +01:00
FieldCheck.cs [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
Filter.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
Helpers.cs Add a [NativeName] attribute we can use to declare the native name for a type (enum/struct). (#14918) 2022-05-09 22:16:17 +02:00
Log.cs [xtro-sharpie] Add support for specifying the output directory. (#13408) 2021-11-22 18:50:17 +01:00
Makefile [xtro] Simplify makefile a bit by using the [IOS|MAC]_DESTDIR variable. (#14578) 2022-03-31 08:51:16 +02:00
MapNamesCheck.cs Add a [NativeName] attribute we can use to declare the native name for a type (enum/struct). (#14918) 2022-05-09 22:16:17 +02:00
NullabilityCheck.cs [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
ObjCInterfaceCheck.cs [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
ObjCProtocolCheck.cs [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
Program.cs [xtro-sharpie] Add support for specifying the output directory. (#13408) 2021-11-22 18:50:17 +01:00
README.md
ReleaseAttributeCheck.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
RequiresSuperCheck.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
Runner.cs Add a [NativeName] attribute we can use to declare the native name for a type (enum/struct). (#14918) 2022-05-09 22:16:17 +02:00
SelectorCheck.cs [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
SimdCheck.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
UIAppearanceCheck.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
VersionHelpers.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
common-AVFoundation.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
common-Accelerate.ignore [Accelerate] Ignore the new bindings for Xcode12 beta 5. (#9500) 2020-08-25 19:25:58 -04:00
common-Accessibility.ignore [Accessibility] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:33 -04:00
common-AddressBook.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-AppKit.ignore [AppKit] Update xtro annotations of unbound API 2022-03-14 22:54:33 -04:00
common-AppTrackingTransparency.ignore [AppTrackingTransparency] Add support for Xcode 12 beta 4 (#9385) 2020-08-19 15:54:04 +02:00
common-AudioToolbox.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-AudioUnit.ignore
common-AuthenticationServices.ignore [AuthenticationServices] Updates for Xcode13 Beta3 (#12203) 2021-08-04 10:11:26 -04:00
common-AutomaticAssessmentConfiguration.ignore [Xcode13] Bump xcode 13 to beta 3. (#12137) 2021-07-19 09:03:20 -04:00
common-CFNetwork.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-CHIP.ignore [CHIP] Updates for Xcode13.2 beta 1 (#13884) 2022-01-31 18:55:49 -05:00
common-CloudKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-Contacts.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-CoreAnimation.ignore [xcode12.2][tests][xtro] Add enum member/values checks. Fix #7527 (#9691) (#9796) 2020-10-07 10:58:27 -04:00
common-CoreAudioTypes.ignore
common-CoreBluetooth.ignore [corebluetooth] Add nullability to (generated and manual) bindings (#10241) 2020-12-09 09:10:55 -05:00
common-CoreData.ignore [xtro] Remove support for legacy Mac Catalyst. 2021-11-25 11:48:38 +01:00
common-CoreFoundation.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-CoreGraphics.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-CoreImage.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-CoreLocation.ignore [xcode12.2] [tests][xtro] Consider class (static) methods when checking for deprecation. Fix #9026 (#9781) 2020-10-05 16:00:51 -04:00
common-CoreLocationUI.ignore [CoreLocationUI] Add new framework for Xcode13 beta1. (#11979) 2021-06-21 12:10:13 -04:00
common-CoreMIDI.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-CoreML.ignore
common-CoreMedia.ignore [CoreMedia] Add support for xcode13 (#12770) 2021-09-24 18:19:49 -04:00
common-CoreMotion.ignore
common-CoreServices.ignore
common-CoreSpotlight.ignore
common-CoreText.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-CoreVideo.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-CoreWLAN.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-EventKit.ignore [EventKit] Updates for Xcode13 Beta1 (#12022) 2021-07-01 18:25:58 -05:00
common-ExposureNotification.ignore [xcode12] Update xtro to ignore unsuported frameworks (#9394) 2020-08-18 08:56:00 -04:00
common-ExternalAccessory.ignore [catalyst] Remove extraneous API detected by xtro (#10872) 2021-03-16 16:04:01 -04:00
common-Foundation.ignore [Foundation] Allow null parameters when creating a NSUrl from a string. (#14603) 2022-04-02 15:13:52 -04:00
common-GLKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-GameKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-GameplayKit.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
common-HealthKit.ignore [healthkit] Add nullability to (generated and manual) bindings (#14730) 2022-04-28 11:54:23 -05:00
common-HomeKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-IOSurface.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-ImageIO.ignore
common-Intents.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-IntentsUI.ignore [IntentsUI] Update bindings for Xcode13.0 betas 1,4 2021-10-20 14:33:42 -04:00
common-JavaScriptCore.ignore
common-MLCompute.ignore [MLCompute] Add support for Xcode 13 beta 4. (#12348) 2021-08-05 01:02:27 -04:00
common-MapKit.ignore [mapkit] Add nullability to (generated and manual) bindings (#10651) 2021-02-17 09:01:57 -05:00
common-MediaAccessibility.ignore
common-MediaPlayer.ignore Merge remote-tracking branch 'xamarin/xcode12.5' into alex-xcode12.5-main 2021-04-02 21:46:31 -04:00
common-MediaToolbox.ignore
common-Metal.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
common-MetalKit.ignore
common-MetalPerformanceShaders.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-ModelIO.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
common-Network.ignore [Network] Implement all bindings up to Xcode 13.1 (#13135) 2021-11-08 11:37:47 -05:00
common-NetworkExtension.ignore
common-ObjCRuntime.ignore [runtime] Port the is_user_type function from native to managed code. (#10841) 2021-03-12 07:38:27 +01:00
common-OpenGL[ES].ignore [xtro] Remove support for legacy Mac Catalyst. 2021-11-25 11:48:38 +01:00
common-PDFKit.ignore [xcode12] Initial bump for Xcode 12 GM (#9644) 2020-09-16 11:41:44 +02:00
common-PassKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-Photos.ignore [xcode12] Bump for beta 1 (#8935) 2020-06-26 14:02:44 -04:00
common-ReplayKit.ignore
common-SafariServices.ignore [SafariServices] Update to Xcode13 beta1 (#12102) 2021-07-26 17:29:17 -05:00
common-SceneKit.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
common-Security.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
common-SpriteKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
common-SystemConfiguration.ignore
common-UIKit.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
common-VideoToolbox.ignore
common-Vision.ignore [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
common-WidgetKit.ignore [xcode12][tests][xtro] Update xtro files (#9541) 2020-08-28 09:05:34 -04:00
common-libcompression.ignore
iOS-ARKit.ignore
iOS-AVFoundation.ignore [AVFoundation] Add support for xcode 13 beta 5. (#12550) 2021-09-15 11:37:21 -04:00
iOS-AVKit.ignore [xcode12.2][tests][xtro] Add enum member/values checks. Fix #7527 (#9691) (#9796) 2020-10-07 10:58:27 -04:00
iOS-Accelerate.todo Bump to Xcode 13 beta 1. (#11861) 2021-06-10 20:07:20 -04:00
iOS-AddressBook.ignore
iOS-AddressBookUI.ignore
iOS-AssetsLibrary.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
iOS-CHIP.ignore [xtro] Fix xtro annotations 2022-03-14 22:54:33 -04:00
iOS-CarPlay.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
iOS-CellularDataDiagnosticsSuite.todo [CellularDataDiagnosticsSuite] Wait to bind this new one until GA 2022-03-14 22:54:33 -04:00
iOS-ClockKit.ignore [ClockKit] Ignore framework on iOS. (#9495) 2020-08-25 16:27:27 -04:00
iOS-CoreBluetooth.ignore [corebluetooth] Add nullability to (generated and manual) bindings (#10241) 2020-12-09 09:10:55 -05:00
iOS-CoreImage.ignore [coreimage] Add nullability to (generated and manual) bindings (#10612) 2021-02-11 09:28:50 -05:00
iOS-CoreMIDI.todo [Xcode13] Bump for Xcode 13 beta4. (#12273) 2021-07-28 16:58:00 -04:00
iOS-CoreML.ignore [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
iOS-CoreMotion.ignore [coremotion] Fix xtro data files (nothing left todo) (#10908) 2021-03-18 09:12:42 -04:00
iOS-CoreNFC.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
iOS-CoreText.ignore
iOS-DataDetection.todo [Xcode13] Bump to beta 5. (#12413) 2021-08-13 13:07:19 -04:00
iOS-EventKit.ignore
iOS-EventKitUI.ignore [d16-7] [xtro][bindings] Add xtro support for nullability and fix some bindings (#8341) 2020-04-10 12:37:16 -04:00
iOS-ExposureNotification.ignore [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
iOS-FileProvider.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
iOS-Foundation.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
iOS-Foundation.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
iOS-GameKit.ignore [gamekit] Add nullability to (generated and manual) bindings (#10800) 2021-03-08 08:53:54 -05:00
iOS-HomeKit.ignore [HomeKit] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:34 -04:00
iOS-Intents.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
iOS-IntentsUI.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
iOS-MapKit.ignore [mapkit] Add nullability to (generated and manual) bindings (#10651) 2021-02-17 09:01:57 -05:00
iOS-MediaPlayer.ignore [mediaplayer] Add nullability to (generated and manual) bindings (#10790) 2021-03-05 08:26:29 -05:00
iOS-MediaSetup.ignore [mediasetup] Update for Xcode 12 beta 2 (#9087) 2020-07-16 20:34:19 -04:00
iOS-MessageUI.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
iOS-Messages.ignore
iOS-Metal.ignore Bump macios to Xcode 13.1 SDKs (#13123) 2021-10-26 13:58:37 -04:00
iOS-Metal.todo [Metal] Name the enum fields consistently, and obsolete/remove the rest. (#14240) 2022-02-24 23:00:26 +01:00
iOS-MetalPerformanceShaders.ignore [d16-7] [xtro][bindings] Add xtro support for nullability and fix some bindings (#8341) 2020-04-10 12:37:16 -04:00
iOS-MetalPerformanceShaders.todo [metalperformanceshaders] Add one troublesome missing method (#14557) 2022-04-04 11:08:55 -05:00
iOS-MetalPerformanceShadersGraph.todo [MetalPerformanceShadersGraph] Add Framework to todo 2022-03-14 22:54:34 -04:00
iOS-MetricKit.ignore [MetricKit] Add support for Xcode 13 beta4. (#12326) 2021-08-04 10:12:29 -04:00
iOS-Network.todo [Network] Add Framework to todo 2022-03-14 22:54:34 -04:00
iOS-NetworkExtension.ignore [tests][xtro] Fix NSUrl-based categories (#9034) 2020-07-08 13:23:43 -04:00
iOS-NetworkExtension.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
iOS-OSLog.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
iOS-PencilKit.ignore
iOS-ProximityReader.ignore [ProximityReader] Ignoring this framework nothing useful to bind 2022-03-14 22:54:34 -04:00
iOS-PushKit.ignore
iOS-QuickLook.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
iOS-Twitter.ignore
iOS-UIKit.ignore Add nullability on one UndoManager API (#14653) 2022-04-06 10:43:29 -05:00
iOS-UIKit.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
iOS-VideoToolbox.ignore
iOS-WatchConnectivity.ignore
macOS-AVFoundation.ignore [AVFoundation] Simplify code behind + api definition for AVCaptureConnection. (#14199) 2022-02-21 20:58:47 +01:00
macOS-AVFoundation.todo Update xtro. 2021-12-17 07:45:12 +01:00
macOS-AVKit.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
macOS-Accelerate.todo Bump to Xcode 13 beta 1. (#11861) 2021-06-10 20:07:20 -04:00
macOS-AddressBook.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-AppKit.ignore Set NSImageRep DrawInRect hints as nullable (#13834) 2022-03-01 20:34:02 +01:00
macOS-AudioToolbox.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-CFNetwork.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-CHIP.ignore [xtro] Fix xtro annotations 2022-03-14 22:54:33 -04:00
macOS-CallKit.ignore [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
macOS-Contacts.ignore [catalyst][contacts] Update for Catalyst (#11721) 2021-05-28 10:01:06 -04:00
macOS-CoreAnimation.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-CoreAudio.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-CoreBluetooth.ignore [CoreBluetooth] Add Xcode 13 beta 3 support. (#12153) 2021-07-21 13:03:05 -04:00
macOS-CoreData.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-CoreFoundation.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-CoreGraphics.ignore [ScreenCaptureKit] Add ScreenCaptureKit bindings up to Xcode 13.3 (#14644) 2022-04-05 20:16:31 -04:00
macOS-CoreHaptics.ignore [CoreHaptics] Add support for Xcode13 beta1. (#11963) 2021-06-17 15:15:07 -04:00
macOS-CoreImage.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-CoreLocation.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
macOS-CoreLocation.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
macOS-CoreMIDI.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-CoreMIDI.todo [Xcode13] Bump for Xcode 13 beta4. (#12273) 2021-07-28 16:58:00 -04:00
macOS-CoreMedia.ignore
macOS-CoreMediaIO.todo [CoreMediaIO] Add new macOS framework to todo 2022-03-14 22:54:34 -04:00
macOS-CoreMotion.ignore [CoreMotion] Update bindings up to Xcode 13.3 Beta 3 2022-03-14 22:54:34 -04:00
macOS-CoreServices.todo [CFNetwork] Add Xcode13 beta 1 support. (#11966) 2021-06-18 14:04:37 -04:00
macOS-CoreSpotlight.ignore
macOS-CoreText.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-CoreVideo.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-DataDetection.todo [Xcode13] Bump to beta 5. (#12413) 2021-08-13 13:07:19 -04:00
macOS-ExternalAccessory.ignore
macOS-FileProvider.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-FinderSync.ignore
macOS-Foundation.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
macOS-Foundation.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
macOS-GameController.ignore [GameController][Xcode12] Updates through beta 4 (#9265) 2020-08-07 11:16:25 -04:00
macOS-GameKit.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
macOS-IOSurface.ignore
macOS-ImageCaptureCore.ignore [d16-7] [xtro][bindings] Add xtro support for nullability and fix some bindings (#8341) 2020-04-10 12:37:16 -04:00
macOS-ImageIO.ignore
macOS-ImageKit.ignore
macOS-InputMethodKit.ignore
macOS-Intents.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
macOS-MapKit.ignore [mapkit] Add nullability to (generated and manual) bindings (#10651) 2021-02-17 09:01:57 -05:00
macOS-MapKit.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
macOS-MediaPlayer.ignore [Xtro] Update xtro ignore files with the new mac os x bindings. 2020-11-17 12:07:19 -05:00
macOS-Metal.ignore [Metal] Add support for xcode 13 beta5 . (#12875) 2021-10-05 13:32:48 -04:00
macOS-Metal.todo [Metal] Name the enum fields consistently, and obsolete/remove the rest. (#14240) 2022-02-24 23:00:26 +01:00
macOS-MetalKit.ignore [glkit] Add nullability to (generated and manual) bindings (#10765) 2021-03-03 09:33:09 -05:00
macOS-MetalPerformanceShaders.ignore [d16-7] [xtro][bindings] Add xtro support for nullability and fix some bindings (#8341) 2020-04-10 12:37:16 -04:00
macOS-MetalPerformanceShaders.todo [metalperformanceshaders] Add one troublesome missing method (#14557) 2022-04-04 11:08:55 -05:00
macOS-MetalPerformanceShadersGraph.todo [MetalPerformanceShadersGraph] Add Framework to todo 2022-03-14 22:54:34 -04:00
macOS-NearbyInteraction.ignore [Xcode12][NearbyInteraction] New framework, updated through beta 4 (#9336) 2020-08-10 16:06:02 -04:00
macOS-Network.todo [Network] Add Framework to todo 2022-03-14 22:54:34 -04:00
macOS-NetworkExtension.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
macOS-NetworkExtension.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
macOS-ObjCRuntime.ignore
macOS-OpenGL[ES].ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-PassKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-PrintCore.ignore
macOS-QuickLook.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-QuickLookUI.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
macOS-SafariServices.ignore [xtro] Ignore Obsoleted enums in EnumCheck. (#12390) 2021-08-10 13:40:25 +02:00
macOS-SceneKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-ScreenCaptureKit.todo [ScreenCaptureKit] Add ScreenCaptureKit bindings up to Xcode 13.3 (#14644) 2022-04-05 20:16:31 -04:00
macOS-ScriptingBridge.ignore [d16-8] [SBApplication][Bug] SBApplication.FromBundleIdentifier<T> should return null when bundle ID is unknown (#9668) 2020-09-18 18:19:23 -04:00
macOS-Security.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-SecurityInterface.todo [xcode12.2] Initial bump to Xcode 12.2 Beta 2 (#9730) 2020-10-02 18:33:38 -04:00
macOS-Social.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
macOS-SpriteKit.ignore [spritekit] Add nullability to (generated and manual) bindings (#10262) 2020-12-14 08:32:17 -05:00
macOS-StoreKit.ignore [StoreKit] Update framework to Xcode 12 beta 4. (#9387) 2020-08-18 20:22:36 -04:00
macOS-SystemConfiguration.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
macOS-UserNotifications.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
macOS-VideoSubscriberAccount.ignore [VideoSubscriberAccount] Updates for Xcode13 Beta 1 (#11977) 2021-06-23 12:55:08 -05:00
macOS-VideoToolbox.ignore
macOS-WebKit.ignore [xtro] Fix xtro annotations 2022-03-14 22:54:33 -04:00
tvOS-AVFoundation.ignore [AVFoundation] Fix availability for a few enums (#13451) 2021-11-26 07:21:30 +01:00
tvOS-Accelerate.todo Bump to Xcode 13 beta 1. (#11861) 2021-06-10 20:07:20 -04:00
tvOS-AudioToolbox.ignore
tvOS-CHIP.ignore [xtro] Fix xtro annotations 2022-03-14 22:54:33 -04:00
tvOS-CloudKit.ignore [d16-8] [Submission] Fix all the selectors that apple warns about. (#9382) 2020-08-17 09:34:06 -04:00
tvOS-CoreHaptics.ignore [CoreHaptics] Update framework for Xcode 12 beta 3. (#9273) 2020-08-05 11:43:44 -04:00
tvOS-CoreImage.ignore [coreimage] Add nullability to (generated and manual) bindings (#10612) 2021-02-11 09:28:50 -05:00
tvOS-CoreMIDI.todo [Xcode13] Bump for Xcode 13 beta4. (#12273) 2021-07-28 16:58:00 -04:00
tvOS-CoreML.ignore [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
tvOS-CoreText.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
tvOS-DataDetection.todo [Xcode13] Bump to beta 5. (#12413) 2021-08-13 13:07:19 -04:00
tvOS-ExternalAccessory.ignore
tvOS-Foundation.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
tvOS-Foundation.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
tvOS-GameKit.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
tvOS-Intents.ignore [xcode12] Bump PR for Xcode 12 Beta 6 (#9507) 2020-08-26 00:46:10 -04:00
tvOS-IntentsUI.ignore [IntentsUI] Update bindings for Xcode13.0 betas 1,4 2021-10-20 14:33:42 -04:00
tvOS-MapKit.ignore [mapkit] Add nullability to (generated and manual) bindings (#10651) 2021-02-17 09:01:57 -05:00
tvOS-MapKit.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
tvOS-MediaPlayer.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
tvOS-Metal.ignore [Metal] Add support for xcode 13 beta5 . (#12875) 2021-10-05 13:32:48 -04:00
tvOS-Metal.todo [Metal] Name the enum fields consistently, and obsolete/remove the rest. (#14240) 2022-02-24 23:00:26 +01:00
tvOS-MetalPerformanceShaders.ignore [d16-7] [xtro][bindings] Add xtro support for nullability and fix some bindings (#8341) 2020-04-10 12:37:16 -04:00
tvOS-MetalPerformanceShaders.todo [metalperformanceshaders] Add one troublesome missing method (#14557) 2022-04-04 11:08:55 -05:00
tvOS-MetalPerformanceShadersGraph.todo [MetalPerformanceShadersGraph] Add Framework to todo 2022-03-14 22:54:34 -04:00
tvOS-Network.todo [Network] Add Framework to todo 2022-03-14 22:54:34 -04:00
tvOS-OSLog.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
tvOS-PHASE.ignore [PHASE] Add suppport for Xcode13 beta 2. (#12098) 2021-08-04 22:38:03 -04:00
tvOS-ReplayKit.ignore
tvOS-StoreKit.ignore
tvOS-UIKit.ignore Add nullability on one UndoManager API (#14653) 2022-04-06 10:43:29 -05:00
tvOS-UIKit.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
tvOS-UserNotifications.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
tvOS-VideoToolbox.ignore
watchOS-AVFoundation.ignore Fix xtro 2021-04-03 17:58:31 -04:00
watchOS-Accelerate.todo Bump to Xcode 13 beta 1. (#11861) 2021-06-10 20:07:20 -04:00
watchOS-CHIP.ignore [xtro] Fix xtro annotations 2022-03-14 22:54:33 -04:00
watchOS-ClockKit.ignore [ClockKit] Add support for Xcode 12 beta 1. (#9010) 2020-07-14 11:12:26 -04:00
watchOS-CloudKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
watchOS-CoreMIDI.todo [Xcode13] Bump for Xcode 13 beta4. (#12273) 2021-07-28 16:58:00 -04:00
watchOS-CoreML.ignore [main] Add Xcode 13.2 Support (#13643) 2022-01-03 09:28:00 -05:00
watchOS-CoreText.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
watchOS-DataDetection.todo [Xcode13] Bump to beta 5. (#12413) 2021-08-13 13:07:19 -04:00
watchOS-Foundation.ignore [AppKit/Foundation] Numerous API adjustments. (#12243) 2021-07-28 09:18:48 +02:00
watchOS-Foundation.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
watchOS-GameKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
watchOS-HealthKit.ignore [healthkit] Add nullability to (generated and manual) bindings (#14730) 2022-04-28 11:54:23 -05:00
watchOS-Intents.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
watchOS-Intents.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
watchOS-MapKit.ignore [mapkit] Add nullability to (generated and manual) bindings (#10651) 2021-02-17 09:01:57 -05:00
watchOS-MediaPlayer.ignore [xtro] Update legacy annotations to talk about .NET instead of XAMCORE_4_0. (#14094) 2022-02-09 08:27:46 +01:00
watchOS-Network.todo [Network] Add Framework to todo 2022-03-14 22:54:34 -04:00
watchOS-NetworkExtension.ignore [NetworkExtensions] Update framework to Xcode12 beta 6. (#9585) 2020-09-08 13:07:34 -04:00
watchOS-NetworkExtension.todo Bump to Xcode 13 beta 1. (#11861) 2021-06-10 20:07:20 -04:00
watchOS-OSLog.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
watchOS-PassKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
watchOS-PassKit.todo [xtro] Don't report missing availability attributes for enums representing errors. (#13445) 2021-11-26 07:22:58 +01:00
watchOS-SceneKit.ignore [scenekit] Add nullability to (generated and manual) bindings (#10195) 2020-12-03 09:14:54 -05:00
watchOS-SpriteKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
watchOS-UIKit.ignore [xtro] Skip numerous validations for deprecated API. (#13383) 2021-11-18 16:26:30 +01:00
watchOS-UserNotifications.todo [xtro] Improve enum check. (#13396) 2021-11-22 18:51:12 +01:00
watchOS-WatchConnectivity.ignore
xtro-sharpie.csproj Add a [NativeName] attribute we can use to declare the native name for a type (enum/struct). (#14918) 2022-05-09 22:16:17 +02:00
xtro-sharpie.sln

README.md

Extrospection Tests based on ObjectiveSharpie

Goal

  • Compare our bindings with the information available Apple's C/ObjC header files;

  • Document, using annotations, the rational why some things differs;

Notes

  • Apple's headers are not perfect and discrepencies between them and other tests (e.g. intro) must be investigated;

  • Sharpie or xtro are not perfect either - whenever in doubt, double check with headers and file bugs as needed;

Design

  • The runner visit the provided (managed) assembly first, then it visit the precompiled headers (pch file) for an SDK (e.g. iOS or OSX);

  • Rules can be called at any steps to gather data and or report issues. Rules are also called at the end of the visits;

  • Rules should be kept simple and the external files, e.g. *.ignore, should be used to track special cases, along with comments with our decisions, i.e. why we tolarate them. That will ease code sharing across existing and new platforms;

  • The reporting tool tells if current issues can be ignored, are being worked on (part of a milestone) or needs immediate attention (fails the build);

Policy

  • The report tool must always report a success. Pull request can only be merged with an xtro green check;

Report

The xtro-report tool creates an html report that describe the results, per platforms and per frameworks (as defined by the header files).

The bots produce the report on every commit/PR. It can also be produced locally with:

cd tests/xtro-sharpie
make
open report/index.html

How to read the report

Links under FIXME (unclassified) points to the issue that must be fixed (to commit).

Links under TODO (milestone) indicate the progress for the issue/work under way. E.g. if PR 9999 claims to complete Xcode 99 support for UIKit then nothing should be reported on that line, otherwise the work is incomplete.

The links on the frameworks shows the issues that are presently ignored, either for historical reasons (not yet fixed) or because it cannot be fixed immediately (e.g. rdar) or ever. In the later case there are comments why.

Things to watch for

Different numbers between platforms can mean:

  • extra, platform specific, API; or

  • some existing bindings should be enabled for that platform;

Working Files

Ignore files

They come in different flavors

  • common-{framework}.ignore
  • {platform}-{framework}.ignore

They can include markdown-like comments as they will never be sorted.

Todo files

Format: {platform}-{framework}.todo

They are meant as short term work, e.g. xcode9.3. This makes it easy to track progress against the current milestone.

Issues inside those files won't cause the bots to fail a build.

Unclassified files

Those files are not committed to git, they are produced locally (or on bots) based on the current code.

Anything that shows up in the unclassified requires immediate action, i.e. the bots will be angry and report a failure - so PR should not be merged.

Why ?

  • it means it's not something that happened before (0 xtro issue policy);

How to fix ?

  • If it's a short term issue, e.g. a new xcode beta, then the entries should be moved to the corresponding *.todo file;
  • If this is not something we can fix (e.g. requires a rdar) then the entry should be moved to the corresponding *.ignore file along with a comment why;

Note: When bumping xamarin-macios for Xcode betas and after reviewing the .unclassified files, you can run make unclassified2todo to move the info inside the .unclassified files into associated .todo files.

Existing issues can be ignored (already shipped).

Rules

Existing

Those should be good enough to be execute on the bots on each build. They must have zero (unreviewed) defect so the bots can detect any new breakage.

Work In Progress

E.g. rules might be too noisy and require refinement, either in code or in external files. Until they have zero defect they must be commented;

Ideas

Anything we do not check but for which data is available, e.g.

  • NullAllowed;
  • Enum member values;
  • Generic updates to existing API (need to find a way to avoid breaking changes first)

Notes

  • To develop you need to install ObjectiveSharpie. You can install the required version of ObjectiveSharpie by executing ./system-dependencies.sh --provision-sharpie in this repository's root directory.

  • You can use the gen-[platform] or gen-all target of the Makefile to generate C# code for all the API from the headers. You can then copy/paste from the (large) files to create the missing bindings;