Граф коммитов

1627 Коммитов

Автор SHA1 Сообщение Дата
Vincent Dondain 4da8016db4
[xtro] Report missing-protocol-conformance when protocols are defined… (#3187)
- Fixes bug #59272: [xtro] Report !missing-protocol-conformance! when protocols are defined in categories
(https://bugzilla.xamarin.com/show_bug.cgi?id=59272)
- Implemented missing protocol conformances based on tool's new data.
- Remove Internal check from VisitObjCCategoryDecl and VisitObjCInterfaceDecl
- Ignore previewItemTitle failure (normal since it's optional)
- Only skip UIStateRestoring for subclasses of UIViewController
- Ignore UIStateRestoring test on watchOS (UIViewController not available)
- Remove protocol conformances that generated wrong availability attributes (https://github.com/xamarin/xamarin-macios/issues/3213)
- Avoid new virtual or virtual when adding protocol conformance (https://github.com/xamarin/xamarin-macios/issues/3217)
2018-01-18 13:41:09 -05:00
Rolf Bjarne Kvinge 75e851fdda
[install-source] Add console runner from Nuget and fix xharness to restore nugets before attempting to build. (#3251)
xharness needs a solution in order to ask for a nuget restore, so make sure to
provide the path to the solution.

This fixes a build issue where the install source tests would fail to build
due to picking up the system's nunit.framework.dll because the nuget one
wasn't found/restored:

    MonoPathManglerTest.cs(8,3): error CS0619: 'TestFixtureAttribute' is obsolete: 'The NUnit framework shipped with Mono is deprecated and will be removed in a future release. It was based on NUnit 2.4 which is long outdated. Please move to the NUnit NuGet package or some other form of acquiring NUnit.'
    XamarinSourcesPathManglerTest.cs(8,3): error CS0619: 'TestFixtureAttribute' is obsolete: 'The NUnit framework shipped with Mono is deprecated and will be removed in a future release. It was based on NUnit 2.4 which is long outdated. Please move to the NUnit NuGet package or some other form of acquiring NUnit.'
    OpenTKManglerTest.cs(8,3): error CS0619: 'TestFixtureAttribute' is obsolete: 'The NUnit framework shipped with Mono is deprecated and will be removed in a future release. It was based on NUnit 2.4 which is long outdated. Please move to the NUnit NuGet package or some other form of acquiring NUnit.'
    PathManclerFactoryTests.cs(8,3): error CS0619: 'TestFixtureAttribute' is obsolete: 'The NUnit framework shipped with Mono is deprecated and will be removed in a future release. It was based on NUnit 2.4 which is long outdated. Please move to the NUnit NuGet package or some other form of acquiring NUnit.'
    OpenTKManglerTest.cs(29,4): error CS0616: 'TestCase' is not an attribute class
    OpenTKManglerTest.cs(30,4): error CS0616: 'TestCase' is not an attribute class
    MonoPathManglerTest.cs(29,4): error CS0616: 'TestCase' is not an attribute class
    MonoPathManglerTest.cs(30,4): error CS0616: 'TestCase' is not an attribute class
    MonoPathManglerTest.cs(31,4): error CS0616: 'TestCase' is not an attribute class
    XamarinSourcesPathManglerTest.cs(33,4): error CS0616: 'TestCase' is not an attribute class
    XamarinSourcesPathManglerTest.cs(35,4): error CS0616: 'TestCase' is not an attribute class
    XamarinSourcesPathManglerTest.cs(37,4): error CS0616: 'TestCase' is not an attribute class
    OpenTKManglerTest.cs(36,4): error CS0616: 'TestCase' is not an attribute class
    OpenTKManglerTest.cs(37,4): error CS0616: 'TestCase' is not an attribute class
    MonoPathManglerTest.cs(37,4): error CS0616: 'TestCase' is not an attribute class
    MonoPathManglerTest.cs(38,4): error CS0616: 'TestCase' is not an attribute class
    MonoPathManglerTest.cs(39,4): error CS0616: 'TestCase' is not an attribute class
    XamarinSourcesPathManglerTest.cs(47,4): error CS0616: 'TestCase' is not an attribute class
2018-01-18 16:58:56 +01:00
Rolf Bjarne Kvinge eefdd17e15
[xharness] Fix Makefile generation of grouped targets with spaces. (#3250)
These targets will already be properly escaped (using backslash), so adding
quotes will cause make to treat the backslashes literally (and break).

Fixes an issue with package-tests:

    $ make package-tests
    [...]
    build-mac-classic-dont\ link failed
    build-mac-unified-dont\ link failed
    build-mac-unifiedXM45-dont\ link failed
    build-mac-unified32-dont\ link failed
    build-mac-unifiedXM4532-dont\ link failed
    build-mac-unified-link\ all failed
    build-mac-unified-link\ sdk failed
    make[4]: *** [build-mac] Error 1
    make[3]: *** [mac-test-package.zip] Error 2
    make[2]: *** [package-tests] Error 2
2018-01-18 09:08:20 +01:00
Rolf Bjarne Kvinge 034ce91212
[xharness] Add project configuration to run Jenkins-style tests. (#3249) 2018-01-18 07:16:24 +01:00
Rolf Bjarne Kvinge dee0fd984a
[xharness] Run monotouch-test both with and without the static registrar in the simulator. (#3236)
* [xharness] Run monotouch-test both with and without the static registrar in the simulator.

This way we catch (some) problems with the static registrar without having to run on device.

* [xharness] Add comments to explain extra test configurations.

* [xharness] Fix how projects are cloned.

Fix how projects are cloned so that xharness doesn't end up confused when
multiple test tasks share the same build task.

Previously xharness would iterate over all test tasks and modifying their
build tasks, now it will create the build tasks correctly in the first place.
2018-01-18 07:14:07 +01:00
Rolf Bjarne Kvinge 580ad2b826
[ImageKit] Fix a few protocols to be informal. (#3235)
* [ImageKit] Fix a few protocols to be informal.

Both of these protocols have been informal (categories) since their
introduction in macOS 10.5 (and they've not been made real protocols either).

    $ git grep interface.*IKImageBrowserDataSource
    MacOSX10.5.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserDataSource)
    MacOSX10.6.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserDataSource)
    MacOSX10.7.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserDataSource)
    MacOSX10.8.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserDataSource)
    MacOSX10.9.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserDataSource)
    MacOSX10.10.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserDataSource)
    MacOSX10.11.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserDataSource)
    MacOSX10.12.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserDataSource)
    MacOSX10.13.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserDataSource)

    $ git grep interface.*IKImageBrowserItem
    MacOSX10.5.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserItem)
    MacOSX10.6.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserItem)
    MacOSX10.7.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserItem)
    MacOSX10.8.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserItem)
    MacOSX10.9.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserItem)
    MacOSX10.10.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserItem)
    MacOSX10.11.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserItem)
    MacOSX10.12.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserItem)
    MacOSX10.13.sdk/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKImageBrowserView.h:@interface NSObject (IKImageBrowserItem)

