xamarin-macios/tests/xtro-sharpie
Alex Soto 209f4f3709 [GameplayKit] Update from Xcode8 Beta 1 to Beta 6 (#689)
Runtime
- Added support for Vector2d, Vector3d and Vector4d SIMD types
- Added support for GKBox, GKQuad and GKTriangle SIMD types

GameplayKit
- Apple introduced GKQuadTreeNode and GKQuadTree in Xcode 7.1 and
  removed those types in a later Xcode (7.2?) but we kept them around.
  Now apple introduced again both types but renamed them to GKQuadtreeNode
  and GKQuadtree (lowercase t), this is a breaking change and since we do
  care about binary compat we are just changing the registration name and
  keeping the same managed name deprecating old methods and introducing
  the new ones.
- Added tests for new SIMD types
2016-08-30 15:32:46 -04:00
..
.gitignore [tests] Import 2016-05-26 15:06:52 +02:00
DesignatedInitializerCheck.cs [tests] Import 2016-05-26 15:06:52 +02:00
DllImportCheck.cs [XM] Fix xtro-sharpie issues (#620) 2016-08-17 20:11:05 -04:00
EnumCheck.cs [tests][xtro] Add CVOptionFlags == uint64_t to avoid a NIE processing macOS 10.12 headers (#288) 2016-06-27 17:18:30 -04:00
FieldCheck.cs [XM] Fix xtro-sharpie issues (#620) 2016-08-17 20:11:05 -04:00
Helpers.cs [tests] Update xtro data files to get more accurate results (#630) 2016-08-18 22:02:42 -04:00
Makefile [xtro-sharpie] Use default mono in Makefile (#407) 2016-07-15 13:52:40 -04:00
ObjCInterfaceCheck.cs [tests] Import 2016-05-26 15:06:52 +02:00
ObjCProtocolCheck.cs [tests] Import 2016-05-26 15:06:52 +02:00
Program.cs [tests] Import 2016-05-26 15:06:52 +02:00
README.md [tests] Import 2016-05-26 15:06:52 +02:00
Runner.cs [XM] Fix xtro-sharpie issues (#620) 2016-08-17 20:11:05 -04:00
SelectorCheck.cs [tests] Import 2016-05-26 15:06:52 +02:00
SharpieEntryPoint.cs [tests] Import 2016-05-26 15:06:52 +02:00
common.ignore [tests][xtro] Update data files (#705) 2016-08-29 22:06:14 -04:00
common.pending [GameplayKit] Update from Xcode8 Beta 1 to Beta 6 (#689) 2016-08-30 15:32:46 -04:00
ios.ignore [tests][xtro] Update data files (#705) 2016-08-29 22:06:14 -04:00
ios.pending [messageui] Review (and add test) the enum breaking change from Apple. Fixes #42682 (#710) 2016-08-30 14:26:49 -04:00
osx.ignore [XM] Fix xtro-sharpie issues (#620) 2016-08-17 20:11:05 -04:00
osx.pending [XM] More xtro-sharpie fixes (#682) 2016-08-26 12:32:45 -05:00
packages.config [tests] Import 2016-05-26 15:06:52 +02:00
tvos.ignore [tests][xtro] Update data files 2016-08-28 12:18:18 -04:00
tvos.pending [tests][xtro] Update data files (#705) 2016-08-29 22:06:14 -04:00
watchos.ignore [watchos][avfoundation] Enable AVFoundation in watchOS (#659) 2016-08-25 11:39:48 -04:00
watchos.pending [tests][xtro] Update data files (#705) 2016-08-29 22:06:14 -04:00
xtro-plugin.csproj [tests] Import 2016-05-26 15:06:52 +02:00
xtro-sharpie.csproj [tests] Import 2016-05-26 15:06:52 +02:00
xtro-sharpie.sln [tests] Import 2016-05-26 15:06:52 +02:00

README.md

Extrospection Tests based on ObjectiveSharpie

Goals

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

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. known-issues, 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;

Rules

Existing

Those should be good enough to be execute on the bots on each build.

1) classify: takes the output from either 'sharpie' or 'all' (ios.results and osx.results files) classifies them in [ios|osx|common].[ignore|pending|unclassified] files
	NOTE: 	to add an entry to the ignore and pending files, just copy the entire line from the unclassified file into them and add your own comments 
		(why we are not binding/fixing that? who is going to bind this? etc) 

Work In Progress

E.g. rules might be too noisy and require refinement, either in code or in external files.

Ideas

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

Notes

  • To develop you need a checkout of ObjectiveSharpie

  • clang is only built for 64bits so you need a 64bits mono to execute the tool. That might change to reuse Sharpie own runtime once it's installed on every bots;

  • To be able to use XS to build/debug you need to set your runtime to a mono that was compiled with 64bits support. The currenylu shipping Mono version (4.0) does not ship with a 64bits runtime for OSX;