209f4f3709
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 |
||
---|---|---|
.. | ||
Mac | ||
iOS | ||
ApiBaseTest.cs | ||
ApiCMAttachmentTest.cs | ||
ApiClassPtrTest.cs | ||
ApiCoreImageFiltersTest.cs | ||
ApiCtorInitTest.cs | ||
ApiFieldTest.cs | ||
ApiPInvokeTest.cs | ||
ApiProtocolTest.cs | ||
ApiSelectorTest.cs | ||
ApiSignatureTest.cs | ||
ApiStructTest.cs | ||
ApiTypoTest.cs | ||
ApiWeakPropertyTest.cs | ||
CoreSelectorTest.cs | ||
EnvironmentVariable.cs | ||
README.md | ||
xamarin1.png |
README.md
Introspection Tests
Introspection tests are executed on target (both simulator and device for iOS) or a specific version of OSX. The application proceed to analyze itself using:
System.Reflection
for managed code; and- the ObjectiveC runtime library for native code
and compare the results. E.g. if using .NET reflection it can see a binding
for a NSBundle
type then it should be able to find a native NSBundle
type using the ObjC runtime functions. Otherwise an error is raised...
Since the application analyze itself it must contains everything we wish to test. That's why the introspection tests needs to be built with the managed linker disable, i.e. "Don't link".
Pros
- The tests always tell the truth, which can differ from documentation or header files;
Cons
- Incomplete - Not everything is encoded in the metadata / executable;
- Too complete - Not every truth is good to be known (or published), which requires creating special cases in the tests