* [xtro] Update ignored data.
2018-01-16 23:32:37 +01:00
Rolf Bjarne Kvinge b699a0b29c
[tests] Create 'link all' and 'link sdk' tests for XM. (#3234)
* [tests] Add 'link all' test for XM.

* [tests] Add 'link sdk' test for XM.

* [tests] Move dontlink-mac tests to linker-mac directory to have the same directory layout as linker-ios.
2018-01-16 19:15:59 +01:00
Sebastien Pouliot 761a382f01
[macos][mediatoolbox] Add a macOS specific API for XM (#3220)
- added unit test (not much to test)
- xtro data updated
2018-01-16 08:42:11 -05:00
Alex Soto 76dcf100b3 [generator] Support [Async] inside categories, fixes bugzilla #57531 (#3229)
https://bugzilla.xamarin.com/show_bug.cgi?id=57531

Adds support for [Async] inside categories.
2018-01-16 08:41:25 -05:00
Sebastien Pouliot d1d4446060
[CoreGraphics] Fix issue with the MakeMutable in CGPath where ref count was leaking. (#3228) (#3231) 2018-01-16 08:40:40 -05:00
Manuel de la Pena a52748277d [CoreGraphics] Fix issue with the MakeMutable in CGPath where ref count was leaking. (#3228) 2018-01-15 16:35:05 -05:00
Rolf Bjarne Kvinge 7079a0581f
[tests] Disable some old-style tests on wrench, long live the new-style tests. (#3226)
These were accidentally not disabled when we started running tests on Wrench
like we do on Jenkins.

So disable them, to avoid duplicate work on Wrench.
2018-01-15 18:53:52 +01:00
Sebastien Pouliot 1c3c899933
[foundation] Reduce duplication inside NSData.FromString methods (#3221)
and ensure the temporary `NSString` instance is disposed asap.

Found will debugging something else. Unit tests added to confirm there
is no behavior change when the API are used.
2018-01-15 09:08:17 -05:00
Sebastien Pouliot 3a851e2a63
[mtouch][mmp] Report invalid debug symbols files. Fixes #3200 (#3203)
* [mtouch][mmp] Report invalid debug symbols files. Fixes #3200

Try to read the assembly with symbols and, if that fails, warn and
fallback to loading them without symbols.

This fixes cases were it's not easy to update or delete (e.g. nuget)
bad symbols files - so this cannot be an error without causing a lot
of pain.

However it needs to be reported, otherwise it wont be fixed (by the
publisher) and it can limit the debugability of the application and
the usefulness of the stacktraces.

Finally merge most of the resolver's code between mtouch and mmp so
we don't have to fix such issue twice anymore.

note: this needs to be slightly updated once we get a version of cecil
that can give us a more precise error message.

Also bring Rolf's tests from
https://github.com/xamarin/xamarin-macios/pull/3079

reference:
https://github.com/xamarin/xamarin-macios/issues/3200
2018-01-12 17:39:38 -05:00
Sebastien Pouliot 3a6d87940a
[coreanimation] Add [Protocol] to CAAnimationDelegate (#3204)
This now formal `CAAnimationDelegate` protocol had to be reverted [1]
because we did not support `FormalSince` at the time - and this broke the
static registrar when used with older SDK. Support was added in [2] but
did not include `CAAnimationDelegate` (but `CALayerDelegate` was fixed).

Because this was not a protocol the `Delegate` property expose it as a
`CAAnimationDelegate`, the concrete/model type, and not an interface.

The workaround so `ICAAnimationDelegate` can be used, thru the
`WeakDelegate`, requires to manually re-bind some API because the
generator won't allow this anymore (it's bad to expose a [Model]
when a [Protocol] exists).

xtro data updated

[1] https://github.com/xamarin/xamarin-macios/pull/698
[2] https://github.com/xamarin/xamarin-macios/pull/2130
2018-01-12 13:56:00 -05:00
Rolf Bjarne Kvinge d059dfce56
[xharness] Run mtouch and mmp tests when there are MSBuild changes. (#3209)
In particular the mmp tests build a lot of project files, which means they can
find issues whenever something in the MSBuild logic changes, so run them.

They would have caught https://github.com/xamarin/maccore/issues/612 for instance.
2018-01-12 17:05:54 +01:00
Rolf Bjarne Kvinge 8c4a6ce1f4
[xharness] Don't hardcode the project configuration in the generated Makefile. (#3208)
Fixes this:

    $ make run-mac-xammac_tests CONFIG=Release
    [... building release configuration ...]
    make[2]: xammac_tests/bin/x86/Debug/xammac_tests.app/Contents/MacOS/xammac_tests: No such file or directory
    make[2]: *** [exec-mac-unified-xammac_tests] Error 1
    make[1]: *** [run-mac-unified-xammac_tests] Error 2
    run-mac-unified-xammac_tests failed
2018-01-12 17:05:40 +01:00
Alex Soto 879a61faa7
[SceneKit] Add AddAnimation overload that takes a SCNAnimation (#3192)
Fixes xamarin/xamarin-macios#3166

Apple broke `addAnimation:forKey:` API by changing `CAAnimation` parameter into a
`ISCNAnimationProtocol` that was introduced in Xcode 9 (iOS 11 and company).

We can't break the existing API but we can add an extension method that
reuses the `CAAnimation` overload but takes a `SCNAnimation` and we
turn the `SCNAnimation` into a `CAAnimation` behind the scenes.

For XAMCORE_4_0 we corrected the protocol signature to take `ISCNAnimationProtocol` so there won't be a need for the extension method anymore.
2018-01-12 09:11:46 -06:00
Sebastien Pouliot 07c24949c0
[tests][macos] Enable more tests to be executed on macOS (XM) (#3191)
Largely related to somewhat recent frameworks/API additions to XM

ExternalAccessory was added to macOS 10.13 (Xcode9) and can't be run before that (including on the jenkins sierra bots). Also enable that test on tvOS (which added support in Xcode8)
2018-01-10 20:58:49 -05:00
Sebastien Pouliot b3b967e985
[macos][gameplaykit] Add missing 'unapplyGameModelUpdate:' API for XM (#3190)
xtro data updated
2018-01-10 11:31:35 -05:00
Sebastien Pouliot f9ceb5c39d
[metalperformanceshaders] Fix MPSImageLanczosScale base class change (#3170)
Sadly this creates a breaking change since the `ScaleTransform`
property was re-introduced with an incorrect signature in the new
base class `MPSImageScale`

Unless someone has an idea how to avoid it (I don't see an option)
then we'll have to document it in the 15.7 release notes.

Also add missing _SetScaleTransform call and related unit tests
2018-01-09 12:03:18 -05:00
Sebastien Pouliot caa1e702a9
[macos][photos] Add some missing error codes and constants for XM (#3181)
xtro data updated
2018-01-09 09:17:42 -05:00
Jeffrey Stedfast 30ae7d3d32 [msbuild] Tweak the codesign logic for iOS Simulator builds (#3180)
Don't *always* codesign, especially for Xcode 8 which seems to break.

iOS Simulator builds should only be codesigned if they require
Entitlements (signified by RequireProvisionProfile).
2018-01-08 15:59:26 -05:00
Jeffrey Stedfast fc723647c7 [msbuild] Repack all iOS Task assemblies into Xamarin.iOS.Tasks.dll (#3179) 2018-01-08 15:57:58 -05:00
Jeffrey Stedfast cfdf59dce4 [msbuild] Tweak the codesign logic for iOS Simulator builds (#3114)
Don't *always* codesign, especially for iOS8 which seems to break.

iOS Simulator builds should only be codesigned if they require
Entitlements (signified by RequireProvisionProfile).
2018-01-08 14:32:00 -05:00
Jeffrey Stedfast 316948e5d0 [msbuild] Repack all iOS Task assemblies into Xamarin.iOS.Tasks.dll (#3168) 2018-01-08 14:29:52 -05:00
Sebastien Pouliot 8db4cee7f2
[tests][xtro] Don't generate empty (0 length) files (#3169)
Empty results/files are common when things goes well - but are just
noisy, never helpful.
2018-01-08 11:54:59 -05:00
Sebastien Pouliot 52d0483bfe
[foundation] Remove iOS 5.0.1 specific code from NSFileManager (#3167)
This was short-lived (changed in iOS 5.1) and it's now below our
minimum support (iOS 6)
2018-01-05 15:01:15 -05:00
Sebastien Pouliot 1a7f90aef3
[tests][xtro] Add annotations after auditing some unknowns for ExternalAccessory.framework (#3163) 2018-01-05 08:53:11 -05:00
Timothy Risi 6ff74c5854 [MMP][60534] MMP Should check that Deployment Target is not below min version (#3122)
Return a build error if Deployment Target is too low
Add an mmptest for the change
2018-01-04 15:19:44 -05:00
Sebastien Pouliot ec744533b9
[generator] Add support for [RequiresSuper] attribute. Fixes #58350 (#3147)
* Add new attribute;
* Add generator support (re-copy attribute);
* Add xtro rule to detect missing/extra [RequiresSuper] attributes;
* Add attributes to the required API;

The generated code changes (reversed) can be verified with
https://gist.github.com/spouliot/1c91d6ee7c084a06890e5f3f2a475001

Reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=58350
2018-01-04 11:48:00 -05:00
Sebastien Pouliot a9788a480b
[macos][corespotlight] Enable CoreSpotlight for XM (#3157)
First shown (incorrectly) in El Capitan headers it finally made it's way
in High Sierra!
2018-01-04 10:53:52 -05:00
Chris Hamons 4c5161a446
Create classic snapshot of bgen and update tests/scripts (#3153)
Previous PMCS removal changes froze XamMac.BindingAttributes.dll but not bgen.exe which causes interesting issues when we make changes there and run classic XM tests.

This can be seen here: #3147

This PR freezes bgen-classic in macios-binaries (which will need to be added to master and bumped before this goes in) and update various scripts/tests.
2018-01-03 15:41:49 -06:00
Sebastien Pouliot 09e346142e
[avfoundation] Add some missing API detected by xtro. Also fix #60924 (#3154)
https://bugzilla.xamarin.com/show_bug.cgi?id=60924
2018-01-03 15:09:38 -05:00
Sebastien Pouliot d2c7084f72
[macos][notificationcenter] Fix extraneous setter on NCWidgetProviding.WidgetAllowsEditing (#3150)
Before XAMCORE_4_0 the setter will throw an `NotImplementedException`
which is better, and more accurate, than a native exception.

Found by xtro. Data file updated.
2018-01-03 08:50:36 -05:00
Sebastien Pouliot 3df75b7baa
[macos][audiotoolbox] Enable some existing API for XM (#3149)
and this allows adding (missing) `AVAudioEngine.MusicSequence` for
AVFoundation.

Updated xtro files.
2018-01-02 21:53:12 -05:00
Sebastien Pouliot 07c81479e2
[tests][intro] Clean up old and some non-required availability attributes (#3141)
We normally frown on large scale _cosmetic_ changes, mostly because it breaks git's history (very useful) and makes merging branches harder and more error prone (very annoying).

However we require, right now, such changes to remove our old, mcs-based, pre-processor (pmcs) so it's a _good_ time to address the old, unneeded availability attributes - since most of them are re-written for our next milestone.

This won't change the final application size in most cases, as the linker removes them, but it will make the (unlinked) platform assemblies smaller. This means they will load faster (e.g. by mtouch, mmp, IDE, workbooks...) and will reduce the time/memory needed to reflect them.
2018-01-02 11:28:55 -05:00
Sebastien Pouliot 3ea8ad4041
[tests][xtro] Annotation update (#3143) 2018-01-02 08:18:32 -05:00
Sebastien Pouliot a69e161d59
[src] Properly annotate designated initializers in many frameworks (#3142)
Correspond to xtro `!missing-designated-initializer!` errors
2017-12-28 16:37:13 -05:00
Sebastien Pouliot dcf8b1110c
[social] Enable SLComposeServiceViewController on macOS and fix other xtro reported issues (#3132)
* SLComposeServiceViewController has [Mac] specific stuff but was
excluded under a (too large) `#if !MONOMAC`

* SLComposeSheetConfigurationItem::init is a designated initializer

* SLRequest::addMultipartData:withName:type: is macOS-only and missing

xtro results:
!missing-designated-initializer! SLComposeSheetConfigurationItem::init is missing an [DesignatedInitializer] attribute
!missing-selector! SLComposeServiceViewController::charactersRemaining not bound
!missing-selector! SLComposeServiceViewController::contentText not bound
!missing-selector! SLComposeServiceViewController::placeholder not bound
!missing-selector! SLComposeServiceViewController::setCharactersRemaining: not bound
!missing-selector! SLComposeServiceViewController::setPlaceholder: not bound
!missing-selector! SLComposeServiceViewController::textView not bound
!missing-selector! SLRequest::addMultipartData:withName:type: not bound
!missing-type! SLComposeServiceViewController not bound
2017-12-28 13:14:23 -05:00
Sebastien Pouliot 02042741db
[macos][photosui] Make PHLivePhotoView available on macOS (#3136)
* PHLivePhotoView only available on 64 bits

xtro results:
!missing-enum! PHLivePhotoViewContentMode not bound
!missing-enum! PHLivePhotoViewPlaybackStyle not bound
!missing-protocol! PHLivePhotoViewDelegate not bound
!missing-selector! PHLivePhotoView::audioVolume not bound
!missing-selector! PHLivePhotoView::contentMode not bound
!missing-selector! PHLivePhotoView::delegate not bound
!missing-selector! PHLivePhotoView::isMuted not bound
!missing-selector! PHLivePhotoView::livePhoto not bound
!missing-selector! PHLivePhotoView::livePhotoBadgeView not bound
!missing-selector! PHLivePhotoView::setAudioVolume: not bound
!missing-selector! PHLivePhotoView::setContentMode: not bound
!missing-selector! PHLivePhotoView::setDelegate: not bound
!missing-selector! PHLivePhotoView::setLivePhoto: not bound
!missing-selector! PHLivePhotoView::setMuted: not bound
!missing-selector! PHLivePhotoView::startPlaybackWithStyle: not bound
!missing-selector! PHLivePhotoView::stopPlaybackAnimated: not bound
!missing-type! PHLivePhotoView not bound

* [xtro] Sort earlier in EnumCheck so we don't have to duplicate checks (or get random failures)
2017-12-28 08:51:34 -05:00
Sebastien Pouliot 9c375c614a
[xtro] Don't assume a nested type when no namespace is available (#3133)
That fix a NRE while running xtro

12:55:31.4682580 System.NullReferenceException: Object reference not set to an instance of an object
12:55:31.4682960   at Extrospection.Helpers.GetFramework (Mono.Cecil.TypeReference type) [0x00012] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xtro-sharpie/Helpers.cs:284
12:55:31.4683110   at Extrospection.EnumCheck.VisitManagedType (Mono.Cecil.TypeDefinition type) [0x0006c] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xtro-sharpie/EnumCheck.cs:28
12:55:31.4683210   at Extrospection.AssemblyReader.ProcessType (Extrospection.BaseVisitor v, Mono.Cecil.TypeDefinition type) [0x00001] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xtro-sharpie/Runner.cs:78
12:55:31.4683320   at Extrospection.AssemblyReader.Load (System.String filename) [0x00079] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xtro-sharpie/Runner.cs:71
12:55:31.4684210   at Extrospection.Runner.Execute (System.String pchFile, System.Collections.Generic.IEnumerable`1[T] assemblyNames) [0x000f2] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xtro-sharpie/Runner.cs:41
12:55:31.4684400   at Extrospection.MainClass.Main (System.String[] args) [0x00046] in /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xtro-sharpie/Program.cs:20

https://jenkins.mono-project.com/job/xamarin-macios-pr-builder/5845/Test_Report/

Short story: PR #3096 adds **non public** attributes without a namespace
so they take precedence over existing ones.

xtro enum check also needed to discard them.
2017-12-22 15:40:19 -05:00
Chris Hamons 734850d416
Remove PMCS processing of availability attributes (#3096)
- XamarinPreprocessorVisitor handled processing/generating availability
  attributes but needs to be removed as it depends on PMCS
- Because processing was handled at a preprocessor/token level before and
  now inside generator.cs a number of changes were needed avoid checking
  in a million line diff (literally)
- This commit creates a "shadow" set of availability attributes, with
  the desired names [Mac] [Watch] [NoTV], etc when not in existence before
- Instead of adding hundreds of using statements to force resolution of these
  shadow types, I abuse C# type resolution by storing them in the root
  (not namespaced) so they are resolved first.
- generator-attributes-manager was taught how to process the multitude of
  old-style attributes and how to generate the new-style attributes
- Generator's bug57070 is no longer valid, since we _can_ and do convert [iOS]
2017-12-22 13:03:21 -06:00
Sebastien Pouliot 82e38cd165
[mtouch] Fix Xamarin.Sdk not to link with private frameworks. Fixes #61039 (#3118) (#3130)
We can't trust Apple's native linker to pick the right (non private)
framework when an older TargetVersion is used. It just prefer what's
available - even if specified with a WeakFramework :(

That was already dealt with for applications. However the native linking
of the Xamarin.Sdk.framework (code sharing with extensions) is done with
the `LinkTask` instead of the `NativeLinkTask` so it did not have the
"auto correct" code.

Unit test added.

reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=61039
2017-12-22 13:11:25 -05:00
Sebastien Pouliot 3d58e360e5
[xtro] Fix macOS Intent sanity warning (#3131)
PR3119 was done (and tested on bots) before PR3120 that checked for
such mistakes. They were committed in the reverse order too
2017-12-22 13:08:43 -05:00
Timothy Risi 6ad9014c9f [Xammac_tests] RoundtripRSAMinPKCS1 public/GetPublicKey should be false on 10.13 (#3116) 2017-12-22 10:29:59 -05:00
Sebastien Pouliot 4509e66168
[mtouch] Fix Xamarin.Sdk not to link with private frameworks. Fixes #61039 (#3118)
We can't trust Apple's native linker to pick the right (non private)
framework when an older TargetVersion is used. It just prefer what's
available - even if specified with a WeakFramework :(

That was already dealt with for applications. However the native linking
of the Xamarin.Sdk.framework (code sharing with extensions) is done with
the `LinkTask` instead of the `NativeLinkTask` so it did not have the
"auto correct" code.

Unit test added.

reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=61039
2017-12-22 10:28:29 -05:00
Sebastien Pouliot 76ea46e347
[tests][xtro] Migration of annotation (WIP) (#3119) 2017-12-22 09:29:37 -05:00
Sebastien Pouliot 81381c3ee6
[watchos][accelerate] Enable Accelerate framework on watchOS (#3127)
According to documentation this was added in watchOS 4.0

xtro reported:
!missing-pinvoke! vImageBoxConvolve_ARGB8888 is not bound
!missing-pinvoke! vImageBoxConvolve_Planar8 is not bound
!missing-pinvoke! vImageConvolve_ARGB8888 is not bound
!missing-pinvoke! vImageConvolve_ARGBFFFF is not bound
!missing-pinvoke! vImageConvolve_Planar8 is not bound
!missing-pinvoke! vImageConvolve_PlanarF is not bound
!missing-pinvoke! vImageConvolveMultiKernel_ARGB8888 is not bound
!missing-pinvoke! vImageConvolveMultiKernel_ARGBFFFF is not bound
!missing-pinvoke! vImageConvolveWithBias_ARGB8888 is not bound
!missing-pinvoke! vImageConvolveWithBias_ARGBFFFF is not bound
!missing-pinvoke! vImageConvolveWithBias_Planar8 is not bound
!missing-pinvoke! vImageConvolveWithBias_PlanarF is not bound
!missing-pinvoke! vImageMatrixMultiply_ARGB8888 is not bound
!missing-pinvoke! vImageRichardsonLucyDeConvolve_ARGB8888 is not bound
!missing-pinvoke! vImageRichardsonLucyDeConvolve_ARGBFFFF is not bound
!missing-pinvoke! vImageRichardsonLucyDeConvolve_Planar8 is not bound
!missing-pinvoke! vImageRichardsonLucyDeConvolve_PlanarF is not bound
!missing-pinvoke! vImageTentConvolve_ARGB8888 is not bound
!missing-pinvoke! vImageTentConvolve_Planar8 is not bound
2017-12-22 09:09:39 -05:00
Sebastien Pouliot b546a20256
[src] Use a single, shared declaration for the 'close' p/invoke (#3126)
Beside eliminating a bit of code duplication this solve the random
(metadata order) xtro report

> ?unknown-entry? !unknown-pinvoke! close bound in 'macOS-ObjCRuntime.ignore'

because it was reported against two namespaces and we don't check
for duplicate p/invokes (largely because there's tons of them in
OpenTK)

Fixes https://github.com/xamarin/maccore/issues/602
2017-12-21 15:18:06 -05:00
Sebastien Pouliot ae061822ac
[tests][xtro] Warn if entries in *.todo files seems fixed (not in corresponding .raw files) (#3120) 2017-12-21 13:10:34 -05:00
Sebastien Pouliot 48530bcd8d
[tests][security] Update TrustTest to run faster (without timeouts) (#3108)
The original test was to cover both X509Certificate and X509Certiicate2
when using with SecTrust. However the code diverged over time. That and
the different certificates used caused the `*2` tests to hit a time
loop (designed to reduce incorrect errors randomly reported).

We want to keep the "delay" logic for it's intended purpose - but it
should not be needed normally.

The tests have been refactored to reuse the same logic (between both
types of certificates) which solve this (when used with the same
certificates)

Replace https://github.com/xamarin/xamarin-macios/pull/3068
2017-12-18 11:14:31 -05:00
Sebastien Pouliot fffaba2414
[xtro] Add sanity tests to keep the entries up to date (avoid invalid, dupes and out of date entries) (#3110) 2017-12-18 10:49:07 -05:00
Alex Soto f8d7c54a0f [generator] Disallow the use of [Async] when the signature contains ref/out parameters, fixes bug 58792. (#3059)
When a method signature contains any ref/out parameters
it is a hint that this method is not a candidate to be
used with [Async] we now error BI1062 in the generator.

The reason of an error instead of a warning is that we
currently generate not compilable code when ref/out is
used on the method signature or in the signature of the
delegate (completion handler), it is very unlikely we are
breaking someone now that we emit an error instead of broken
code.

* Fix Anchor and Clarify the addition of BI1117 Warning into docs/website/generator-errors.md

BI1117 Warning documentation was missing from docs/website/generator-errors.md
so I added it.
2017-12-18 09:21:23 -05:00
Sebastien Pouliot 8d854a0f3d
[xtro] Split results by framework and add an HTML report (#3093)
* Not every old annotations have been migrated (work in progress, to be completed in another PR);

* Sanitation of the data files (e.g. removal of dupes and fixed, by Apple, entries) is done, but not automated (also a work in progress)

Even then this is immediately useful, i.e. better merged before 15.6 gets branched.
2017-12-15 14:08:09 -05:00
Manuel de la Pena cb688be5c4
[CoreAnimation] Ensure that we increase the handle refenrece count in MakeMutable. Fixes #3089 (#3099)
* [CoreAnimation] Ensure that we increate the handle referene in MakeMutable. Fixes 3089

Fixes https://github.com/xamarin/xamarin-macios/issues/3089
2017-12-15 16:13:42 +01:00
Vincent Dondain 8899158260
[arkit] Fix 'Vertices', 'TextureCoordinates' and 'TriangleIndices' in 'ARFaceGeometry' (#3090)
- Fixes bug #61056: [ARKit] TriangleIndices, Vertices and TextureCoordinates should be respectively short [], Vector3 [] and Vector2 []
(https://bugzilla.xamarin.com/show_bug.cgi?id=61056)
- Obsolete `short TriangleIndices`.
- Obsolete `Vector3 Vertices`.
- Obsolete `Vector2 TextureCoordinates`.
- Introduced new `short [] GetTriangleIndices ()`.
- Introduced new `Vector3 [] GetVertices ()`.
- Introduced new `Vector2 [] GetTextureCoordinates ()`.
2017-12-12 12:33:48 -05:00
Vincent Dondain 18378d752e Fix merge mistake in monotouch-test.csproj 2017-12-06 15:18:11 -05:00
Vincent Dondain d7b7a6ea02 Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
Manuel de la Pena 8ed3f85c07
[Debugger] Allow to step into Xamarin code. (#1663)
* [Debugger] Allow to step into Xamarin code.

The tool now detects the different sources and mangles the path to
ensure that the correct paths are installed in the following location:

/Library/Frameworks/Xamarin.iOS/Versions/Current/src
/Library/Frameworks/Xamarin.Mac/Versions/Current/src

The tool will detect if the path map command was used in the mdb and pub files, will point to the correct source code and will copy it to the installation dir. 

Tests have been added that will be ran both by wrench and jenkins ensuring that changes in the manglers do not change it behaviour.
2017-12-05 14:13:59 +01:00
Chris Hamons 4c966e3e71 Fix macOS 10.13 test failures (#3066) 2017-12-03 19:45:28 -05:00
Rolf Bjarne Kvinge 9a5d952678
[xtro] Fix broken build with Mono.Cecil 0.9.6.4. (#3076)
Facts:

* xtro-sharpie references Mono.Cecil 0.9.6 from a nuget.
* If a local Mono.Cecil.dll can't be found (according to the HintPath in the
  csproj, which points to the nuget), then msbuild will look in the system
  Mono.
* Mono 5.8 ships Mono.Cecil 0.10.
* Mono.Cecil 0.10 is not source compatible with 0.9.6 (there's a small issue
  with interfaces).
* xtro-sharpie's source code works with v0.10.

This all means that xtro-sharpie will build fine as long as the 0.9.6 nuget
has *not* been restored. This can manifest itself confusingly ("msbuild xtro-
sharpie.sln" works fine from the command line, open the solution in VSfM and
it doesn't build anymore, not even from the command line, because VSfM
automatically restored nugets in the background).

Update the source code to work with Mono.Cecil 0.9.6 because there's no 0.10
nuget yet (yet keeping the code for v0.10 clearly marked as such for future
updates to v0.10).

Also bump from 0.9.6.1 to 0.9.6.4 since that's the latest available.
2017-12-01 19:31:46 +01:00
Rolf Bjarne Kvinge 113e518d9d
[monotouch-test] Update permission checks. (#3071)
Apparently iOS 11 shows system dialogs for more API, so sprinkle permission
checks in more places.
2017-12-01 17:46:47 +01:00
Manuel de la Pena 6135a6c4d8
[MSBuild] Do not set CFBundleDevelopmentRegion if not present. (#2779)
* [MSBuild] Do not set CFBundleDevelopmentRegion if not present.

This is a complicated fix. This is a regression introduced by Apple.
CFLocaleCopyCurrent(), used in the iOS code, will return the value of
the application's CFBundleDevelopmentRegion Info.plist key if all of the
following conditions are true:

* CFBundleDevelopmentRegion is present in the Info.plist
* The CFBundleDevelopmentRegion language is in the list of preferred
languages on the iOS device, but isn't the first one
* There are no localized resources (i.e. no .lproj directory) in the app
for the first preferred locale

This differs from iOS 10 where the presence of the
CFBundleDevelopmentRegion key had no effect.

Note that if the CFBundleDevelopmentRegion key is not present at all,
CFLocaleCopyCurrent() always returns the first preferred locale as it
did in iOS 10.

We are adding the key by default in the plist of the applications which confuses users since they do not see the key in the .plist added by the template. This commit removes it to be more explicit and help users understand the behaviour.
2017-12-01 16:52:25 +01:00
Rolf Bjarne Kvinge dd95d17b5f
[generator] Properly set the IsDirectBinding value. (#3063)
* [generator] Properly set the IsDirectBinding value.

Properly set the IsDirectBinding value to false for models and synthetic types.

This also means we can now stop excluding models when testing if the
IsDirectBinding value is correct.

Also set IsDirectBinding value to true for sealed wrapper types, since those
will always be direct bindings since they can't be subclassed.

https://gist.github.com/rolfbjarne/24028bf944db848fed4083c460d0ec71

* [tests] Add introspection exclusion for XM.

* [introspection] Add back exclusions for Classic, since we can't modify/fix Classic assemblies anymore.

* [generator] Print the correct protocol name with the protocol attribute.

Fixes this test failure:

    [FAIL] Foundation.NSUrlDownloadDelegate : ConformsToProtocol(null) failed

because our binding code claimed that our `NSUrlDownloadDelegate` class
implemented the `NSUrlDownloadDelegate` protocol, but since the
`NSUrlDownloadDelegate` protocol doesn't exist (it's `NSURLDownloadDelegate` -
different case), we'd verify against a null protocol (and return true from
`ConformsToProtocol(null)`, which would fail the test).

* [xtro] Only treat interfaces as protocols.

Unfortunately we add [Protocol] to [Model]s as well as on interfaces, but we
must not process those in xtro, since they don't correspond with the actual protocol.
2017-12-01 15:18:20 +01:00
Rolf Bjarne Kvinge 616c0638be
[xtro] Update csproj to Xcode 9.1 (#3075) 2017-12-01 15:05:09 +01:00
Chris Hamons b87b3ba878
Fix test failures on 10.13 (#3065) (#3072) 2017-12-01 06:40:56 -06:00
Chris Hamons 31742eb3fb
Fix test failures on 10.13 (#3065) 2017-11-30 12:55:58 -06:00
Rolf Bjarne Kvinge 10c5bc10a9
[monotouch-test] Update permission checks. (#3067)
Apparently iOS 11 shows system dialogs for more API, so sprinkle permission
checks in more places.
2017-11-30 17:54:02 +01:00
Sebastien Pouliot 2bfbc8a834
[tests] Fix mac-apitest on High-Sierra (#3064)
MetalPerformanceShadersLibrary is new in macOS 10.13 and only available
for 64bits.

from https://wrench.internalx.com/Wrench/WebServices/Download.aspx?workfile_id=19778531

    Tests run: 248, Passed: 238, Errors: 0, Failures: 1, Inconclusive: 0
      Not run: 9, Invalid: 0, Ignored: 9, Skipped: 0
    Elapsed time: 00:00:11.3800000

    Errors and Failures:

    1) ExpectedLibrariesAreLoaded (Xamarin.Mac.Tests.EveryFrameworkSmokeTests.ExpectedLibrariesAreLoaded)
       MetalPerformanceShadersLibrary (/System/Library/Frameworks/MetalPerformanceShaders.framework/MetalPerformanceShaders) failed to load but this was not expected
      at Xamarin.Mac.Tests.EveryFrameworkSmokeTests.ExpectedLibrariesAreLoaded () [0x000c5] in /Users/builder/data/lanes/5665/74d2dcad/source/xamarin-macios/tests/apitest/src/EveryFrameworkSmokeTest.cs:99
      at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
      at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in /Library/Frameworks/Xamarin.Mac.framework/Versions/4.1.1.45/src/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:305
2017-11-29 14:16:27 -05:00
Rolf Bjarne Kvinge 7fd2b67759
[xharness] Make it possible to select from the command line whether tests requiring system permissions should be executed or not. (#3053) (#3062) 2017-11-29 15:57:15 +01:00
Jeffrey Stedfast 5645e3349a Revert "[msbuild] Repack all iOS Task assemblies into Xamarin.iOS.Tasks.dll (#3007)"
This reverts commit 2d4256ef15.
2017-11-29 09:22:22 -05:00
Sebastien Pouliot e4cbbda64f
[tests] Disable CoreText/FontDescriptorTest on tvOS. Fixes #58929 (#3061)
Since tvOS 11 there's not a single font, on that platform, that
has the ligatures that the test verified.

Test remains enabled for other platforms.

reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=58929
2017-11-29 09:10:25 -05:00
Alex Soto 74d2dcadfb
[tests] Fix introspection tests for macOS (#3054)
* [tests] Fix introspection tests for macOS

It seems that apple forgot to ship SSLSetALPNProtocols and SSLCopyALPNProtocols in macOS
there are already radars filled about this https://bugs.swift.org/browse/SR-6131
So this test will fail once Apple fixes this issue. when this happens we need to do two things, reenable
the API and reenable the [Get|Set]AlpnProtocols tests, the one insides 'StreamDefaults' for the mac.

* Implement feedback
2017-11-28 17:27:20 -06:00
Rolf Bjarne Kvinge f21f48b727 [tests] Enable xammac-tests on wrench. (#3056)
Wrench runs `wrench-mac-xammac_tests`, but since there were no such target,
make would execute the `wrench-%` target, which is disabled when iOS is
disabled.

Thus this strange behavior would be seen on wrench for xammac tests when iOS
is disabled:

    /Applications/Xcode92-beta2.app/Contents/Developer/usr/bin/make -C /Users/builder/data/lanes/5665/d2b1b757/source/xamarin-macios/tests wrench-mac-xammac_tests
    git clean -xfdq
    iOS tests have been disabled [wrench-mac-xammac_tests]

By creating the `wrench-mac-xammac_tests` target, we'll end up doing the right
thing instead.
2017-11-28 16:10:56 -05:00
Timothy Risi 87f9e23989 [MetalPerformanceShaders] Xcode 9 bindings (#3005)
* [MetalPerformanceShaders] Activate bindings for Xamarin.Mac and add n… (#2816)

* [MetalPerformaceShaders] Several MPSCnnKernel properties should be readonly (#2938)

The subclasses versions of the properties need Override, cannot be removed since it would break visibility for iOS 10

* Remove some [Model] attributes that sholdn't be needed

* Fix introspection test crashes

* More introspection fixes

* NN does not need to be PascalCased

Remove unneeded Models and BaseTypes

* PR Whitespace fixes and renamings

* Paste fail

* More fixes from PR comments

* [MPS] Adds new intro test, fixes ctors and xtro output

* Removes duplicated availability attributes.
* Removes obsoleted API from macOS since mps is new to it.
* Fixes xtro output.
* Adds missing API.
* Fixes parameterless ctors, some of them do not really work, found
  by our new intro test and disabled the one that seem to not make
  sense due to the presence of DesignatedInitializers.
* Fixes a selector typo.
* Adds new `ShouldNotExposeDefaultCtorTest` to intro.

ShouldNotExposeDefaultCtorTest
==============================

This test checks for types with a parameterless ctor that are subclasses
of `NSObject` and then cheks if the BaseType of said objects also expose
a parameterless ctor (all in .NET land), if this is not the case it reports
them and so they can manually audited. Also this test has the ability to
print alloc/init ObjC code by setting `genObjCTestCode` to `true` so you can
take this code into an Xcode project and easily tests the ctors.

It seems that xtro (sharpie) does not have a complete picture of when a ctor
must be exposed hence the hability to generate this code and manually test.

Right now this test is just enabled for MPS since it is the scope of this PR.
In the future it should be enabled for all other frameworks and the output be
manually audited.

* [MPS] Fixes premature collection possible in bindings (bug 59547) and implements feedback.

https://bugzilla.xamarin.com/show_bug.cgi?id=59547

* Fixes premature collection possible in bindings im MPSKernel.cs
* Fixes MPSImageHistogramTest from using deprecated API.
* Removes renamed selectors and typos from ApiSelectorTest and ApiTypoTest.

* [MPS] Reenable Copy API and DesignatedInitializer xtro feedback

* Implement more feedback

* More feedback
2017-11-28 14:29:05 -06:00
Rolf Bjarne Kvinge 79f193709b
[xharness] Make it possible to select from the command line whether tests requiring system permissions should be executed or not. (#3053) 2017-11-28 19:16:46 +01:00
Manuel de la Pena e6988ee48a
[Tests] Ensure that we do use the correct encoding. Fixes #582 (#3049) 2017-11-28 16:43:27 +01:00
Rolf Bjarne Kvinge f9b4c93cf0
[xharness] Improve logging. (#3051)
Make the collection of logs (the `Logs` class) more capable by making it
disposable (which will dispose all contained logs) and give it a Directory
property to state where the logs should be stored. This makes it possible to
simplify a few repeated path calculations. It also allows us to easily dispose
the entire collection of logs when done with a test, as opposed to dispoing
the logs one by one.

Make LogFile more capable:

* Add support for writing byte arrays.
* Add support for logging after disposal: this will still write to the file,
  and not keep any files open after finished writing. This fixes a problem
  where writing to a log after it was disposed would crash xharness (which is
  not all that uncommon, given the async nature of how xharness runs tests).

This makes it possible to get rid of LogStream, and use LogFile instead.
2017-11-28 14:27:31 +01:00
Rolf Bjarne Kvinge ea20f841f8
[tests] Make incremental uploads of the device testing results possible. (#3052) 2017-11-28 14:27:19 +01:00
Jeffrey Stedfast 2d4256ef15
[msbuild] Repack all iOS Task assemblies into Xamarin.iOS.Tasks.dll (#3007)
* [msbuild] Pack all iOS MSBuild Task assemblies into a single assembly

* Fixed the build

* Renamed ProcessArgumentBuilder to CommandLineArgumentBuilder

This is needed to prevent symbol conflicts with Xamarin.MacDev's
ProcessArgumentBuilder (which is functionally different from
Xamarin.MacDev.Tasks.Core's class of the same name).

* Fixed ILRepack logic for filtering dll's to repack

* Fixed building of Xamarin.iOS.Tasks.Tests now that X.iOS.Tasks.dll contains all symbols

* Updated Makefile now that only 1 iOS Task assembly needs to be distributed

* ILRepack Xamarin.Mac.Tasks as well

* Fixed up *.targets to specify The One Assembly To Rule Them All

* [xharness] Build MSBuild tests with MSBuild.

* Touch the ilrepack stamp file *after* invoking ILRepack, not before.

* Same for Xamarin.Mac.Tasks
2017-11-27 14:44:09 -05:00
Rolf Bjarne Kvinge bd3938f863
[xharness] Define XAMMAC for XM/Modern and XAMMAC_4_5 for XM/Full, just like we do when building the BCL. (#3034)
* [xharness] Define XAMMAC for XM/Modern and XAMMAC_4_5 for XM/Full, just like we do when building the BCL.

Fixes https://github.com/xamarin/maccore/issues/587, because the failing test ignores an assert when XAMMAC is defined: 1c4d741a02/mcs/class/corlib/Test/System/TimeZoneInfoTest.cs (L127-L130)

* Bump mono.

Commit list for mono/mono:

* mono/mono@c5cd0f1e7f [System][Test] Only Xamarin.iOS has a synchronization context by default.
* mono/mono@44bf3d084e [ci] Add Jenkins pipeline script for building OSX and Windows packages
* mono/mono@ceab9d932c [corlib] Disable test check which is timezone dependent
* mono/mono@104eeba2ea [tests] Adjust ifdefs to get the expected behavior for Xamarin.Mac/Modern tests. (#6088)
* mono/mono@f0f0ae1564 [tests] Adjust ifdefs to get the expected behavior for Xamarin.Mac's cryptography tests. (#6090)

Diff: 2b469fb836...c5cd0f1e7f
2017-11-27 17:05:22 +01:00
Rolf Bjarne Kvinge a802fe297b
[tests] Set LSUIElement in the mac tests' Info.plist so that they don't show an icon in the dock. (#3047) 2017-11-27 17:02:27 +01:00
Rolf Bjarne Kvinge 80ea066577
[xharness] Don't run the mmp regression tests in parallel with other tests. (#3046)
The mmp regression tests are already executed in parallel (using `make -j8` in
the Makefile), and they're quite CPU intensitive, which means that if xharness
runs other tests in addition to the these tests, then those other tests may
fail randomly.
2017-11-27 17:00:37 +01:00
Rolf Bjarne Kvinge 6aca49c97b
[xharness] Parse 'XML log' as NUnit result file as well. (#3045)
This makes xharness show mtouch/mmp test failures inline in the html report too.
2017-11-27 17:00:13 +01:00
Rolf Bjarne Kvinge 1880cd906e
[xharness] Run tests when something changes in tests/common. (#3044) 2017-11-27 16:59:35 +01:00
Manuel de la Pena 37d23049d9
[Tests] Ensure that System.Security tests do work on mac on Jenkins. (#3042) 2017-11-27 12:36:43 +01:00
Sebastien Pouliot 4ad96b03fa
[security] Add bindings for Xcode 9 (#3043)
Also covers the missing enum value (added in xcode9) from
https://bugzilla.xamarin.com/show_bug.cgi?id=59278
2017-11-26 09:53:04 -05:00
Manuel de la Pena 5a531bcf77
[Jenkins] Ensure that DTD loading without a connection does not result in errors. #582 (#3041) 2017-11-24 16:52:58 +01:00
Sebastien Pouliot f0915df335
[coreimage] Fix the pointer used in CIVector(nfloat[]) until the native call completes (#3038)
However there's a small window between the time we get a pointer
and the call to the native selector where the memory is not fixed.
During this time the GC can move the memory resulting in hard to
diagnose crashes.

Note: `initWithValues:count:` copies the provided memory so what
happens afterward is not an issue.
2017-11-24 09:55:11 -05:00
Rolf Bjarne Kvinge 29277e1ad2
[xharness] Don't keep files open when not needed anymore. (#3035)
Dispose logs (so that the corresponding files are closed) when we're done with
them, and also don't open a file log by default (usually we just want a
filename to pass to somebody else), but instead open the file if needed.

This should decrease the number of open file descriptors in xharness, which
sometimes become a problem when running many tests.
2017-11-24 07:38:17 +01:00
Rolf Bjarne Kvinge af389bda1f
[tests] Improve how test failures show up in the html report for Xamarin.Mac tests. (#3033)
* [tests] Add support for passing arguments to XM unit tests from the command line.

* [xharness] Get xml results for mac unit tests and parse it to show failures inline in the html report.
2017-11-23 19:16:02 +01:00
Rolf Bjarne Kvinge 13013a8466
[tests] Fix copying test files in System.IO.Compression[.FileSystem] tests. (#3032)
The app path depends on the assembly name, which mean we must take the
assembly name into account when calculating the app path where to copy
resource files for these two tests.

Fixes the following tests:

* System.IO.Compression

    * ZipDeleteEntryCheckEntries (MonoTests.System.IO.Compression.ZipArchiveTests.ZipDeleteEntryCheckEntries)
    * ZipEnumerateEntriesCreateMode (MonoTests.System.IO.Compression.ZipArchiveTests.ZipEnumerateEntriesCreateMode)
    * ZipEnumerateEntriesModifiedTime (MonoTests.System.IO.Compression.ZipArchiveTests.ZipEnumerateEntriesModifiedTime)
    * ZipEnumerateEntriesReadMode (MonoTests.System.IO.Compression.ZipArchiveTests.ZipEnumerateEntriesReadMode)
    * ZipEnumerateEntriesUpdateMode (MonoTests.System.IO.Compression.ZipArchiveTests.ZipEnumerateEntriesUpdateMode)
    * ZipGetArchiveEntryStreamLengthPositionReadMode (MonoTests.System.IO.Compression.ZipArchiveTests.ZipGetArchiveEntryStreamLengthPositionReadMode)
    * ZipGetArchiveEntryStreamLengthPositionUpdateMode (MonoTests.System.IO.Compression.ZipArchiveTests.ZipGetArchiveEntryStreamLengthPositionUpdateMode)
    * ZipGetEntryCreateMode (MonoTests.System.IO.Compression.ZipArchiveTests.ZipGetEntryCreateMode)
    * ZipGetEntryDeleteReadMode (MonoTests.System.IO.Compression.ZipArchiveTests.ZipGetEntryDeleteReadMode)
    * ZipGetEntryDeleteUpdateMode (MonoTests.System.IO.Compression.ZipArchiveTests.ZipGetEntryDeleteUpdateMode)
    * ZipGetEntryOpen (MonoTests.System.IO.Compression.ZipArchiveTests.ZipGetEntryOpen)
    * ZipGetEntryReadMode (MonoTests.System.IO.Compression.ZipArchiveTests.ZipGetEntryReadMode)
    * ZipGetEntryUpdateMode (MonoTests.System.IO.Compression.ZipArchiveTests.ZipGetEntryUpdateMode)
    * ZipOpenAndReopenEntry (MonoTests.System.IO.Compression.ZipArchiveTests.ZipOpenAndReopenEntry)
    * ZipOpenCloseAndReopenEntry (MonoTests.System.IO.Compression.ZipArchiveTests.ZipOpenCloseAndReopenEntry)
    * ZipReadNonSeekableStream (MonoTests.System.IO.Compression.ZipArchiveTests.ZipReadNonSeekableStream)
    * ZipWriteEntriesUpdateMode (MonoTests.System.IO.Compression.ZipArchiveTests.ZipWriteEntriesUpdateMode)
    * ZipWriteEntriesUpdateModeNonZeroPosition (MonoTests.System.IO.Compression.ZipArchiveTests.ZipWriteEntriesUpdateModeNonZeroPosition)
    * ZipWriteNonSeekableStream (MonoTests.System.IO.Compression.ZipArchiveTests.ZipWriteNonSeekableStream)

* System.IO.Compression.FileSystem

    * ZipCreateFromDirectory (MonoTests.System.IO.Compression.FileSystem.ZipArchiveTests.ZipCreateFromDirectory)
    * ZipCreateFromDirectoryIncludeBase (MonoTests.System.IO.Compression.FileSystem.ZipArchiveTests.ZipCreateFromDirectoryIncludeBase)
    * ZipCreateFromEntryChangeTimestamp (MonoTests.System.IO.Compression.FileSystem.ZipArchiveTests.ZipCreateFromEntryChangeTimestamp)
    * ZipExtractToDirectory (MonoTests.System.IO.Compression.FileSystem.ZipArchiveTests.ZipExtractToDirectory)
2017-11-23 17:17:13 +01:00
Sebastien Pouliot 03f9c4b9ca
[mtouch][mmp] Allow the use of major-only version numbers in arguments. Fixes #60280 (#3029)
The parsing done by `System.Version` does not accept a major-only string,
e.g. providing "11" would throw an exception.

Since people generally refer version as iOS 11 (and not iOS 11.0) this
is, at best, a nuisance. Xcode toolchain accept "11" as a valid string.

The first part of message was updated to show both the option name and
the (user provided) value.

The 2nd part remain the text of the .net exception message, i.e. what
`Version.Parse` tells you when it validates the string. Seeing the input
value should make it more obvious for other, incorrect version strings.

reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=60280
2017-11-23 11:16:30 -05:00
Rolf Bjarne Kvinge 1beff97cc0
[xharness] Bump timeout for mmp tests, since they can take longer when running in parallel with other tests. (#3031) 2017-11-23 16:40:57 +01:00
Manuel de la Pena c895771685
[XHarness] Add System.Security tests from the bcl. (#3013)
* [XHarness] Add System.Security tests from the bcl.
2017-11-23 12:29:49 +01:00
Rolf Bjarne Kvinge 3a28d950ab
[xharness] Report the exit code when thinking a test crashed. (#3028)
Usually an exit code of neither 0 nor 1 means a test run crashed (in
particular if the exit code is 130+), but this may not always be true, so
report the exit code as well so that a human can evaluate properly.
2017-11-23 07:29:46 +01:00
Timothy Risi da591eae51 [mac-introspection] Use en-US for ApiTypoTest, fix typo failures (#3018)
Also disables typo check for XM classic because:

`We have 823 typos!`

I'm not sure why but switching to the new API, which specify `en_US`,
seems to report more errors.

Unified API are already fixed and I don't see value in adding _ignore_
entries for classic (we don't add classic-only API anyway) so this
just makes then test built/executed for XAMCORE_2_0
2017-11-22 20:52:10 -05:00
Sebastien Pouliot 9b7c33e9ca
[photos] Fix incorrect SDPHLivePhotoFrameProcessingBlock. Fixes #58227 (#3011)
The correct signature is a `ref NSError`, the bound API was missing the
`ref` and this required adding support to the generator.

Generated code diff:
https://gist.github.com/spouliot/3cdc7f8a40fe67a962ed9fefc2411d60

Bug: https://bugzilla.xamarin.com/show_bug.cgi?id=58227
2017-11-22 14:42:20 -05:00
Rolf Bjarne Kvinge 83586f878d
[xharness] Make sure different flavors of XM tests don't build/run from the same path. (#3027)
Change [Intermediate]OutputPath of Xamarin.Mac test projects to include the
project flavor, so that they don't build into (and run from) the same location
(which leads to random and incorrect behavior for at least one of the
flavors).

Fixes https://github.com/xamarin/maccore/issues/584
2017-11-22 16:28:32 +01:00
Rolf Bjarne Kvinge 6d063afdb5
[tests] Run the tests on Wrench like we do on Jenkins. (#3026)
* [xharness] Add support for executing a command periodically.

This will be used to run 'rsync' on bots to upload the html report somewhere
while the tests are running.

* [tests] Disable all the wrench test targets, and instead run the jenkins target (only) on wrench.

* [xharness] Write xharness log to stdout as well on wrench.

Wrench has a 30-min stdout timeout: if nothing is printed in 30 minutes, then
the step fails. Printing the harness log to stdout makes us not hit this
timeout.

* [xharness] Timestamp a few more logs.

* [xharness] Disable the @MonkeyWrench calls, since we're not uploading directly to wrench anymore.
2017-11-22 16:03:36 +01:00
Sebastien Pouliot a2d9c80cb5
[homekit] Expose weakly-typed API since the constants are extensible. Fixed #60303 (#3025)
This is a case of NSString enum extensibility - even if this framework does not use the usual `NS_EXTENSIBLE_STRING_ENUM` macro (which is recent and have not been applied for all framework / headers).

Minimally we need to provide alternative, weakly typed, `NSString`-based API wherever the (extensible) enums types are used. Not the best API (even if we can minimize it's use with `[EditorBrowsable (EditorBrowsableState.Advanced)]`) but C# enums can't be extended this way.

Also, even if less urgent, we need to make the enum-generated helper aware of the extensibility so they do not throw, making it easier to mix strongly and weakly typed code (instead of choosing one over the other).

Taking the first step for `xcode92` with the enum-backed constants in HomeKit, i.e.
* HMAccessoryCategoryType
* HMCharacteristicType
* HMServiceType
* HMSignificantEvent

Reference
https://bugzilla.xamarin.com/show_bug.cgi?id=60303

* [tests] WeakSignificantEvent is a weakly typed alternative (not a weak argument semantic)
2017-11-21 20:50:33 -05:00
Rolf Bjarne Kvinge 6fcf4ab7f4
[tests] Allow xharness to open many files when running device tests. (#3024) 2017-11-21 07:22:31 +01:00
Rolf Bjarne Kvinge 363e78211a
[xharness] Graciously ask 'mlaunch --logdev' to exit before enforcing the issue. (#3023)
'mlaunch --logdev' will exit when an enter key is pressed, so emulate that
instead of immediately terminating mlaunch.
2017-11-20 18:45:30 +01:00
Rolf Bjarne Kvinge efebe2b73b
[tests] Port the makefile-based generator tests to NUnit. (#3019)
* [tests][generator] Port bindas1048error to NUnit.

* [tests][generator] Port bindas1049error to NUnit.

* [tests][generator] Port bindas1050modelerror to NUnit.

* [tests][generator] Port bindas1050protocolerror to NUnit.

* [tests][generator] Port bug42855 to NUnit.

* [tests][generator] Port bug57070 to NUnit.

* [tests][generator] Port bug52570classinternal to NUnit.

* [tests][generator] Port bug52570methodinternal to NUnit.

* [tests][generator] Port bug52570allowstaticmembers to NUnit.

* [tests][generator] Port protocol-duplicate-abstract-error to NUnit.

* [tests][generator] Port protocol-duplicate-method-diff-length to NUnit.

* [tests][generator] Port protocol-duplicate-method-diff-out to NUnit.

* [tests][generator] Port protocol-duplicate-method-diff-type to NUnit.

* [tests][generator] Port protocol-duplicate-method-diff-return to NUnit.

* [tests][generator] Port warnaserror to NUnit.

* [tests][generator] Port nowarn to NUnit.

* [tests][generator] Add support for inspecting/asserting the generated content.

* [tests][generator] Port some Xamarin.Mac tests to NUnit.

Ported:

* bmac_smoke
* bmac-with-hyphen-in-name
* property-redefination-mac
* NSApplicationPublicEnsureMethods
* protocol-duplicate-abstract

* [tests][generator] Point bgen to our local installation.

* [tests][generator] Port the bug31788 test to a unit test.

* [generator] Make the 'bgen' helper target more complete.

* [tests][generator] Port non-custom iOS tests to unit tests.

* [tests][generator] Add new test.

* [tests][generator] Port the forum54078 test to a unit test.

* [tests][generator] Port the desk63279 test to a unit test.

* [tests][generator] Port the desk79124 test to a unit test.

* [tests][generator] Port the multiple-api-definitions tests to unit tests.

* [generator] Use mono code style.

* [tests][generator] Port the bug29493 test to a unit test.

* [tests][generator] Port the classNameCollision test to a unit test.

* [tests][generator] Port the bi1036 test to a unit test.

* [tests][generator] Port the bug37527 test to a unit test.

Also fix BI1112 and BI1113 to show up as errors in the console output (since
they're exceptions they're already treated as errors and would cause bgen to
fail).

* [tests][generator] Port the bug27986 test to a unit test.

* [tests][generator] Port the bug35176 test to a unit test.

* [tests][generator] Port the bi1046 test to a unit test.

* [tests][generator] Port the virtualwrap test to a unit test.

* [tests][generator] Port the bug42742 test to a unit test.

* [tests][generator] Port the noasyncinternalwrapper test to a unit test.

* [tests][generator] Port the noasyncwarningcs0219 test to a unit test.

* [tests][generator] Port the bug53076 test to a unit test.

* [tests][generator] Port the bug53076withmodel test to a unit test.

* [tests][generator] Port the fieldenumtests test to a unit test.

* [tests][generator] Port the smartenumwithframework test to a unit test.

* [tests][generator] Port the forcedtype test to a unit test.

* [tests][generator] Port the bug46292 test to a unit test.

* [tests][generator] Build tests with MSBuild.

There's no need to use xbuild for these tests.

* [tests][generator] Remove dead code.

* [xharness] Don't run the makefile-based generator tests anymore.

Since there aren't any makefile-based generator tests anymore, they've all
been ported to NUnit tests.

* [tests][generator] Make the bug39614 test do what it was supposed to do: make sure a namespace isn't required (but recommended).
2017-11-20 14:55:16 +01:00
Vincent Dondain f307f377a1 [coreimage] Add new Image Dictionary Keys
- Fixes bug #59296: [coreimage] Some `kCI*`keys are not bound
  (https://bugzilla.xamarin.com/show_bug.cgi?id=59296)
- Generate a StrongDictionary for `CIImageInitializationOptions` to avoid manual code.
- Move `CGImageProperties Properties { get; set; }` to parent type `CIImageInitializationOptions` (avoid 2 strong dictionaries).
  Reason:
  Even though the headers give us an indication of which constructors should use some CIImage keys it's hard to apply that
  to all constructors consistently.
  We could have 1 strong dictionary per constructor (duplicate members) with just the exact members we know it supports (based on headers) however
  it's better to have a single strong dictionary and document the options because A might be available only in X today and Y next too next year.
- Fix `DictionaryContainer`'s `GetStrongDictionary` to return null
and not throw if target StrongDictionary is not yet set.

Basically:

```
var options = new CIImageInitializationOptionsWithMetadata ();
            Assert.That (options.Dictionary.Count, Is.EqualTo (0), "Count");
```

Would throw:

```
System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
  ----> System.ArgumentNullException : Value cannot be null.
```
2017-11-19 14:42:01 -05:00
Chris Hamons 83f00251d6
[macos] Fix APITest crash due to missing version check (#3021) 2017-11-17 12:35:54 -06:00
Manuel de la Pena 1a7712f595
[MTouch] If we are building a shared code extension, do not build the msym dir. #60415 (#3016)
* [MTouch] If we are building a shared code extension, do not build the msym dir.
2017-11-17 18:24:09 +01:00
Vincent Dondain 30a057ddc0
[CoreImage] Update filters for Xcode 9 (#2974)
- Fixes bug #57350: Review new CoreImage filters added in Xcode 9
(https://bugzilla.xamarin.com/show_bug.cgi?id=57350).
- Adds `AVCameraCalibrationData` and `CIBarcodeDescriptor` to `generator-filters`.
- Fixes `ApiCoreImageFiltersTest`'s `GenerateBinding` to use valid `[CoreImageFilterProperty]`.
- In `CheckManagedFilters` generate code of SuperClass when detected so it's easier to bind.
2017-11-16 16:38:14 -05:00
Rolf Bjarne Kvinge 976eb7b51e
[xharness] Don't run BCL tests in parallel for Xamarin.Mac. (#3014) 2017-11-16 18:50:43 +01:00
Rolf Bjarne Kvinge 171cf4987c
[monotouch-test] Tweak CalendarTest yet again. (#3015)
Hopefully third time's the charm...

Don't do date math (adding hours) to a local datetime, since DST *will* muddy
the waters and prove that 1=2.

Instead convert the date we want to calculate on to UTC, which should be DST-agnostic.

I've tested this by running the test for every hour during the next 10 years,
so that should cover mostly everything (although I'm still waiting for the
Delorean I ordered to be able to test both in the future and the past).

Previous attempts:

0442cdf9c0
5caddb3571

Should fix https://github.com/xamarin/maccore/issues/573.
2017-11-16 18:48:37 +01:00
Chris Hamons d2d2fcb352
[macos] Error when linking mix-mode assemblies (#2911)
- https://bugzilla.xamarin.com/show_bug.cgi?id=58583
2017-11-16 09:18:18 -06:00
Rolf Bjarne Kvinge e8d16c925b
[mtouch/mmp/bgen] Add support for response files. (#2808)
* [mtouch/mmp/bgen] Add support for response files.

This is the first part of the fix for #56501.

https://bugzilla.xamarin.com/show_bug.cgi?id=56501

* [tests] Make sure no single argument starting with a '@' is passed to mtouch unless it's a response file.

--assembly-build-target takes arguments starting with '@', for instance:

    --assembly-build-target @all=framework

which does not work anymore, because that's interpreted as a response file
(mtouch tries to read the file '@all=framework', which obviously doesn't
exist).

The fix is simple, don't put a space between the two arguments:

    --assembly-build-target=@all=framework

* Add --root-assembly to mtouch/mmp and make the MSBuild tasks use this new option.

This makes it possible to pass root assemblies starting with `@` to mtouch/mmp
without getting mistaken for response files.

* [msbuild] Always use the command-line option that takes an equals or colon.

Always use the command-line option that takes an equals or colon instead of a
space.

Do either of these:

    --foo=something
    --foo:something

instead of this:

    --foo something

so that `something` can start with an at (`@`) sign without being mistaken for
a response file.

* [msbuild] Fix tests according to recent task changes.
2017-11-16 16:02:34 +01:00
Sebastien Pouliot f4fc3d0be0
[monotouch-test] Fix ContactStoreTest for watchOS (#3006)
Backport/merge of PR #306 to avoid random failures on bots.
Should fix https://github.com/xamarin/maccore/issues/577
2017-11-14 16:10:19 -05:00
Bernhard Urban 20182800a1
[runtime] integrate mono 2017-10 (#2905)
* Update the function name used to initialize libmono-profiler-log, its called mono_profiler_init_log () now.

* [builds] Pass --with-cross-offsets= to crosstv's configure.

* Bump mono to 2017-08.

* Bump mono to 2017-08.

* Force disable 'futimens' and 'utimensat' so that we build with Xcode 9.

This is also needed to build with Xcode 8.3 on High Sierra.

* Remove old AppleTls implementation.

* Bump mono.

* Bump mono to 2017-08.

* Bump mono to 2017-08

* Reenable link-keep-resources-2 test

- This reverts commit 76b759ef22.
- 2017-08 has linker fix

* Bump mono to 2017-10

* Revert "Bump mono to 2017-10"

This reverts commit bb7832724e.

* Bump system mono to 2017-10

* Bump embedded mono to 2017-10

* [runtime] reflect eglib move

9be68f8952

* bump mono

* [btouch] remove Security.Tls usage from test

* [mtouch tests] update the function name used to initialize libmono-profiler-log, its called mono_profiler_init_log () now.

see
ea4e4a9ef6

fixes:

```
1) Failed : Xamarin.MTouch.Profiling(tvOS)
  _mono_profiler_startup_log
  Expected: collection containing "_mono_profiler_startup_log"
  But was:  < "_mono_profiler_init_log" >
at Xamarin.MTouch.Profiling (Xamarin.Profile profile) [0x00106] in <511889694a624cc9a50e0e9b259b05c5>:0

2) Failed : Xamarin.MTouch.Profiling(watchOS)
  _mono_profiler_startup_log
  Expected: collection containing "_mono_profiler_startup_log"
  But was:  < "_xamarin_get_block_descriptor", "_mono_profiler_init_log" >
at Xamarin.MTouch.Profiling (Xamarin.Profile profile) [0x00106] in <511889694a624cc9a50e0e9b259b05c5>:0
```

* [mmptest] update log profiler options.

826558a4af
deprecated the dash prefix for the mlpd path.

`noallocs` or `nocalls` are not needed, neither of them are default anymore.

* [mmptest] fix link-keep-resources-2 test to cope with more corlib resources.

another corlib resource (mscorlib.xml) was added:

https://github.com/mono/mono/commit/11e95169e787#diff-2d1c64decd91d9a6e8842ab0f0e9438d

* Revert "[mmptest] fix link-keep-resources-2 test to cope with more corlib resources."

This reverts commit 350eb3c174.

* [XHarness] Add the Mono.Data.Tds tests.

* Address comments from rolf in the review.

* [mmp regresssion tests] bump mono linker, so mscorlib.xml gets stripped

the test was failing in that way:

> Executing link-keep-resources-2...
> [FAIL]	i18n 4/2 data files present: charinfo.nlp, collation.core.bin, collation.tailoring.bin, mscorlib.xml

also update the output, because it's actually expected at least three
elements.

fixes: https://bugzilla.xamarin.com/show_bug.cgi?id=59277

* bump mono

fixes crash in tvOS: https://github.com/mono/mono/pull/5812

* bump mono for updated BCL tests

see https://github.com/mono/mono/pull/5820

* [mono] set 2017-10 branch in .gitmodules

* [macos] Fix guiunit error on clean builds by depending on correct copy (#2912)

* [macos] Fix guiunit error on clean builds by depending on correct copy

- From a clean build making a BCL test would error due to the non-mobile guiunit not being built
- This was because the Makefile-mac.inc target was incorrect
- This was because xharness assumed that non variation based targets were always Modern
- However, BCL tests are Full, not Modern

* Code review change

* Swap to var to reduce diff

* Revert changes in the paths for GuiUnit.

* [XHarness] Add the System.IO.Compression bcl tests. (#2918)

* [XHarness] Add the System.IO.Compression bcl tests.

*  [XHarness] Add bcl tests for System.IO.Compression.FileSystem. (#2924)

* [XHarness] Add the System.IO.Compression bcl tests.

* Ensure that resources are correctly copied in the bundles.

* [XHarness] Add bcl tests for System.IO.Compression.FileSystem.

* As per review, make the Mac test app name match the tests that are ran.

* [XHarness] Add Mono.CSharp tests on ios. (#2927)

* [XHarness] Add Mono.CSharp tests on ios.

* Bump mono to bring changes in the mono.csharp tests.

* [xtro-sharpie] fix TypeDefinition access due to Cecil change

* Bump mono

* bump mono

fixes
- https://bugzilla.xamarin.com/show_bug.cgi?id=60480
- https://bugzilla.xamarin.com/show_bug.cgi?id=60482

* bump mono

more fixes around conflicting paths when tests are run in parallel.

* Bump for mono/mono@2017-10
2017-11-14 21:30:08 +01:00
Rolf Bjarne Kvinge 6dc755c342
Include the mono version in Versions.plist. (#3003) 2017-11-14 19:40:11 +01:00
Vincent Dondain 311fe265f8
[storekit] Fix SKCloudServiceSetupOptions strong dictionary's 'Action' (#2998)
- Fixes bug #59928: SKCloudServiceSetupViewController.LoadAsync() does not work correctly when passed an SKCloudServiceSetupOptions object instead of a manually-created NSDictionary
(https://bugzilla.xamarin.com/show_bug.cgi?id=59928)
2017-11-14 10:12:58 -05:00
Alex Soto 21a56a5f27
[generator] Improve BI1014 - include name of unsupported field and update valid types on docs, fixes bug 57094. (#3001)
* [generator] Improve BI1014 - include name of unsupported field and update valid types on docs, fixes bug 57094.

https://bugzilla.xamarin.com/show_bug.cgi?id=57094

* Implement feedback

* fix error message

* More feedback
2017-11-14 08:46:46 -06:00
Rolf Bjarne Kvinge 6f8cb8e9e8
[xharness] Try to fix apparently impossible infinite loop. Might fix bug #59208. (#3004)
https://bugzilla.xamarin.com/show_bug.cgi?id=59208
2017-11-14 15:11:52 +01:00
Sebastien Pouliot e05048f182
Merge latest d15-5 (#3002)
* Updated reference to mono/mono@950ea65 (#2975)

* [macos] Fix AVCaptureDepthDataOutput on HS and 10.13 typo (#2977)

* [tests] Remove merge dupe for 'Hlg' typo
2017-11-14 08:51:41 -05:00
Alex Soto b197eab50e
[generator] Fix slightly incorrect error message when trying to use ref/out parameters with BindAs attributes, fixes 57804. (#2997)
https://bugzilla.xamarin.com/show_bug.cgi?id=57804
2017-11-13 14:21:18 -06:00
Alex Soto ee19c79feb
[Generator] BindAs attribute for smart enums of an array of nullable values generates code that doesn't compile, Fixes bug 57797 (#2954)
* [Generator] BindAs attribute for smart enums of an array of nullable values generates code that doesn't compile, Fixes bug 57797

https://bugzilla.xamarin.com/show_bug.cgi?id=57797

We now correctly compiles the array nullabe types

* Disable Nullable array types in BindAs until we add registrar support
2017-11-13 10:54:21 -06:00
Sebastien Pouliot e21a5b9a75
[xharness] Fix clearing simulator state. Fixes #60229 and #58951. (#2904) (#2993)
Fix clearing the simulator state by properly finding the correct simulators
from tasks that will actually run, and not from potentially ignored/failed
tasks (which won't have necessarily simulators).

https://bugzilla.xamarin.com/show_bug.cgi?id=58951
https://bugzilla.xamarin.com/show_bug.cgi?id=60229
2017-11-10 15:38:19 -05:00
Alex Soto 4ab10b0c3a
[AVFoundation] Update up to Xcode 9.2 Beta 2 (#2978)
* [AVFoundation] Update up to Xcode 9.2 Beta 2

* implement feedback
2017-11-10 14:19:38 -06:00
Alex Soto 4c00387fdc
[HomeKit] Update up to Xcode 9.2 Beta 2 (#2981)
* [HomeKit] Update up to Xcode 9.2 Beta 2

* Fix feedback
2017-11-10 11:18:24 -06:00
Alex Soto 651a3f73e8
[CoreML] Update up to Xcode 9.2 Beta 2 (#2979)
* [CoreML] Update up to Xcode 9.2 Beta 2

* Add global::
2017-11-09 15:27:21 -06:00
Alex Soto f2da9cde6b
[xtro] Re-enable InputMethodKit in xtro tests, fixes bug 57241 (#2987)
https://bugzilla.xamarin.com/show_bug.cgi?id=57241
2017-11-09 08:41:06 -06:00
Chris Hamons 5993a816a8
[macos] Fix AVCaptureDepthDataOutput on HS and 10.13 typo (#2976) 2017-11-08 14:07:39 -06:00
Sebastien Pouliot 548d0d2192
[passkit] Update up to Xcode 9.2 beta 2 (#2972)
Update (again) a typo in a constant
2017-11-08 14:42:38 -05:00
Sebastien Pouliot 526160d12d [tests] Fix XM build for monotouch/xammac-tests 2017-11-07 22:45:31 -05:00
Sebastien Pouliot f702512483 [tests] Handle a 2nd case where ContactStoreTest.GetUnifiedContacts can fail on bots 2017-11-07 20:52:35 -05:00
Sebastien Pouliot e68acf1caa [tests] Handle possible access denied in ContactStoreTest.GetUnifiedContacts
For some reason this happens with the watchOS 4.2 simulator on our
Jenkins bots (but not locally for me).

The test is updated to ignore errors as depending on the sim default
content does not seems possible.
2017-11-07 15:35:10 -05:00
Sebastien Pouliot 93118069ee [tests] Fix monotouch-tests to execute without failure with xcode 9.2 beta 2 2017-11-07 14:48:16 -05:00
Sebastien Pouliot e3d4846811 [test][dontlink] Simplify 'Autorelease' test not to depend on version specific return values 2017-11-07 13:25:17 -05:00
Sebastien Pouliot 54d9faf0b0 [tests] HMHomeAccessControl conformance to NS[Secure]Coding is not documented 2017-11-07 12:04:19 -05:00
Rolf Bjarne Kvinge 12d7cc87dd
[xharness] Increase timeouts for a few tests, since they may run slower when run in parallel. (#2968) 2017-11-07 16:12:37 +01:00
Rolf Bjarne Kvinge 53bdb99ed7
[xharness] Fix creating new log file (it should be truncated, which FileMode.Create does). (#2966) 2017-11-07 16:12:25 +01:00
Rolf Bjarne Kvinge fa7c6fb8eb
[xharness] Try to use a fixed port for the html server (but fallback to random port if it fails). (#2967)
Just so that the URL doesn't change every time you launch the server.
2017-11-07 16:12:13 +01:00
Rolf Bjarne Kvinge 5caddb3571
[monotouch-test] Fix regression in CalendarTest to not compare UTC and local time directly. (#2964)
In 0442cdf9c0 the `now` variable was changed to
be a UTC date, but unfortunately the code that compares it to a local date
(NSDate.Now) wasn't updated.

Only year/month/day values were compared, which meant the test would fail if
run when UTC and local time didn't represent the same date (and conversely
would pass if the UTC and local date was the same date, which is why the
changed did not fail the PR test run: the PR was tested during the 19 hours of
the day when EST and UTC represent the sam date).

Fix this by converting the UTC `now` to NSDate instead of using NSDate.Now.

This has the additional benefit of also fixing a (much smaller) race
condition: if midnight occurred just between calculating `now` and NSDate.Now,
the test would also fail.
2017-11-07 16:12:00 +01:00
Rolf Bjarne Kvinge dd79a20284 [xharness] Try to fix apparently impossible infinite loop. Might fix bug #59208. (#2960)
https://bugzilla.xamarin.com/show_bug.cgi?id=59208
2017-11-06 17:14:03 -05:00
Rolf Bjarne Kvinge 82e3aaf278
[monotouch-test] Move generated files out of the "all test files" wildcard. (#2958)
monotouch-test has a wildcard to automatically include new test files, but
this should not include generated files, because:

* The generated files are generated when needed, which means we can't rely on
  the wildcard to trigger their generation, because the wildcard won't find
  them before they exist, and as such msbuild won't detect that they're
  needed.
* This means the generated files must be listed separately, but in that case
  they shouldn't be found by the wildcard too, because that leads to:

    /Library/Frameworks/Mono.framework/Versions/5.4.0/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets(84,5): error MSB3105: The item "ObjCRuntime/TrampolineTest.generated.cs" was specified more than once in the "Sources" parameter.  Duplicate items are not supported by the "Sources" parameter.

So move the generated files to a different directory, so that the wildcard
doesn't find them.
2017-11-06 17:16:32 +01:00
Rolf Bjarne Kvinge 0442cdf9c0
[monotouch-test] Tweak CalendarTest to work when 1h = 2h due to DST change. (#2957)
At 2:00 AM on November 5h 2017, winter came to our bots in Boston.

This meant that between 2:00 and 3:00 AM, subtracting 1h from the current
time yielded a time difference of 2h.

This was caught by our observant tests:

    [FAIL] CalendarTest.DateComponentsTest :   b hour
        Expected: 1
        But was:  2

To avoid such issues next time this test happens to run during this single
hour of the entire year that causes problems, change the test to use time
calculcation using UTC instead.
2017-11-06 15:17:12 +01:00
Rolf Bjarne Kvinge acbfb063c5
[monotouch-test] Fix MDLVoxelArrayTest to allow for different index extents. (#2956)
This test fails on the bots:

	[FAIL] MDLVoxelArrayTest.BoundingBoxTest :   MaxX (M)
  Expected: -1.0f
  But was:  0.0f

For some unknown reason I'm not able to reproduce locally, but the actual
values look normal, so update the test to accept those as well.
2017-11-06 15:16:37 +01:00
Timothy Risi 492121ec3b [macOS] Fix Introspection and API tests (#2891) 2017-11-03 20:36:34 -08:00
Sebastien Pouliot 8baa15f6c3 [tests] Adjust new tests to build on XM too 2017-11-03 15:30:04 -04:00
Sebastien Pouliot 395feca0d9 Merge branch 'xcode9.1' into master-merge-xcode91-take2 2017-11-03 10:30:07 -04:00
Sebastien Pouliot 03b9d1759e
[security] Add RequestSharedWebCredential overload. Fixes #60423 (#2940)
* The original API was incorrect. Lack of documentation at binding time?
* Use a strong dictionary to expose the credentials

The fixed version cannot be unit tested since it popups an UI.

The test case attached to the bug report [1] can be used to verify it.

reference:
[1] https://bugzilla.xamarin.com/show_bug.cgi?id=60423
2017-11-02 14:54:39 -04:00
Alex Soto 8e92d2a350
[Generator] BindAs attribute for smart enum to multidimensional array generates code that doesn't compile, Fixes Bug 57795 (#2948)
https://bugzilla.xamarin.com/show_bug.cgi?id=57795

We now error out with "BI1048 Unsupported type Foo[,] decorated with [BindAs]"
2017-11-02 08:34:10 -06:00
Rolf Bjarne Kvinge 9e59425349
[xharness] Properly handle failure by mlaunch to wait for app exit. (#2946)
Detect MT1111 from mlaunch (which means mlaunch won't wait for the app to
exit), and instead use test run completion to determine test completion.

The main drawback is that if the test app crashes, it won't be detected (the
test run will time out, and reported as such), but it's still an improvement
over the current behavior (the tests may complete successfully, and still be
reported as timed out).

This also requires bumping maccore to get an updated mlaunch (one that reports
MT1111).
2017-11-02 12:46:18 +01:00
Rolf Bjarne Kvinge 948c4e4f95 [xtro-sharpie] Fix wrench build to use the correct MSBuild invocation. 2017-11-01 08:34:03 +01:00
Sebastien Pouliot 0e2df78b72 Fix some merge issues to fix build 2017-11-01 00:06:29 -04:00
Sebastien Pouliot 5239f2528a Merge branch 'xcode9.1' into d15-5-xcode9.1 2017-10-31 23:31:00 -04:00
Sebastien Pouliot 16214f305b Revert "[MetalPerformanceShaders] Activate bindings for Xamarin.Mac and add n… (#2816)"
This reverts commit 531bafcfaa.
2017-10-31 17:17:54 -04:00
Timothy Risi 2926a13f7e
[test] Change monotouch-test and xammac_tests to use all .cs files in monotouch-test/ Fixes #60290 (#2930)
Exclude the registrar/trampoline generated files from xammac_tests
Remove CoreLocation.LocationTest since is covered by introspection
2017-10-31 08:09:21 -08:00
Alex Soto 2dac229ef6
Fix HealthKit xtro output (#2935) 2017-10-30 11:08:42 -06:00
Rolf Bjarne Kvinge 33f8b8bc8f
[monotouch-test] CGColorSpace.CreateIccData is iOS 10+ only. (#2936) 2017-10-30 18:05:41 +01:00
Chris Hamons 2510b805b2
Add XM Modern to BCL test suite (#2923) 2017-10-27 16:44:22 -05:00
Rolf Bjarne Kvinge 64c3ea2cae [monotouch-test] Fix 2 issues when running on iOS 9. (#2934)
* [monotouch-test][GameplayKit] GKAgent3D isn't available on iOS 9.

Fixes this test failure:

> [FAIL] GKAgent3DTest.RotationTest : ObjCRuntime.RuntimeException : Wrapper type 'GameplayKit.GKAgent3D' is missing its native ObjectiveC class 'GKAgent3D'.

* [monotouch-test][MPS] MPSImageHistogram.HistogramSizeForSourceFormat doesn't seem to work on iOS 9.

Calling MPSImageHistogram.HistogramSizeForSourceFormat seems to abort on iOS 9
due to invalid arguments no matter which pixel format I use:

> /BuildRoot/Library/Caches/com.apple.xbs/Sources/MetalImage/MetalImage-39.3/MetalImage/Filters/MIHistogram.mm:103: failed assertion `[MPSImageHistogram histogramSizeForSourceFormat:] unsupported texture format: 114'

So only call this method on iOS 10+.
2017-10-27 17:06:02 -04:00
Rolf Bjarne Kvinge 407a19b59b
[tests][mtouch] Add test case for bug #59617. (#2926)
* [tests][mtouch] Convert MT4162 to new syntax.

This also means adding support for custom usings in test code, and adding
support for asserting filename/linenumber with error patterns, and custom
pattern syntax.

* [tests][mtouch] Add test case for bug #59617.

This amounts to running the MT4162 test with the linker enabled.

https://bugzilla.xamarin.com/show_bug.cgi?id=59617
2017-10-27 19:14:58 +02:00
Alex Soto 79d325d5ae [SceneKit] Adds Xcode 9 Beta 1 to stable bindings (#2925)
* [SceneKit] Add Xcode 9 Beta 1 to stable bindings

* Implement feedback

* Use https instead of htt(t)p in links, and link to iOS directly
2017-10-27 09:47:19 -05:00
Rolf Bjarne Kvinge 11f77d226c Add Objective Sharpie 3.4 as an optional dependency, and add support for running xtro tests on wrench+jenkins. (#2887) (#2922)
This will add Objective Sharpie as an optional dependency, only enforced if
actually trying to run the xtro tests.

The wrench/jenkins tests will show up as green for now (since there are known
failures in the xtro tests that have to be addressed first).
2017-10-26 10:43:45 -04:00
Sebastien Pouliot 584da1da18 [uikit] UIAccessibility.RequestGuidedAccessSession completion handler is an ObjC block. Fix #59196 (#2917)
Reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=59196
2017-10-24 16:47:10 -04:00
Sebastien Pouliot 523e95182e [foundation] Fix DateTime from NSDate seconds (decimal) precision loss when converting. Fix #32022 (#2916)
The explicit operator did all it's math using `long` (the internal
representation for DateTime) so the fractional part of the NSDate was
lost. E.g.

> original:  530499149.239266
> roundtrip: 530499149.0

However even when using `double` computations we're still losing some
precision - parts just can be held in the `long` (Ticks) representation
of DateTime.

> original:  530499149.239266
> roundtrip: 530499149.23927

Reference:
https://bugzilla.xamarin.com/show_bug.cgi?id=32022
2017-10-24 10:54:17 -04:00
Rolf Bjarne Kvinge 996d90614b [linker] Handle ParameterInfos preserved from XML definitions. Fixes #60176. (#2915)
Don't assume that a marked method has a caller, since a method can be marked
from XML as well.

This fixes a NullReferenceException:

> error : Could not link assemblies.
>  	Type: `System.Reflection.RuntimeParameterInfo`
>  	Assembly: `mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e`
>  Reason: Object reference not set to an instance of an object
>  --- inner exception
>  System.NullReferenceException: Object reference not set to an instance of an object (Aufgaben-ID: 165)
>    at MonoTouch.Tuner.MonoTouchMarkStep.MarkMethod (Mono.Cecil.MethodReference reference) [0x0004f] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs:105
>    at Mono.Linker.Steps.MarkStep.MarkMethodCollection (System.Collections.IEnumerable methods) [0x00017] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/external/linker/linker/Mono.Linker.Steps/MarkStep.cs:1163
>    at Mono.Linker.Steps.MarkStep.MarkMethods (Mono.Cecil.TypeDefinition type) [0x0000b] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/external/linker/linker/Mono.Linker.Steps/MarkStep.cs:1157
>    at Xamarin.Linker.Steps.MobileMarkStep.MarkMethods (Mono.Cecil.TypeDefinition type) [0x0000b] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/linker/MobileMarkStep.cs:123
>    at Mono.Linker.Steps.MarkStep.ApplyPreserveInfo (Mono.Cecil.TypeDefinition type) [0x0004a] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/external/linker/linker/Mono.Linker.Steps/MarkStep.cs:1102
>    at Mono.Linker.Steps.MarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x001ee] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/external/linker/linker/Mono.Linker.Steps/MarkStep.cs:607
>    at Xamarin.Linker.Steps.MobileMarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00001] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/linker/MobileMarkStep.cs:71
>    at Xamarin.Linker.Steps.CoreMarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00046] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/linker/CoreMarkStep.cs:156
>    at MonoTouch.Tuner.MonoTouchMarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00001] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs:84
>    at Mono.Linker.Steps.MarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x0007d] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/external/linker/linker/Mono.Linker.Steps/MarkStep.cs:566
>    at Xamarin.Linker.Steps.MobileMarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00001] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/linker/MobileMarkStep.cs:71
>    at Xamarin.Linker.Steps.CoreMarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00046] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/linker/CoreMarkStep.cs:156
>    at MonoTouch.Tuner.MonoTouchMarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00001] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs:84
>    at Mono.Linker.Steps.MarkStep.InitializeType (Mono.Cecil.TypeDefinition type) [0x0005b] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/external/linker/linker/Mono.Linker.Steps/MarkStep.cs:94
>    at Mono.Linker.Steps.MarkStep.InitializeAssembly (Mono.Cecil.AssemblyDefinition assembly) [0x00025] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/external/linker/linker/Mono.Linker.Steps/MarkStep.cs:81
>    at Mono.Linker.Steps.MarkStep.Initialize () [0x00016] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/external/linker/linker/Mono.Linker.Steps/MarkStep.cs:73
>    at Mono.Linker.Steps.MarkStep.Process (Mono.Linker.LinkContext context) [0x00008] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/external/linker/linker/Mono.Linker.Steps/MarkStep.cs:66
>    at Xamarin.Linker.Steps.MobileMarkStep.Process (Mono.Linker.LinkContext context) [0x00001] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/linker/MobileMarkStep.cs:33
>    at Xamarin.Linker.Steps.CoreMarkStep.Process (Mono.Linker.LinkContext context) [0x00017] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/linker/CoreMarkStep.cs:26
>    at MonoTouch.Tuner.MonoTouchMarkStep.Process (Mono.Linker.LinkContext context) [0x0001d] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/linker/MonoTouch.Tuner/MonoTouchMarkStep.cs:36
>    at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x00023] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/external/linker/linker/Mono.Linker/Pipeline.cs:128
>    at MonoTouch.Tuner.Linker.Process (MonoTouch.Tuner.LinkerOptions options, MonoTouch.Tuner.MonoTouchLinkContext& context, System.Collections.Generic.List`1[Mono.Cecil.AssemblyDefinition]& assemblies) [0x000e0] in /Users/builder/data/lanes/5481/2f8bbec0/source/xamarin-macios/tools/mtouch/Tuning.cs:82

https://bugzilla.xamarin.com/show_bug.cgi?id=60176
2017-10-24 10:57:17 +02:00
Timothy Risi 27741b636c [macOS] Fix Introspection and API tests (#2891) 2017-10-23 11:22:17 -08:00
Timothy Risi 531bafcfaa [MetalPerformanceShaders] Activate bindings for Xamarin.Mac and add n… (#2816) 2017-10-23 11:16:38 -08:00
Chris Hamons cdffea44b9 [macos] Fix guiunit error on clean builds by depending on correct copy (#2912)
* [macos] Fix guiunit error on clean builds by depending on correct copy

- From a clean build making a BCL test would error due to the non-mobile guiunit not being built
- This was because the Makefile-mac.inc target was incorrect
- This was because xharness assumed that non variation based targets were always Modern
- However, BCL tests are Full, not Modern

* Code review change

* Swap to var to reduce diff
2017-10-20 17:14:02 +02:00
Alex Soto 2f9a6ca4cd [CoreVideo] Adds API bindings from Xcode 9 Beta 1 to stable (#2902)
* [CoreViceo] Adds API bindings from Xcode 9 Beta 1 to stable

* implement feedback

* adds tests

* exclude watchos from Metal tests
2017-10-19 14:27:32 -05:00
Rolf Bjarne Kvinge 531ae21ab8 [xtro-sharpie] Update README to explain how to install ObjectiveSharpie. (#2909) 2017-10-19 14:25:24 -05:00
Rolf Bjarne Kvinge 8d1ebd48e5 [xharness] Fix clearing simulator state. Fixes #60229 and #58951. (#2904)
Fix clearing the simulator state by properly finding the correct simulators
from tasks that will actually run, and not from potentially ignored/failed
tasks (which won't have necessarily simulators).

https://bugzilla.xamarin.com/show_bug.cgi?id=58951
https://bugzilla.xamarin.com/show_bug.cgi?id=60229
2017-10-19 17:50:35 +02:00
Rolf Bjarne Kvinge b5fc060ce7 [xtro] Fix typo and unknown/wrong counting. (#2903)
Fix typo and change how to count unknown/wrong API to not count when the
Makefile is read ($(shell ...) - before executing the tests, and as such not
finding anything wrong), but instead when printing the count (using
backticks).
2017-10-18 13:31:26 +02:00
Alex Soto cd1bb0777a [CoreText] Adds API bindings from Xcode 9 Beta 1 to stable (#2899)
* [CoreText] Adds API bindings from Xcode 9 Beta 1 to stable

* implement feedback and commit missing test update...

* use NSNumber instead of CFBool

* more feedback

* Fix naming, Offset to BaselineOffset to match other props
2017-10-17 11:35:38 -05:00
Rolf Bjarne Kvinge 28673d3e31 Add Objective Sharpie 3.4 as an optional dependency, and add support for running xtro tests on wrench+jenkins. (#2887)
This will add Objective Sharpie as an optional dependency, only enforced if
actually trying to run the xtro tests.

The wrench/jenkins tests will show up as green for now (since there are known
failures in the xtro tests that have to be addressed first).
2017-10-17 12:03:50 +02:00
Alex Soto edb7a03da5 [CoreMedia] Adds API bindings from Xcode 9 Beta 1 to stable (#2886)
* [CoreMedia] Adds API bindings from Xcode 9 Beta 1 to stable

* Bindings for CoreMedia API from Xcode 9 beta 1 to Stable
* Adds test for manual bindings of CMVideoFormatDescription HEVC APIs
* Fixed TODO of pending exposure of CMSampleBufferAttachmentSettings API
* Derived of the TODO renamed some internal keys inside CMSampleAttachmentKey
  static class in order for them to follow the [StrongDictionary] conventions
  to avoid uneccesary [Export] on StrongDictionary members. Also removed a
  #if !MONOMAC conditional in favour of [NoMac].

* implement feedback
2017-10-16 10:11:27 +02:00
Alex Soto dea070f617 [NetworkExtension] Update binding from Xcode 9 Beta 1 to Stable (#2877)
* [NetworkExtension] Update binding from Xcode 9 Beta 1 to Stable

Also found some minor issues on the macOS side of older API
checking xtro, fixed all of them in XAMCORE_4_0.

```
!unknown-field! NEFilterProviderRemediationMapRemediationButtonTexts bound
!unknown-field! NEFilterProviderRemediationMapRemediationURLs bound
!unknown-type! NEFilterProvider bound
```

* implement feedback and fix a build registrar issue

* change TLS to Tls
2017-10-13 01:08:17 -05:00
Rolf Bjarne Kvinge 1ff9a548ec [xharness] Try to guess a failure reason by parsing the run log. (#2879)
This isn't meant to be accurate, just more helpful than not showing anything at all in the test summary.
2017-10-13 07:53:08 +02:00
Rolf Bjarne Kvinge da6b8272f0 Unset MSBuildExtensionPath for every msbuild invocation at once, not once per invocation. (#2881) 2017-10-13 07:48:52 +02:00
Rolf Bjarne Kvinge d01376acba [xharness] Estimate install time for watchOS apps on device, and use it to derive an installation timeout. (#2880) 2017-10-12 17:08:54 +02:00
Chris Hamons 6704b27c19 Fix a number of introspection test failures on 10.13 (#2815) (#2833) (#2874) 2017-10-10 13:55:24 -05:00
Rolf Bjarne Kvinge 9207d5fa15 [foundation] Remove [Preserve(Conditional=true)] on the NSProxy hack (#2872)
* [foundation] Remove [Preserve(Conditional=true)] on the NSProxy hack (#2732) (#2734)

The attribute is not needed and makes everything link against WebKit
even when not needed. Also update comment to be more accurate.

Update fix for
https://bugzilla.xamarin.com/show_bug.cgi?id=59247

Adds test to verify presence/absence of NSProxy depending on WKWebView usage

* [tests] Fix linksdk WebKit_NSProxy test. Fixes #59671 (#2746)

In release (optimize) mode the compiler would eliminate the unused

> var t = typeof (WKWebView);

which means the linker would never see `WKWebView`, which in turns
removed `NSProxy`.

Original bug: https://bugzilla.xamarin.com/show_bug.cgi?id=59247
Original PR: https://github.com/xamarin/xamarin-macios/pull/2732

https://bugzilla.xamarin.com/show_bug.cgi?id=59671
2017-10-10 10:20:06 -05:00
Rolf Bjarne Kvinge 4a2dd86467 [xharness] Try to disable memory limits when running tests on device. (#2860)
This requires a maccore bump to get an updated mlaunch.
2017-10-10 11:02:24 +02:00
Alex Soto aae179d008 [VideoToolbox] Adds bindings from Xcode 9 Beta 1 to Stable (#2859)
* [VideoToolbox] Adds bindings from Xcode 9 Beta 1 to Stable

* implement feedback and remove weak prefix that I forgot to change
2017-10-09 13:43:17 -05:00
Rolf Bjarne Kvinge 1a0f0b6903 [AudioToolbox] Free the right GCHandle when failing to create an InputAudioQueue. Fixes #59911. (#2852)
When we fail to create an InputAudioQueue, we need to free the local GCHandle
we previously created, not the instance GCHandle where we'd put the local
GCHandle in case of success.

This fixes bug #59911 to throw the correct (invalid parameter) exception (and
not leak the local GCHandle either).

https://bugzilla.xamarin.com/show_bug.cgi?id=59911
2017-10-06 20:02:43 +02:00
Rolf Bjarne Kvinge e0e9cef39d [monotouch-test] The media library permission API is only available in iOS 9.3+. Fixes #59995. (#2854)
The media library permission API (to either query the permission status or ask
for permission) was introduced in iOS 9.3, so we need to make sure to not call
it on earlier iOS versions.

If running on older iOS versions, then just don't do anything (unless we're
asked to ignore tests that put up permission dialogs, in which case ignore the
test, since that's the safe approach).

https://bugzilla.xamarin.com/show_bug.cgi?id=59995
2017-10-06 17:17:41 +02:00
Rolf Bjarne Kvinge f4b98cdf60 [tests][mtouch] Add support for reading binary plists. (#2849)
* [tests][mtouch] Add support for reading binary plists.

Some plists in Xcode 9 are now binary plists (instead of just plain xml files
like they were in previous versions of Xcode). This causes trouble for some of
our tests, so make sure we handle binary plists as well.

Fixes these failures:

1. Xamarin.MTouch.MT0091(tvOS,"tvOS") : System.Xml.XmlException : Data at the root level is invalid. Line 1, position 1.
  at System.Xml.XmlTextReaderImpl.Throw (System.Exception e) [0x00027] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Throw (System.String res, System.String arg) [0x00029] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Throw (System.String res) [0x00000] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace () [0x0012c] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.ParseDocumentContent () [0x002d4] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Read () [0x0008c] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlLoader.Load (System.Xml.XmlDocument doc, System.Xml.XmlReader reader, System.Boolean preserveWhitespace) [0x000a6] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlDocument.Load (System.Xml.XmlReader reader) [0x0002e] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at Xamarin.Tests.Configuration.GetPListStringValue (System.String plist, System.String key) [0x00028] in <44c95c7e3d1e488ab633a77d9a794653>:0
  at Xamarin.MTouch.MT0091 (Xamarin.Profile profile, System.String name) [0x000ae] in <44c95c7e3d1e488ab633a77d9a794653>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <400071ddcfe64ed8a3531490bb763536>:0

2. Xamarin.MTouch.MT0091(iOS,"iOS") : System.Xml.XmlException : Data at the root level is invalid. Line 1, position 1.
  at System.Xml.XmlTextReaderImpl.Throw (System.Exception e) [0x00027] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Throw (System.String res, System.String arg) [0x00029] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Throw (System.String res) [0x00000] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace () [0x0012c] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.ParseDocumentContent () [0x002d4] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlTextReaderImpl.Read () [0x0008c] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlLoader.Load (System.Xml.XmlDocument doc, System.Xml.XmlReader reader, System.Boolean preserveWhitespace) [0x000a6] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at System.Xml.XmlDocument.Load (System.Xml.XmlReader reader) [0x0002e] in <03a79101ea6a4b9ba07e4ed2f6d985f5>:0
  at Xamarin.Tests.Configuration.GetPListStringValue (System.String plist, System.String key) [0x00028] in <44c95c7e3d1e488ab633a77d9a794653>:0
  at Xamarin.MTouch.MT0091 (Xamarin.Profile profile, System.String name) [0x000ae] in <44c95c7e3d1e488ab633a77d9a794653>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <400071ddcfe64ed8a3531490bb763536>:0

* [tests] The MSBuild tests now need a reference to StringUtils.
2017-10-06 13:14:57 +02:00
Rolf Bjarne Kvinge 5f6134bca3 [monotouch-test] Fix tests causing trouble for the AOT compiler. (#2846)
Fix tests causing trouble for the AOT compiler by not building those tests on
device (they're testing error conditions in the simulator, which means it's
acceptable to exclude these tests for device builds).

This fixes an AOT-compiler assert:

> * Assertion at /Users/builder/data/lanes/1381/d264709b/source/xamarin-macios/external/mono/mono/metadata/marshal.c:8497, condition `sig->param_count == invoke_sig->param_count + 1' not met

due to invalid [MonoPInvokeCallback] attributes.
2017-10-06 10:16:56 +02:00
Alex Soto aa2c533501 [ModelIO] Adds Xcode 9 Beta 1 to Stable API bindings (#2832)
* [ModelIO] Adds Xcode 9 Beta 1 to Stable API bindings

* implement feedback

* implement Tim's feedback
2017-10-05 20:32:25 +02:00
Rolf Bjarne Kvinge 0b199a7080 [tests] Exclude tests whose category is !BITCODE when running on watchOS/Release. Partially fixes #59947. (#2839)
Exclude tests whose category is !BITCODE when running on watchOS/Release. This
also requires a minor update to xharness to add a BITCODE conditional
compilation flag to generated watchOS/Release projects configurations.

This partially fixes #59947 (the fix will be complete once we bump to mono/2017-08).

https://bugzilla.xamarin.com/show_bug.cgi?id=59947
2017-10-05 13:41:04 +02:00
Timothy Risi 1595206541 [HealthKit] Bind Xcode 9 APIs (#2817)
* [HealthKit] Update to Xcode 9 GM

* Add new xcode 9 beta APIs

* Fix PR comments

Marking SyncVersion as an int based on SpeedySloth sample from Apple:

            guard let version = route.metadata?[HKMetadataKeySyncVersion] as? NSNumber else {
                print("Route does not have a sync version for route \(route)")
                return
            }

            if version.intValue == 1 {
                self.makeWorkoutRouteSlothy(workout: workout, route: route)
            }

* Didn't save after deleting the FIXME

* Fix build issue

* Fix introspection tests

* Add new enum values to HKQuantityType.ToKey

* QuantityTypeIdentifierTest needs xcode version check for new enum types
2017-10-05 07:48:53 +02:00
Rolf Bjarne Kvinge 706d0e09d7 [registrar] Store the attribute type separately for availability attributes saved for the registrar. (#2807) (#2838)
The registrar requires the availability attributes to work properly, which is
non-trivial when the linker is being used, because the linker runs before the
registrar, and will remove availability attributes.

For this reason we store the availability attributes separately when the
linker removes them so that the registrar can still find them, but
unfortunately it's not enough to store the CustomAttribute instance, because
it may end up crippled: if the attribute type itself is removed by the linker,
then it's not possible to get the attribute type from the CustomAttribute
instance, because 'attribute.Constructor.DeclaringType' returns null (the
linker sets the declaring type of the constructor to null).

Solution: store the attribute type separately; now we use a Tuple of
CustomAttribute and TypeReference.

Fixes this ugly exception:

    System.NullReferenceException: Object reference not set to an instance of an object
      at XamCore.Registrar.Registrar.RegisterAssembly (Mono.Cecil.AssemblyDefinition assembly) [0x00146] in /work/maccore/master/xamarin-macios/src/ObjCRuntime/Registrar.cs:2316
      at XamCore.Registrar.StaticRegistrar.Generate (System.Collections.Generic.IEnumerable`1[T] assemblies, System.String header_path, System.String source_path) [0x00035] in /work/maccore/master/xamarin-macios/tools/common/StaticRegistrar.cs:4197
      at Xamarin.Bundler.RunRegistrarTask.Execute () [0x00001] in /work/maccore/master/xamarin-macios/tools/mtouch/BuildTasks.mtouch.cs:154
2017-10-04 10:42:09 -05:00
Chris Hamons 75235cdf17 Fix a number of introspection test failures on 10.13 (#2815) (#2833) 2017-10-03 12:59:13 -05:00
Rolf Bjarne Kvinge d264709b8d Change BlockLiteral.SetupBlock to keep a reference to the delegate passed as the trampoline. (#2822)
* Change BlockLiteral.SetupBlock to keep a reference to the delegate passed as the trampoline.

Change BlockLiteral.SetupBlock to keep a reference to the delegate passed as
the trampoline, so that it's safer for normal users (crashes due to incorrect
usage are rare and random, and as such they're also hard to track down).

Additionally introduce a BlockLiteral.SetupBlockUnsafe method, that still has
the old behavior, so that we can use it in our own (reviewed) code.

* [ObjCRuntime] Add some validation to BlockLiteral.SetupBlock.

* Use BlockLiteral.SetupBlockUnsafe instead of .SetupBlock

Use SetupBlockUnsafe in our own code, because we know our own code is using it
correctly (by passing a trampoline stored in a static field, so that the GC
doesn't free it).

* [tests] Fix xammac tests build.
2017-10-03 18:59:10 +02:00
Chris Hamons aca0e2ed2e Fix a number of introspection test failures on 10.13 (#2815) 2017-10-02 16:55:23 -05:00
Rolf Bjarne Kvinge 43f84f6ca7 [xharness] Improve device selection, taking wireless devices into account. (#2827)
* [xharness] Don't list unusable devices.

* [xharness] Show the list of candidate devices in the html report.

* [xharness] Prioritize devices depending on the interface speed.
2017-10-02 17:37:19 +02:00
Rolf Bjarne Kvinge ea3f9736e1 [xharness] Don't freak out if we find a device we can't categorize. (#2824)
It's most likely just an untrusted device (in which case DeviceClass will be
an empty string).
2017-10-02 17:37:00 +02:00
Rolf Bjarne Kvinge f23bd79eff [xharness] Timestamp install logs. (#2825)
* [xharness] Simplify code a bit.

Logs are TextWriters by themselves, so no need to get a StreamWriter to pass
to API that takes TextWriter, when we can just pass the log instance itself.

This makes it possible to timestamp external process output (because
Log.Timestamp is honored instead of bypassed).

* [xharness] Timestamp install logs.

So that we get exact numbers of how long it takes to install on watch (and if
the watch installation stalls, or just times out because it takes too long).
2017-10-02 17:36:41 +02:00
Rolf Bjarne Kvinge 622af84e72 [xharness] Always wait for processes to exit, even if they're killed. Fixes #57846. (#2823)
Always wait for processes to exit, even if they're killed.

Also make absolutely sure that we can safely handle any exception when getting
the ExitCode, no matter what.

https://bugzilla.xamarin.com/show_bug.cgi?id=57846
2017-10-02 12:06:57 +02:00
Rolf Bjarne Kvinge dbb37b3e4f [CoreGraphics] Implement CoreGraphics bindings for Xcode 9. (#2812)
* [ios11-b1] CoreGraphics bindings

* Updated with feedback from Sebastien

* Fix build, optimize checks

* Add version information

* Address comments

* Tests

* Remove Apply code, add special code for typo

* [CoreGraphics] Add comma after last enum value.

* [CoreGraphics] No need to bind CGColorSpaceGetName.

* [CoreGraphics] Add new field in Xcode 9 beta 5.

* [CoreGraphics] Move kCGPDFContextAccessPermissions to the correct dictionary container and implement the corresponding manual code.

* [CoreGraphics] Adjust nullability acceptance based on new attributes for CGColorSpace.CreateCalibratedGray/RGB functions.

* [CoreGraphics] Bind CGColorSpaceCreateLab, introduced in Xcode 9 beta 5.

* [CoreGraphics] Adjust CGColorSpaceCreateWithICCData and CGColorSpaceCreateWithICCProfile bindings according to Xcode 9 beta 2.

Apple introduced CGColorSpaceCreateWithICCData in b1, and made
CGColorSpaceCreateWithICCProfile a typedef to CGColorSpaceCreateWithICCData.

Apple reversed the typedef in b2 (probably because it creates broken
executables when targetting earlier versions of macOS, since those executables
would use CGColorSpaceCreateWithICCData, which would not exist), and instead
made CGColorSpaceCreateWithICCProfile a normal deprecated method.

So copy this logic in our bindings: deprecate CreateICCProfile, and introduce
CreateICCProfile, with two overloads for NSData and CGDataProvider (since
that's what's accepted according to the documentation).

* [CoreGraphics] Add CGContextPDF constructors to make parity between different overloads.

There are two types of CGContextPDF constructors: the first argument is either
an NSUrl or a CGDataConsumer. Previously the NSUrl type had more overloads,
and also allowed a null CGRect for the second argument. With the overloads are
identical between the two types of CGContextPDF constructors.

Existing constructors:

	CGContextPDF (NSUrl, CGRect, CGPDFInfo)
	CGContextPDF (NSUrl, CGRect)
	CGContextPDF (NSUrl, CGPDFInfo)
	CGContextPDF (NSUrl)
	CGContextPDF (CGDataConsumer, CGRect, CGPDFInfo)

Added constructors:

	CGContextPDF (CGDataConsumer, CGRect)
	CGContextPDF (CGDataConsumer, CGPDFInfo)
	CGContextPDF (CGDataConsumer)

Additionally the code has been fixed to not throw NullReferenceExceptions if
null is passed for any of the values and instead pass on any null values to
the native `CGPDFContextCreate` method (since `CGPDFContextCreate`'s arguments
are all `__nullable`).

* [tests] Add and improve existing tests for new and some existing CoreGraphics API.

* Undo accidental whitespace noise.

* [tests] Remove random characters in assert message.

* [CoreGraphics] Improve argument exception messages in CGColorSpace according to review.

* [CoreGraphics] Use 'Icc' instead of 'ICC' for new API, and also make the change for XAMCORE_4_0.

* [CoreGraphics] Fix availability attribute for High Sierra.

* [tests] Update monotouch-test after API changes.
2017-10-02 12:02:41 +02:00
Chris Hamons c3d8555217 Move MT0091 to common code so Xamarin.Mac can benefit from the more f… (#2780)
- https://bugzilla.xamarin.com/show_bug.cgi?id=59186
2017-09-29 12:45:53 -05:00
Vincent Dondain 9b7cc6cbbe [uikit] Add UIContentSizeCategoryCompareToCategory & UIContentSizeCat… (#2805)
- Fixes bug #59422: https://bugzilla.xamarin.com/show_bug.cgi?id=59422)
2017-09-29 12:13:53 -04:00
Rolf Bjarne Kvinge f660667990 [registrar] Store the attribute type separately for availability attributes saved for the registrar. (#2807)
The registrar requires the availability attributes to work properly, which is
non-trivial when the linker is being used, because the linker runs before the
registrar, and will remove availability attributes.

For this reason we store the availability attributes separately when the
linker removes them so that the registrar can still find them, but
unfortunately it's not enough to store the CustomAttribute instance, because
it may end up crippled: if the attribute type itself is removed by the linker,
then it's not possible to get the attribute type from the CustomAttribute
instance, because 'attribute.Constructor.DeclaringType' returns null (the
linker sets the declaring type of the constructor to null).

Solution: store the attribute type separately; now we use a Tuple of
CustomAttribute and TypeReference.

Fixes this ugly exception:

    System.NullReferenceException: Object reference not set to an instance of an object
      at XamCore.Registrar.Registrar.RegisterAssembly (Mono.Cecil.AssemblyDefinition assembly) [0x00146] in /work/maccore/master/xamarin-macios/src/ObjCRuntime/Registrar.cs:2316
      at XamCore.Registrar.StaticRegistrar.Generate (System.Collections.Generic.IEnumerable`1[T] assemblies, System.String header_path, System.String source_path) [0x00035] in /work/maccore/master/xamarin-macios/tools/common/StaticRegistrar.cs:4197
      at Xamarin.Bundler.RunRegistrarTask.Execute () [0x00001] in /work/maccore/master/xamarin-macios/tools/mtouch/BuildTasks.mtouch.cs:154
2017-09-29 17:19:08 +02:00
Sebastien Pouliot 6aead42617 [gameplaykit] Add bindings from Xcode 9.0 (#2798)
Re-based from Miguel's PR #2476 including reviewers feedback.

[1] https://github.com/xamarin/xamarin-macios/pull/2476

* [spritekit] Add GKSceneRootNodeType to SKScene too and adjust intro tests

* [tests][intro][macos] Don't skip protocol checks for SceneKit on 64 bits
2017-09-28 15:41:29 -04:00
Rolf Bjarne Kvinge 94c416aff7 [tests][mtouch] Fix tests after registrar changes. 2017-09-28 17:39:09 +02:00
Rolf Bjarne Kvinge 67dbfbef4b [registrar] Don't verify the SDK for protocol members. Partially fixes #59617.
It's not needed, because protocol members don't end up in the registrar output
anyway (and would thus not prevent the registrar code from compiling).

Classes that implement any protocol members would still run into the SDK
check, so this should not prevent real problematic code from being reported
either.

https://bugzilla.xamarin.com/show_bug.cgi?id=59617
2017-09-28 17:39:06 +02:00
Rolf Bjarne Kvinge 05484c915f [registrar] Don't verify the SDK for protocol members, and fix the SDK check for other cases. Fixes #59617. (#2790)
* [registrar] Remove useless interface.

* [registrar] Don't store LinkContext in the static registrar when in can be fetched from the Target. Partially fixes #59617.

This avoids a problem where our code would store null because LinkContext
wasn't created yet when the static registrar instance was created.

This fixes the missing error from bug #59617.

https://bugzilla.xamarin.com/show_bug.cgi?id=59617

* [registrar] Don't verify the SDK for protocol members. Partially fixes #59617.

It's not needed, because protocol members don't end up in the registrar output
anyway (and would thus not prevent the registrar code from compiling).

Classes that implement any protocol members would still run into the SDK
check, so this should not prevent real problematic code from being reported
either.

https://bugzilla.xamarin.com/show_bug.cgi?id=59617

* [tests][mtouch] Fix tests after registrar changes.
2017-09-28 17:35:21 +02:00
Rolf Bjarne Kvinge eeb6256834 [mtouch] Show MT0123 if the executable assembly does not reference the product assembly. Fixes #59798. (#2801)
It does not make sense to create Xamarin.iOS projects that don't reference
Xamarin.iOS.dll, so make this an explicit error.

This fixes a NullReferenceException which could (when building for device, or
when not using simlauncher) occur, and instead shows the MT0123 error.

> MTOUCH : error MT0000: Unexpected error - Please file a bug report at http://bugzilla.xamarin.com
> System.NullReferenceException: Object reference not set to an instance of an object
>   at Xamarin.Bundler.Target.GatherFrameworks () [0x00065] in /Users/builder/data/lanes/5024/152b654a/source/xamarin-macios/tools/common/Target.cs:122
>   at Xamarin.Bundler.Target.ProcessAssemblies () [0x000c2] in /Users/builder/data/lanes/5024/152b654a/source/xamarin-macios/tools/mtouch/Target.cs:802
>   at Xamarin.Bundler.Application.ProcessAssemblies () [0x0002f] in /Users/builder/data/lanes/5024/152b654a/source/xamarin-macios/tools/mtouch/Application.cs:1407
>   at Xamarin.Bundler.Application.BuildManaged () [0x00001] in /Users/builder/data/lanes/5024/152b654a/source/xamarin-macios/tools/mtouch/Application.cs:831
>   at Xamarin.Bundler.Application+<>c.<BuildAll>b__134_1 (Xamarin.Bundler.Application v) [0x00000] in /Users/builder/data/lanes/5024/152b654a/source/xamarin-macios/tools/mtouch/Application.cs:779
>   at System.Collections.Generic.List`1[T].ForEach (System.Action`1[T] action) [0x00024] in <48b95f3df5804531818f80e28ec60191>:0
>   at Xamarin.Bundler.Application.BuildAll () [0x00050] in /Users/builder/data/lanes/5024/152b654a/source/xamarin-macios/tools/mtouch/Application.cs:779
>   at Xamarin.Bundler.Driver.Main2 (System.String[] args) [0x00481] in /Users/builder/data/lanes/5024/152b654a/source/xamarin-macios/tools/mtouch/mtouch.cs:1420
>   at Xamarin.Bundler.Driver.Main (System.String[] args) [0x0000f] in /Users/builder/data/lanes/5024/152b654a/source/xamarin-macios/tools/mtouch/mtouch.cs:945

https://bugzilla.xamarin.com/show_bug.cgi?id=59798
2017-09-28 17:31:55 +02:00
Sebastien Pouliot 97d933b082 Bump Xcode and versions for 9.1 beta 1 (#2795) 2017-09-27 19:42:23 -04:00
Luis Aguilera 90eecf43c7 Merge pull request #2785 from rolfbjarne/bind-as-d15-5
[registrar] Add support for the BindAs attribute.
2017-09-27 17:27:37 -04:00
Sebastien Pouliot cdd9ebada9 [linker] Use correct namespace for async debugging helpers. Fixes #59015 (#2782) (#2788)
Replace https://github.com/xamarin/xamarin-macios/pull/2704
It's almost identical but it adds unit tests so this does not regress.

The issue was already reported in [1] but the fix [2] was incorrect
and that was also missed when the bug was verified by QA [3].

[1] https://bugzilla.xamarin.com/show_bug.cgi?id=55037
[2] https://github.com/xamarin/xamarin-macios/pull/2004
[3] https://bugzilla.xamarin.com/show_bug.cgi?id=55037#c10
2017-09-27 11:15:22 -04:00
Rolf Bjarne Kvinge cecded565a [mmp/mtouch] Don't link with frameworks not available in the current SDK. Fixes #59636. (#2777) (#2784)
We already have this logic for frameworks we detect according to the namespace
of the used types, but not for frameworks we detect from P/Invokes.

Fix this by using the same framework exclusion logic for frameworks detected
from P/Invokes: don't link with frameworks not available in the current SDK.

https://bugzilla.xamarin.com/show_bug.cgi?id=59636
2017-09-27 15:53:41 +02:00
Rolf Bjarne Kvinge d0bb1c5d0c [tests] Recover BindAs test that got lost in merges. (#2786) 2017-09-27 14:05:54 +02:00
Sebastien Pouliot a61590967f [linker] Use correct namespace for async debugging helpers. Fixes #59015 (#2782)
Replace https://github.com/xamarin/xamarin-macios/pull/2704
It's almost identical but it adds unit tests so this does not regress.

The issue was already reported in [1] but the fix [2] was incorrect
and that was also missed when the bug was verified by QA [3].

[1] https://bugzilla.xamarin.com/show_bug.cgi?id=55037
[2] https://github.com/xamarin/xamarin-macios/pull/2004
[3] https://bugzilla.xamarin.com/show_bug.cgi?id=55037#c10
2017-09-27 07:50:01 -04:00
Rolf Bjarne Kvinge a867c4fa3b [mmp/mtouch] Don't link with frameworks not available in the current SDK. Fixes #59636. (#2777)
We already have this logic for frameworks we detect according to the namespace
of the used types, but not for frameworks we detect from P/Invokes.

Fix this by using the same framework exclusion logic for frameworks detected
from P/Invokes: don't link with frameworks not available in the current SDK.

https://bugzilla.xamarin.com/show_bug.cgi?id=59636
2017-09-27 11:40:28 +02:00
Rolf Bjarne Kvinge ee91b95c19 [tests] Unset XCODE_DEVELOPER_DIR_PATH when building mac binding projects. (#2776)
Unset XCODE_DEVELOPER_DIR_PATH when building mac binding projects, so that
when building from VSfM when the Xcode in VSfM differs from the system Xcode
(according to xcode-select) the Xcode command-line tools don't end up confused
and fail in strange ways.
2017-09-27 10:48:51 +02:00
Rolf Bjarne Kvinge 49223162be Add support for NSDirectionalEdgeInsets NSValues to the BindAs attribute. 2017-09-26 16:14:44 +02:00
Rolf Bjarne Kvinge 9114a12800 [tests] Make more tests Xcode-version-aware. 2017-09-26 16:14:44 +02:00
Rolf Bjarne Kvinge e540eb7cac [tests] Update tests since BindAs supports conversions between enums and NSNumber. 2017-09-26 16:14:42 +02:00
Rolf Bjarne Kvinge 1702359b21 [registrar] Verify if the BindAs type matches the type in the method signature. 2017-09-26 16:14:42 +02:00
Rolf Bjarne Kvinge 7816a686e8 [registrar] Add support for BindAs conversion between NSNumber and enums. 2017-09-26 16:14:42 +02:00
Rolf Bjarne Kvinge 2d12c18645 [tests] Restrict some tests to the required Xcode version. 2017-09-26 16:14:42 +02:00
Rolf Bjarne Kvinge 34f31b5b34 [linker] Preserve smart enum conversion methods when needed. 2017-09-26 16:14:42 +02:00
Rolf Bjarne Kvinge 5e7768e5ff [mtouch] Minor adjustments to get error messages right. 2017-09-26 16:14:41 +02:00
Rolf Bjarne Kvinge 66a25bb6ef [mtouch] Minor adjustments to get error messages right. 2017-09-26 16:14:41 +02:00
Rolf Bjarne Kvinge 4ee7792151 [tests] Use a smart enum type available in all profiles for generated tests. 2017-09-26 16:14:41 +02:00
Rolf Bjarne Kvinge eea87f4889 [tests] Add mtouch tests for the BindAs attribute. 2017-09-26 16:14:41 +02:00
Rolf Bjarne Kvinge fecf315fab [tests] Add generated runtime tests for the BindAs attribute. 2017-09-26 16:14:40 +02:00
Alex Soto 444f51c068 [generator] Persist BindAs attribute information in generated code.
Persisting BindAs attributes is required for the registrars to be able to
handle methods with BindAs attributes correctly.

Generator diff: https://gist.github.com/rolfbjarne/0fafbce9373ff1f407839a20ea5e72e9
2017-09-26 15:45:13 +02:00
Rolf Bjarne Kvinge 40d9cb9bf1 Merge remote-tracking branch 'origin/master' into bindas-registrar-support 2017-09-26 10:58:35 +02:00
Rolf Bjarne Kvinge cd542a0845 [generator] Remove non-IKVM code. (#2769) 2017-09-25 14:37:51 -04:00
Timothy Risi 9ffe563de4 [macOS] Fix new xtro failures introduced by the xcode9 branch (#2741) 2017-09-25 09:52:17 -08:00
Timothy Risi 65daac9573 [macOS] Fix new xtro failures introduced by the xcode9 branch (#2741) 2017-09-25 09:50:44 -08:00
Rolf Bjarne Kvinge 3335604454 [xharness] Add support for generating only specific variations for iOS projects. Fixes #57529 (#2751) (#2767)
And use it to skip watchOS tests for Mono.Security, since we don't ship Mono.Security.dll for watchOS.

https://bugzilla.xamarin.com/show_bug.cgi?id=57529
2017-09-25 10:16:07 -04:00
Alex Soto d2415cae1f [CoreAnimation] CATextLayer.Alignment* strings should be CATextLayerAlignment enum / type. Fixes bug 59537 (#2723)
https://bugzilla.xamarin.com/show_bug.cgi?id=59537

Removes constants from `CATextLayer` (only for XAMCORE_4_0) and creates
two smart enums `CATextLayerTruncationMode` and `CATextLayerAlignmentMode`.
Also this introduces two new strong properties into CATextLayer class,
`TextTruncationMode` and `TextAlignmentMode` that takes the new enums
respectively, these new properties are meant to replace their
string counterparts `TruncationMode` and `AlignmentMode`.
2017-09-25 10:12:53 -04:00
Rolf Bjarne Kvinge b38c114fbe Add support for NSDirectionalEdgeInsets NSValues to the BindAs attribute. 2017-09-25 16:06:50 +02:00
Rolf Bjarne Kvinge 517c90ad01 [tests] Make more tests Xcode-version-aware. 2017-09-25 16:06:39 +02:00
Rolf Bjarne Kvinge 613e84ac47 Merge remote-tracking branch 'origin/master' into HEAD 2017-09-25 13:20:30 +02:00
Rolf Bjarne Kvinge fdaeb9f2d2 [xharness] Don't try to run 32-bit tests on devices that don't support 32-bits. (#2749) 2017-09-22 19:53:35 +02:00
Chris Hamons 76b759ef22 Disable link-keep-resources-2 test (#2758)
- A change in mono added a small xml file to the resources, causing the test to fail
- Fix exists in mono/linker but 20 commits behind head, too risky to bump just for a test fix
- Will be fixed in mono's 2017-08 branch
- https://bugzilla.xamarin.com/show_bug.cgi?id=59277
2017-09-22 11:52:19 -05:00
Rolf Bjarne Kvinge bf6f4e9498 [xharness] There's no need to wait for simulators/devices to load. (#2748)
We construct every test case independent of whether a simulator or device is
available, which means we don't have to wait for simulators/devices to load
before creating test cases. Enumerating the available simulators/devices will
still block until loading is complete, but that only happens when we want to
run a test (after building it).

This makes the initial load much faster, since listing devices is becoming
slower now.
2017-09-22 18:06:21 +02:00
Rolf Bjarne Kvinge 8518e57f12 [xharness] Make EndWith comparison ordinal. (#2750) 2017-09-22 18:06:09 +02:00
Rolf Bjarne Kvinge 0603fbad9e [xharness] Fix javascript to work in Safari 11. (#2755)
There seems to be two bugs:

1. Comparing identical styles returns false (although this may just be how javascript works).

2. Given the following:

    ar_obj.style.display = 'hide';
    new_obj.style.display = 'hide';
    ar_obj.style = new_obj.style;
    // now ar_obj.style.display == 'block'. HUH!?!

    I can't fathom how this is expected, but Chrome shows the same behavior. Yay javascript.

Fix this by not trying to assign identical styles, by comparing the css text
instead of the style objects.
2017-09-22 18:05:51 +02:00
Rolf Bjarne Kvinge 551000c185 [xharness] Bump the device listing timeout to 2 minutes. (#2754)
Based on local experiments, sometimes it takes over a minute now 😞
2017-09-22 18:05:21 +02:00
Rolf Bjarne Kvinge e66bd67ab7 [xharness] Build with MSBuild. (#2752)
Time to embrace C# 7.
2017-09-22 18:05:11 +02:00
Rolf Bjarne Kvinge 1ba523011a [xharness] Add support for manually reloading devices/simulators from the html UI. (#2753)
This is useful when forgetting to plug in a device before launching the web ui.
2017-09-22 18:04:55 +02:00
Sebastien Pouliot 8b0992574a [tests] Fix linksdk WebKit_NSProxy test. Fixes #59671 (#2746) (#2756)
In release (optimize) mode the compiler would eliminate the unused

> var t = typeof (WKWebView);

which means the linker would never see `WKWebView`, which in turns
removed `NSProxy`.

Original bug: https://bugzilla.xamarin.com/show_bug.cgi?id=59247
Original PR: https://github.com/xamarin/xamarin-macios/pull/2732

https://bugzilla.xamarin.com/show_bug.cgi?id=59671
2017-09-22 12:04:37 -04:00
Rolf Bjarne Kvinge 71a17aa673 [xharness] Add support for generating only specific variations for iOS projects. Fixes #57529 (#2751)
And use it to skip watchOS tests for Mono.Security, since we don't ship Mono.Security.dll for watchOS.

https://bugzilla.xamarin.com/show_bug.cgi?id=57529
2017-09-22 18:04:32 +02:00
Chris Hamons 3d139a3315 Disable link-keep-resources-2 in d15-5 branch (#2744)
- A change in mono added a small xml file to the resources, causing the test to fail
- Fix exists in mono/linker but 20 commits behind head, took risky to bump just for a test fix
- https://bugzilla.xamarin.com/show_bug.cgi?id=59277
2017-09-22 09:03:00 -05:00
Rolf Bjarne Kvinge a979a10412 Merge remote-tracking branch 'origin/master' into bindas-registrar-support 2017-09-22 10:50:07 +02:00
Sebastien Pouliot 90bc97c35b [tests] Add a better version check for PR2733 GKAgent3D test (#2747) 2017-09-22 07:15:32 +02:00
Sebastien Pouliot 990842ea3f [tests] Fix linksdk WebKit_NSProxy test. Fixes #59671 (#2746)
In release (optimize) mode the compiler would eliminate the unused

> var t = typeof (WKWebView);

which means the linker would never see `WKWebView`, which in turns
removed `NSProxy`.

Original bug: https://bugzilla.xamarin.com/show_bug.cgi?id=59247
Original PR: https://github.com/xamarin/xamarin-macios/pull/2732

https://bugzilla.xamarin.com/show_bug.cgi?id=59671
2017-09-22 07:14:43 +02:00