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

7267 Коммитов

Автор SHA1 Сообщение Дата
Marius Ungureanu 775fbf56d0 Optimize a bit of the runtime sorting code by avoiding branches (#7145)
It is the more common and optimized idiom to just substract two integer values rather than do conditional checks. This may yield better performance for the qsort function, improving a bit of the startup time in case of many items

* Use a better, non-overflowing version with bit twiddling hacks.

Credits to @mandel-macaque for the magic
2019-10-24 16:59:36 -04:00
Connor Adsit 0f7213d481 Notarization tweaks (take 2) (#7287)
* Only notarize CI builds; timeout after 90 min

* Update jenkins/Jenkinsfile

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>

* Don't upload notarized pkgs if it fails

* Update jenkins/Jenkinsfile

Co-Authored-By: Manuel de la Pena <mandel@microsoft.com>
2019-10-24 07:48:50 +02:00
Vincent Dondain 8e2f221063
Update APIDIFF_REFERENCES to track current stable (13.4/6.4) (#7253) 2019-10-23 15:49:03 -04:00
Rolf Bjarne Kvinge 7df9ddd973
[xharness] Fix a process argument typo. (#7284) 2019-10-23 19:05:54 +02:00
Rolf Bjarne Kvinge e919ae7f7a Revert "Only notarize CI builds; timeout after 90 min (#7280)"
This reverts commit cd396d63cc.
2019-10-23 08:10:47 +02:00
Connor Adsit cd396d63cc Only notarize CI builds; timeout after 90 min (#7280)
* Only notarize CI builds; timeout after 90 min

* Update jenkins/Jenkinsfile

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>
2019-10-23 07:46:55 +02:00
William Kent 8425129eeb Add bindings for NSXpcConnection and related types (#7001)
* Add bindings for NSXpcConnection and related types

* Re-add accidentally deleted file

* Typo fix

* Add NSXpcInterface.CreateForType()

* Add MethodInfo-taking overloads to NSXpcInterface

* Add null check

* Mark methods with wrappers as internal

Also fixed a formatting bug that I didn't catch earlier.

* Change NSXPCProxyCreating methods to be strongly typed

I got rid of the NSXpcProxyCreating interface in this change,
because its only user was NSXpcConnection, and I needed to
inline the protocol methods into the class definition so I
could mark them as [Internal].

* Add missing casts

* Add NSXpcConnectionOptions enum

* Convert NSXpcConnection constructor to use new enum

* Remove now-unneeded manual constructor

* Fix bgen warning

* Typo fix

* Fix selector

* Remove incorrect use of BindAsAttribute

Per the docs, this only works for enums backed
by NSNumber and NSValue, not for enums
passed directly as integers.

* Fix duplicated selector errors

* Throw ArgumentException instead of InvalidOperationException

* Extend AppExtension targets to produce XPC services

Rather than create an entirely new set of targets
(that would require VS and VSMac updates to properly
consume), I have decided to use the existing AppExtension
build targets to produce XPC services as well. All the
user must do is set the $(IsXPCService) property to true in
their project file, and the targets will do The Right Thing™.

Note that this support is Mac-only for now; I may need a bit
of help adjusting them to work on for iOS/watchOS/tvOS, as I
am not as familiar with those platforms.

* Copy XPC service bundles into the correct location

* Move IsXPCService property definition to props file

* Don't pass /extension to mmp for XPC service targets

This would cause the XPC service binary to
be linked incorrectly.

* Add NSXpcConnection/NSXpcInterface.cs files to the build

* Fix build

* Fix build

* Add required type parameter requirements

* Fix type parameter requirements

* Fix return type

* Fix return type of NSXpcInterface.CreateForProtocol ()

* Take ownership of the returned object types

* Adjust XPC service mmp invocation

I need to link the XPC service bundle as if it is an app extension, but
I must not use xamarin_mac_extension_main. I added a new flag to make
this possible.

* Change mmp to correctly construct XPC service bundle

* Set the MonoBundleExecutable Info.plist key for XPC services

* Use the runtime to get the protocol

* Make NSXpcInterface.CreateForProtocol() public

The static registrar must be used for Cocoa to accept the protocol
as a valid XPC interface, but that then seems to break resolving
the protocol from the type. I must therefore hard-code the protocol
name in my code, and that requires I make this constructor public.

* Add XpcInterfaceAttribute

See the doc comment in XpcInterfaceAttribute.cs for why
this type is required. The referenced mmp optimizations
will be added in future commits.

* Add XpcInterfaceAttribute to generator build

* Add support for XpcInterfaceAttribute to the generator

* Force static generation of protocols decorated with XpcInterfaceAttribute

* Change how static registrar translates block parameters

Previously, they would always be marshalled as "id".
This would throw off the XPC subsystem, which parses
the block signature to determine the communication
protocol.

* Undo whitespace noise

* Remove unneeded casts

* Add trailing comma

* Use HasAttribute instead of GetCustomAttribute

* Fix style issues

* Bind NSXpcConnection.auditSessionIdentifier

* Address naming feedback

* Make Get/SetAllowedClasses public

IMHO, passing the selector as a string is just as
usable as passing a MethodInfo, and is also less
verbose if you copy/paste the selector string
from the ExportAttribute. There is no reason why
we cannot have both overloads be public.

* Update overload names to match

* Update more overload names to match

* Make mmp --xpc imply --extension

* Reformat if statement

* Fix build

* Conditionalize creation of PlugIns and XPCServices directories

* Add AutoGeneratedName

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>

* Get rid of ProtocolizeAttribute

* Update availability attributes to please xharness

I actually think xharness is wrong here, since the
NSXPCConnection header lists these types as being
available starting in macOS 10.8.

* Update sharpie ignore files to reflect changes

This should fix the xtro-sharpie test failures CI has been reporting.

* Fix MM4105 error generation

* Adjust error message in test to match mmp

I had to change the error text slightly, because the type of the parameter
cannot be determined where the error is thrown anymore. However, the newer
exception message IMO is just as clear.

* Make exception message match test exactly

* Remove outdated copyright header text

* Remove more outdated copyright header text

* Revert changes to MM4105 error generation

I have a more elegant way of fixing this test now.

* Return "id" if Invoke method cannot be found

This fixes the MM4105 error unit test,
without requiring modification to that test.

* Remove redundant availability attributes

* Add DesignatedInitializerAttribute

* Re-add required code to macOS-Foundation.ignore

* Put DesignatedInitializer on the right constructor

* Update xtro-sharpie ignore files
2019-10-22 15:38:01 +02:00
Rolf Bjarne Kvinge f496904082
[tests] Fix tests on Catalina. (#7255)
* [monotouch-test] Percent-escape some local file paths. Fixes xamarin/maccore#2032.

Fixes this xammac test failure when the csproj has paths in its path:

    1) GetCaption (MonoTouchFixtures.MediaAccessibility.ImageCaptioningTest.GetCaption)
       System.Exception : Could not initialize an instance of the type 'Foundation.NSUrl': the native 'initWithString:' method returned nil.
    It is possible to ignore this condition by setting ObjCRuntime.Class.ThrowOnInitFailure to false.
      at Foundation.NSObject.InitializeHandle (System.IntPtr handle, System.String initSelector) [0x000ab] in <c93a0a20c5e340cb9a858d96ecca3415>:0
      at Foundation.NSUrl..ctor (System.String urlString) [0x00044] in <c93a0a20c5e340cb9a858d96ecca3415>:0
      at MonoTouchFixtures.MediaAccessibility.ImageCaptioningTest.GetCaption () [0x00076] in <7a733573c3684923854270073138d4be>:0
      at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
      at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <9c0bd541400747ef85267f70e32bd8e4>:0

Fixes https://github.com/xamarin/maccore/issues/2032.

* [tests] Exclude MPS tests in the simulator on macOS 10.15+. Fixes xamarin/maccore#2030.

The simulator crashes when the app tests if MPS is supported...

Fixes https://github.com/xamarin/maccore/issues/2030.

* [tests] Remove 32-bit slice from macOS test libraries. Fixes xamarin/maccore#2031.

The 32-bit slice is causing a build failure on the bots:

    Task "Exec" (TaskId:35)
      Task Parameter:Command=make bin/SimpleClassDylib.dylib bin/SimpleClassStatic.a bin/Mobile-static/MobileBinding.dll (TaskId:35)
      Task Parameter:WorkingDirectory=/Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/mmptest//../mac-binding-project/ (TaskId:35)
      make bin/SimpleClassDylib.dylib bin/SimpleClassStatic.a bin/Mobile-static/MobileBinding.dll (TaskId:35)
      In file included from ../common/mac/SimpleClass.m:1: (TaskId:35)
      In file included from ../common/mac/SimpleClass.h:1: (TaskId:35)
      In file included from /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:13: (TaskId:35)
      In file included from /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h:27: (TaskId:35)
      In file included from /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSCollectionView.h:9: (TaskId:35)
    /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSViewController.h(247,39): error GF2D19E48: unknown type name 'NSExtensionContext'; did you mean 'NSAnimationContext'? [/Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/tmp-test-dir/mmptest/mmptest.csproj]
      @property (nullable, readonly,retain) NSExtensionContext *extensionContext API_AVAILABLE(macos(10.10)); (TaskId:35)
                                            ^ (TaskId:35)
      /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSAnimationContext.h:18:12: note: 'NSAnimationContext' declared here (TaskId:35)
      @interface NSAnimationContext : NSObject (TaskId:35)
                 ^ (TaskId:35)
      In file included from ../common/mac/SimpleClass.m:1: (TaskId:35)
      In file included from ../common/mac/SimpleClass.h:1: (TaskId:35)
      In file included from /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:13: (TaskId:35)
      In file included from /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h:99: (TaskId:35)
      In file included from /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSharingServicePickerTouchBarItem.h:9: (TaskId:35)
    /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSharingService.h(181,119): error GC04982C4: expected a type [/Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/tmp-test-dir/mmptest/mmptest.csproj]
      - (NSCloudKitSharingServiceOptions)optionsForSharingService:(NSSharingService *)cloudKitSharingService shareProvider:(NSItemProvider *)provider; (TaskId:35)
                                                                                                                            ^ (TaskId:35)
    /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSharingService.h(196,12): error G93352991: cannot find interface declaration for 'NSItemProvider' [/Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/tmp-test-dir/mmptest/mmptest.csproj]
      @interface NSItemProvider (NSCloudKitSharing) (TaskId:35)
                 ^ (TaskId:35)
      In file included from ../common/mac/SimpleClass.m:1: (TaskId:35)
      In file included from ../common/mac/SimpleClass.h:1: (TaskId:35)
      In file included from /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:13: (TaskId:35)
      In file included from /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h:250: (TaskId:35)
    /Applications/Xcode111.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSItemProvider.h(16,12): error G93352991: cannot find interface declaration for 'NSItemProvider' [/Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/xharness/tmp-test-dir/mmptest/mmptest.csproj]
      @interface NSItemProvider (NSItemSourceInfo) (TaskId:35)
                 ^ (TaskId:35)
      4 errors generated. (TaskId:35)
      make[1]: *** [bin/SimpleClass.i386.a] Error 1 (TaskId:35)

and since we don't need the 32-bit slice anymore, just remove it.

Fixes https://github.com/xamarin/maccore/issues/2031.
2019-10-19 00:01:53 +02:00
Rolf Bjarne Kvinge f4563c2f92
Bump mono to get archives built with Xcode 11.1. (#7237)
* Bump mono to get archives built with Xcode 11.1.

New commits in mono/mono:

* mono/mono@b601371d5f Update MERP event type to MonoAppCrash
* mono/mono@6184ff007b [2019-08][ci] Use Xcode11.1 and 11.2beta2 for XI/XM Mono SDK builds (#17324)
* mono/mono@8969f2cc99 [2019-08] [merp] Include any managed methods in the 'unmanaged_frames' portion … (#17316)
* mono/mono@3009440108 [2019-08][merp] Don't install SIGTERM handler in EnableMicrosoftTelemetry (#17308)

Diff: df5e13f95d..b601371d5f

* Fix accidental/mysterious/captivating/incorrect merge solution selected by git when merging d16-4/xcode11.1 into master.
2019-10-17 23:10:23 +02:00
Rolf Bjarne Kvinge ec62a8dd51
[tests] Fix tests after a modification to our dummy x86-64 slice in our shipping libraries. Fixes xamarin/maccore#2026. (#7241)
Previously we only had a single dynamic library that was used as the dummy
slice, but there may be a static library instead. So teach the tests about
that static library.

Fixes these test failures:

    1) Failed : Xamarin.Tests.ProductTests.MinOSVersion(iOS,MiniPhoneOS,IOS,True)
      Unexpected build version command in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/MonoTouch.iphoneos.sdk/usr/lib/libmono-profiler-log.a (x86-64-slice.o)
      Expected: IOS or 0
      But was:  MacOS
      at Xamarin.Tests.ProductTests.MinOSVersion (Xamarin.Tests.Profile profile, Xamarin.MachO+LoadCommands load_command, Xamarin.MachO+Platform platform, System.Boolean device) [0x00000] in <a0c772db19e5407bb3edc34b20e04476>:0

    2) Failed : Xamarin.Tests.ProductTests.MinOSVersion(watchOS,MinwatchOS,WatchOS,True)
      Unexpected build version command in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchOS.sdk/usr/lib/libmono-profiler-log.a (x86-64-slice.o)
      Expected: WatchOS or 0
      But was:  MacOS
      at Xamarin.Tests.ProductTests.MinOSVersion (Xamarin.Tests.Profile profile, Xamarin.MachO+LoadCommands load_command, Xamarin.MachO+Platform platform, System.Boolean device) [0x00000] in <a0c772db19e5407bb3edc34b20e04476>:0

    3) Failed : Xamarin.Tests.ProductTests.MinOSVersion(tvOS,MintvOS,TvOS,True)
      Unexpected build version command in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.AppleTVOS.sdk/usr/lib/libmono-profiler-log.a (x86-64-slice.o)
      Expected: TvOS or 0
      But was:  MacOS
      at Xamarin.Tests.ProductTests.MinOSVersion (Xamarin.Tests.Profile profile, Xamarin.MachO+LoadCommands load_command, Xamarin.MachO+Platform platform, System.Boolean device) [0x00000] in <a0c772db19e5407bb3edc34b20e04476>:0

Fixes https://github.com/xamarin/maccore/issues/2026.
2019-10-17 07:25:47 +02:00
Rolf Bjarne Kvinge ad0489f79c
Fix a few introspection issues on Catalina. (#7212) (#7239)
* [SceneKit] Adjust deprecation message.

Fixes this introspection failure:

    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Type: SCNLayer
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: get_OpenGLContext, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: set_OpenGLContext, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: get_PixelFormat, Type: SCNView
    [FAIL] [Rule 4] Don't use availability keywords in attribute's message: "OpenGL API deprecated, please use Metal instead." - Member name: set_PixelFormat, Type: SCNView

* [tests] Fix introspection and xammac tests on Catalina. (#7200)

* [tests] Adjust NaturalLanguage.EmbeddingTest to cope with non-existent embeddings. Fixes xamarin/maccore#2011.

Fixes https://github.com/xamarin/maccore/issues/2011.

* [tests] Fix typo test on macOS 10.15. Fixes #7116.

Fixes https://github.com/xamarin/xamarin-macios/issues/7116.

* [introspection] Ignore MTLCounterSampleBufferDescriptor's selectors.

They're implemented using a different/internal type:

    $ nm /System/Library/Frameworks/Metal.framework/Metal | grep MTLCounterSampleBuffer
    00000000000458ab t +[MTLCounterSampleBufferDescriptor allocWithZone:]
    0000000000045897 t +[MTLCounterSampleBufferDescriptor alloc]
    000000000004591e t -[MTLCounterSampleBufferDescriptor copyWithZone:]
    000000000004598e t -[MTLCounterSampleBufferDescriptorInternal copyWithZone:]
    0000000000045c0f t -[MTLCounterSampleBufferDescriptorInternal counterSet]
    0000000000045936 t -[MTLCounterSampleBufferDescriptorInternal dealloc]
    0000000000045b65 t -[MTLCounterSampleBufferDescriptorInternal hash]
    0000000000045a31 t -[MTLCounterSampleBufferDescriptorInternal isEqual:]
    0000000000045c58 t -[MTLCounterSampleBufferDescriptorInternal label]
    0000000000045c7f t -[MTLCounterSampleBufferDescriptorInternal sampleCount]
    0000000000045c25 t -[MTLCounterSampleBufferDescriptorInternal setCounterSet:]
    0000000000045c6e t -[MTLCounterSampleBufferDescriptorInternal setLabel:]
    0000000000045c90 t -[MTLCounterSampleBufferDescriptorInternal setSampleCount:]
    0000000000045c47 t -[MTLCounterSampleBufferDescriptorInternal setStorageMode:]
    0000000000045c36 t -[MTLCounterSampleBufferDescriptorInternal storageMode]
    000000000010b0b8 S _OBJC_CLASS_$_MTLCounterSampleBufferDescriptor
    000000000010b0e0 S _OBJC_CLASS_$_MTLCounterSampleBufferDescriptorInternal
    0000000000107070 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._counterSet
    0000000000107078 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._label
    0000000000107088 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._sampleCount
    0000000000107080 S _OBJC_IVAR_$_MTLCounterSampleBufferDescriptorInternal._storageMode
    000000000010b108 S _OBJC_METACLASS_$_MTLCounterSampleBufferDescriptor
    000000000010b130 S _OBJC_METACLASS_$_MTLCounterSampleBufferDescriptorInternal

Fixes these test failures:

    1) ApiSelectorTest.InstanceMethods (Introspection.MacApiSelectorTest.ApiSelectorTest.InstanceMethods)
         8 errors found in 26658 instance selector validated:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : counterSet
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setCounterSet:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : label
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setLabel:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : sampleCount
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setSampleCount:
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : storageMode
    Selector not found for Metal.MTLCounterSampleBufferDescriptor : setStorageMode:

* [introspection] Ignore some API we've bound incorrectly. Fixes #7116.

There are also a few API fixes, those will be submitted in a different PR.

Fixes https://github.com/xamarin/xamarin-macios/issues/7116.
2019-10-17 07:20:22 +02:00
Rolf Bjarne Kvinge ec2cc43770
Bumping mono requires might require re-creating Make.config.inc. (#7238)
If the new mono commit has (or doesn't have) mono archives.
2019-10-16 22:23:36 +02:00
Rolf Bjarne Kvinge bdc8e693f9
[msbuild] Provide the correct value for the operating system for tvOS and watchOS to a few tasks. Fixes #6200. (#7226)
The problem with #6200 was that we'd pass -mios-version-min=x.y to the metal
tool even for tvOS apps. This fixes it so that now pass -mtvos-version-min.

Fixes https://github.com/xamarin/xamarin-macios/issues/6200.
2019-10-16 22:14:11 +02:00
Waleed Chaudhry c156a30a0b
Bump prebuilt-apps for SampleTester (#7230) 2019-10-15 18:29:27 -04:00
Rolf Bjarne Kvinge cd2e86e86d
[xharness] Fix typo when launching mlaunch to get crash reports. (#7234) 2019-10-15 21:59:35 +02:00
Vincent Dondain 5e837a755a
Merge pull request #7210 from VincentDondain/master-merge-d16-4
Merge d16-4 (with xcode11.1 bits) into master
2019-10-15 14:38:40 -04:00
Rolf Bjarne Kvinge e32731cb3d
[sampletester] Timestamp build logs. (#7233)
Makes it easier to figure out timeouts sometimes.
2019-10-15 15:16:02 +02:00
Rolf Bjarne Kvinge e7da76d103
Bump mono to get test fixes for xamarin/maccore#2021. (#7225)
Fixes https://github.com/xamarin/maccore/issues/2021.

New commits in mono/mono:

* mono/mono@df5e13f95d [tests] Bump corefx to get Azure testhost change (#17275)
* mono/mono@11e1499c22 [2019-08] [merp] Print missing status marker file for stage 1 (setup) (#17220)
* mono/mono@7dbad3c361 [arm] Fix fetching of method addresses (#17253)
* mono/mono@9a88a36789 [sgen] Fix invalid value passed to write barrier (#17247)
* mono/mono@0f241c975c [2019-08] Add drawing type converters to mobile profiles (#17240)
* mono/mono@7ebe1a1763 Update Roslyn to 3.4.0-beta2-19477-01
* mono/mono@b759449ba8 Bump msbuild to track mono-2019-08
* mono/mono@617f399efc [IO] Remove read-only logic in mono_w32_get_disk_free_space (#17211)
* mono/mono@77258ea112 [2019-08] [debugger][exception] Debugger breaks on handled exceptions (#17202)
* mono/mono@f83c321f88 Bump msbuild to track mono-2019-08 (#17193)
* mono/mono@1ecd094b44 [2019-08] [Mono.Debugger.Soft] Fix VirtualMachine detaching (#17077)
* mono/mono@54a33be9de [merp] Put thread into async context before running summarizer (#17197)
* mono/mono@72128bb00d Bump libgdiplus to 6.0.4
* mono/mono@65a972c033 Always do copy_stack_data on entering GC safe/unsafe mode. (#17184)
* mono/mono@9e6def1553 [merp] exit_status is 0 if we ran the uploader successfully (#17187)
* mono/mono@8a707cc012 [2019-08] [reflection] Only duplicate MonoMarshalSpec strings for custom types (#17189)
* mono/mono@bd72952cf8 [2019-08] [merp] Don't overrun buffer in copy_summary_string_safe … (#17178)
* mono/mono@b6efc0cc90 Bump msbuild to track xplat-master (#17132)
* mono/mono@2869cd5f67 Bump ikvm to get https://github.com/mono/ikvm-fork/pull/13 (#17170)
* mono/mono@a64a25695d [2019-08] [merp] Use macOS version not Darwin version in MERP reports (#17147)
* mono/mono@57f068438d [2019-08] [merp] Add API method that whitelists all native libraries (#17128)

Diff: 528103728f..df5e13f95d
2019-10-15 11:04:57 +02:00
Bernhard Urban-Forster d5ff125555 [build] fix Makefile around x86-64-slice (#7219)
* [build] fix Makefile around x86-64-slice

a7fd4552dc was slightly wrong, it should have broken all tests around notarization (which are presumably not done for PRs).

Also adding a missing dependency.

* typo

* $(suffix $@) does not work when specified as dependency

* update .gitignore

* Update builds/Makefile

Co-Authored-By: Rolf Bjarne Kvinge <rolf@xamarin.com>
2019-10-15 08:16:24 +02:00
Vincent Dondain 61d0e1809f Merge remote-tracking branch 'origin/master' into master-merge-d16-4 2019-10-14 18:17:35 -04:00
Vincent Dondain a71292165e Merge branch 'd16-4' into master-merge-d16-4 2019-10-14 18:06:42 -04:00
Rolf Bjarne Kvinge dee19397f7
[mmp] Add deployment target to the -fobjc-runtime clang argument. Fixes #7204. (#7227)
This is required when also passing the -fobjc-arc argument.

Fixes https://github.com/xamarin/xamarin-macios/issues/7204.
2019-10-14 22:25:58 +02:00
Vincent Dondain c9d7bb7d0c
[monotouch-test] Fix RejectSslCertificatesServicePointManager test after bad merge (#7203) 2019-10-14 14:14:26 -04:00
Waleed Chaudhry 366da20ff0
Bump samples tester for ios-samples and xamarin-form-samples (#7166) 2019-10-14 11:30:11 -04:00
Rolf Bjarne Kvinge a8fdf6db6e
Implement a different escaping/quoting algorithm for arguments to System.Diagnostics.Process. (#7177)
* Implement a different escaping/quoting algorithm for arguments to System.Diagnostics.Process.

mono changed how quotes should be escaped when passed to
System.Diagnostic.Process, so we need to change accordingly.

The main difference is that single quotes don't have to be escaped anymore.

This solves problems like this:

    System.ComponentModel.Win32Exception : ApplicationName='nuget', CommandLine='restore '/Users/vsts/agent/2.158.0/work/1/s/tests/sampletester/bin/Debug/repositories/ios-samples/WorkingWithTables/Part 3 - Customizing a Table\'s appearance/3 - CellCustomTable/CellCustomTable.sln' -Verbosity detailed -SolutionDir '/Users/vsts/agent/2.158.0/work/1/s/tests/sampletester/bin/Debug/repositories/ios-samples/WorkingWithTables/Part 3 - Customizing a Table\'s appearance/3 - CellCustomTable'', CurrentDirectory='/Users/vsts/agent/2.158.0/work/1/s/tests/sampletester/bin/Debug/repositories', Native error= Cannot find the specified file
      at System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) [0x0029f] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-08/external/bockbuild/builds/mono-x64/mcs/class/System/System.Diagnostics/Process.cs:778

ref: https://github.com/mono/mono/pull/15047

* Rework process arguments to pass arrays/lists around instead of quoted strings.

And then only convert to a string at the very end when we create the Process
instance.

In the future there will be a ProcessStartInfo.ArgumentList property we can
use to give the original array/list of arguments directly to the BCL so that
we can avoid quoting at all. These changes gets us almost all the way there
already (except that the ArgumentList property isn't available quite yet).

We also have to bump to target framework version v4.7.2 from v4.5 in several
places because of 'Array.Empty<T> ()' which is now used in more places.

* Parse linker flags from LinkWith attributes.

* [sampletester] Bump to v4.7.2 for Array.Empty<T> ().

* Fix typo.

* Rename GetVerbosity -> AddVerbosity.

* Remove unnecessary string interpolation.

* Remove unused variable.

* [mtouch] Simplify code a bit.

* Use implicitly typed arrays.
2019-10-14 16:18:46 +02:00
Sebastien Pouliot 445bf4be07
[registrar] Increase code sharing in generated `native_to_managed_trampoline_*` functions (#7221)
Several functions were 100% identical except for their signature. However
the signature were over-specialized and simplifying them allows the
(already) present code merge feature to achieve much better results.

Final size impact will vary based on the API used (both the managed and
native linker can remove some) but the more API you use the more likely
the application included duplicate code.

**Before**

`tools/mtouch/Xamarin.iOS.registrar.ios.x86_64.m` has `native_to_managed_trampoline_[1..379]`

```
find tools/ -name Xamarin.*.a | xargs ls -l
-rw-r--r--  1 poupou  staff  4143148 11 Oct 15:09 tools//mmp/Xamarin.Mac.registrar.full.a
-rw-r--r--  1 poupou  staff  4139052 11 Oct 15:09 tools//mmp/Xamarin.Mac.registrar.full.x86_64.a
-rw-r--r--  1 poupou  staff  4143160 11 Oct 15:09 tools//mmp/Xamarin.Mac.registrar.mobile.a
-rw-r--r--  1 poupou  staff  4139064 11 Oct 15:09 tools//mmp/Xamarin.Mac.registrar.mobile.x86_64.a
-rw-r--r--  1 poupou  staff  4521752 11 Oct 15:09 tools//mtouch/Xamarin.iOS.registrar.ios.i386.a
-rw-r--r--  1 poupou  staff  9240416 11 Oct 15:09 tools//mtouch/Xamarin.iOS.registrar.ios.simulator.a
-rw-r--r--  1 poupou  staff  4714336 11 Oct 15:09 tools//mtouch/Xamarin.iOS.registrar.ios.x86_64.a
```

**After**

`tools/mtouch/Xamarin.iOS.registrar.ios.x86_64.m` has `native_to_managed_trampoline_[1..132]`

```
find tools/ -name Xamarin.*.a | xargs ls -l
-rw-r--r--  1 poupou  staff  3723012 11 Oct 14:57 tools//mmp/Xamarin.Mac.registrar.full.a
-rw-r--r--  1 poupou  staff  3718916 11 Oct 14:57 tools//mmp/Xamarin.Mac.registrar.full.x86_64.a
-rw-r--r--  1 poupou  staff  3723016 11 Oct 14:57 tools//mmp/Xamarin.Mac.registrar.mobile.a
-rw-r--r--  1 poupou  staff  3718920 11 Oct 14:57 tools//mmp/Xamarin.Mac.registrar.mobile.x86_64.a
-rw-r--r--  1 poupou  staff  3995520 11 Oct 14:57 tools//mtouch/Xamarin.iOS.registrar.ios.i386.a
-rw-r--r--  1 poupou  staff  8195748 11 Oct 14:57 tools//mtouch/Xamarin.iOS.registrar.ios.simulator.a
-rw-r--r--  1 poupou  staff  4193956 11 Oct 14:57 tools//mtouch/Xamarin.iOS.registrar.ios.x86_64.a
```
2019-10-11 22:18:58 -04:00
Rolf Bjarne Kvinge 911d127335
Bump system mono to get fix for mono/mono#17151. (#7220)
mono/mono#17151 prevents xharness from running tests on Catalina, because
xharness thinks the root drive has no more space.
2019-10-11 20:08:59 +02:00
Bernhard Urban-Forster a7fd4552dc [build] lipo x86-64-slice into libs according to their kind (#7217)
The result of `lipo`ing `.a`s and `.dylib`s together is not well defined.
In this specific case, using `lipo` on `libmonosgen-2.0.a` to inject `x86-64-slice.dylib` resulted into `dsymutil` (run by `mtouch` when building the app) not finding the proper debug information anymore.

Also putting the dummy slice into a file and adding `-ggdb3` to avoid those warnings:

```console
$ dsymutil ./_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/MonoTouch.iphoneos.sdk/usr/lib/libmonosgen-2.0.dylib
warning: (x86_64) /var/folders/p3/5279mmgn1p575bz28j0ngfqw0000gn/T/--19c1b5.o unable to open object file: No such file or directory
warning: no debug symbols in executable (-arch x86_64)
```
2019-10-11 07:08:42 +02:00
Rolf Bjarne Kvinge f8f7de004c
[tests] Fix introspection and xammac tests on Catalina. (#7200)
* [tests] Adjust NaturalLanguage.EmbeddingTest to cope with non-existent embeddings. Fixes xamarin/maccore#2011.

Fixes https://github.com/xamarin/maccore/issues/2011.

* [tests] Fix typo test on macOS 10.15. Fixes #7116.

Fixes https://github.com/xamarin/xamarin-macios/issues/7116.
2019-10-10 08:35:38 +02:00
monojenkins 36040b55ca [Tests] Add the new test dll from mono to xharness. (#7189)
Following PR  https://github.com/xamarin/xamarin-macios/pull/7147 we
have a new dll and therefore new tests to run.

Fixes: https://github.com/xamarin/xamarin-macios/issues/7148
2019-10-09 15:37:00 -04:00
Rolf Bjarne Kvinge 2e360ee4e2
Merge pull request #7190 from VincentDondain/d16-4-merge-xcode11.1
Merge xcode11.1 into d16-4
2019-10-08 12:47:24 +02:00
Manuel de la Pena 118fac4c2a
[Tests] Add the new test dll from mono to xharness. (#7188)
Following PR  https://github.com/xamarin/xamarin-macios/pull/7147 we
have a new dll and therefore new tests to run.

Fixes: https://github.com/xamarin/xamarin-macios/issues/7148
2019-10-07 21:52:03 -04:00
Vincent Dondain a3076f29a3 Merge branch 'xcode11.1' into d16-4 2019-10-07 21:46:13 -04:00
Rolf Bjarne Kvinge 33e78af34e Merge remote-tracking branch 'origin/d16-3' into xcode11.1 (#7178)
* [xharness] Fix incorrect merge. (#7033)

Add new device tasks to the right list so that they're processed and marked as
ignored correctly later.

* Bump maccore for device scheduling fix (#7029)

New commits in xamarin/maccore:

* xamarin/maccore@3064e2c463 [device-builds] Fix if condition typo (double `[`) (#1986)
* xamarin/maccore@e8bdf7a70f [tests] Treat Xcode GM as beta so we don't have to update all devices to GM (#1964) (#1973)

Diff: a86e78a3a1..3064e2c463

* Use Xcode 11 final (#7073)

It's the same hash as Xcode 11 GM 2 but it's cleaner to actually use `Xcode11.app`.

In addition: the device bots are looking for "GM" and "beta" in the Xcode name to run on either the stable or beta pool.

* [builds] Stop shipping the 32-bit AOT compiler for Xamarin.Mac. (#7042)

* [d16-3] Bump mono 2019-06@5608fe0a (#7126)

* [d16-3] Bump mono 2019-06@5608fe0a

New commits in mono/mono:

* mono/mono@5608fe0abb [2019-06] Update NETStandard 2.1 APIs (#17081)
* mono/mono@a5b8d6fcb5 [2019-06] Fix time zone issue when jumping into DST (#17062)
* mono/mono@390e6e124f Revert "[metadata] Fix leaks when handling a few attributes (#16675) (#16851)"
* mono/mono@459dd927df [2019-06] Bump bockbuild to get https://github.com/mono/bockbuild/pull/121
* mono/mono@beb9a1b182 [sdks] Remove the mac32 build.
* mono/mono@747a919a06 [ci] Make ios/mac sdks archive URL more predictable
* mono/mono@114013096e [ci] Build iOS/Mac Mono sdks archive using Xcode 11
* mono/mono@10a24f3ea1 Implement WriteCore and ReadCore in DeflateStream
* mono/mono@a925846b1f [offsets-tool] Install clang into the user-specific python directory. (#16933)
* mono/mono@fe64a4765e [2019-06] Bump msbuild and sdk versions to 3.0.1xx latest (#16870)
* mono/mono@7293597b90 [corlib] Fix building nunit-lite twice (#16910)
* mono/mono@1648e88687 Rename bundle identifier for the various Mono.frameworks we create for Xamarin.iOS. Fixes xamarin/xamarin-macios#7005. (#16896)
* mono/mono@a6b5187d76 [metadata] Fix leaks when handling a few attributes (#16675) (#16851)
* mono/mono@7da9a041b3 [2019-06] Bump to mono/corefx@e79cf5b
* mono/mono@2b7050bdf3 [2019-06] Add RenamedEvent* to FSW sources from CoreFX (#16758)
* mono/mono@4f5ed502c6 [msbuild] pick up p4 versions
* mono/mono@f04ee2219d [2019-06][msbuid][roslyn] Bump msbuild and roslyn-binaries to pick up dotnet 3.0.100-p9 toolset
* mono/mono@6b4b99e571 Vtable [i] can be null so this should be check before use it. Fixes #16712

Diff: 7af64d1ebe..5608fe0abb

* [tests] Adjust to non-fat macOS libraries from mono.

* [monotouch-test] Fix UrlProtocolTest after a server we don't control changed its output. Fixes xamarin/maccore#2006. (#7157)

microsoft.com is doing user agent sniffing, and broke our our test since their
output is now different. Switch to example.com instead.

Fixes https://github.com/xamarin/maccore/issues/2006.
2019-10-07 20:51:21 -04:00
Vincent Dondain 8987465a62 Update 'xcode11.1' package version and Xcode path (#7186)
We'll be releasing from the `xcode11.1` branch, therefore we need to move to the stable version scheme (even numbers).
In addition, since Xcode is out of GM we need to update the Xcode path so the stable device bots pickup those builds.
2019-10-07 19:54:11 -04:00
Pramit Mallick 3a69f54564
changed AudioTypes enum (#7185) 2019-10-07 18:29:30 -04:00
monojenkins e2963d9e24 [xcode11.1] [Foundation] Remove a possible race condition when interacting with the notification centre. (#7184)
* [Foundation] Remove a possible race condition when intereacting with the notification centre.

Although it looked that it was not possible, due to the fact that the
RemoveObserversFromList oes lock on the list of observers, we have
threads that are stepping on each other when the list is cleaned up.
Adding a lock around the AddObserver and RemoveObserver will ensure that
the handler does not call the removal more than once with an object that
was already removed.

Fixes https://github.com/xamarin/xamarin-macios/issues/6387

* Move the removal of the notification to inside the lock in the dispose method.

* Better locking as per reviews.
2019-10-07 14:11:54 -04:00
Rolf Bjarne Kvinge d354048c65
Automatically build mono from source if any of the archives aren't available. (#7160) (#7180)
* Automatically build mono from source if any of the archives aren't available.

* [jenkins] Show in the PR report if mono was built from source.

* [jenkins] Make sure we got everything after running configure.
2019-10-07 16:32:00 +02:00
Vũ Đức Tuyến fec41fa64a Fix #7174: ArgumentNullException for NSExpression.FromConstant (#7181)
* - Add missing NullAllowed attribute
- Add unit test for null value

* Normalize coding style
2019-10-07 14:09:17 +02:00
monojenkins c7830a082f [bcl-tests] Ignore test that's running out of memory (#7138)
- First appeared here: https://github.com/xamarin/xamarin-macios/pull/7127#issuecomment-536688551
- Mono issue filed here: https://github.com/mono/mono/issues/17129
2019-10-04 14:57:22 -04:00
Alexander Köplinger 12831b3c36 Fix version numbers in FrameworkList.xml files (#7161)
The existing test only checked that an assembly was mentioned in the file, but not that its version etc matches.
Updated the test and fixed the differences.
2019-10-04 14:26:28 -04:00
Rolf Bjarne Kvinge bffca7df7b
[tests] Fix building the test libraries. (#7172)
Fix building the test libraries so that the native compiler gets passed the
right arguments (which makes us build the tvOS and watchOS versions of these
libraries with bitcode).

This fixes a build problem with the framework-test test for tvOS and watchOS.

Also remove an outdated comment.
2019-10-04 16:51:12 +02:00
Sebastien Pouliot 02b546ffc1
[registrar] Fix assignation of `value` to IsConstructor (#7167)
It does not look like an issue, at least today, since it's always set to
`false` but better fix it before it becomes an hard to debug issue

```
$ git grep "IsConstructor = "
src/ObjCRuntime/Registrar.cs:                                                           IsConstructor = false,
src/ObjCRuntime/Registrar.cs:                                                                   IsConstructor = false,
src/ObjCRuntime/Registrar.cs:                                                   IsConstructor = false,
```
2019-10-04 08:56:33 -04:00
Rolf Bjarne Kvinge 4e5a2a3fc2
Automatically build mono from source if any of the archives aren't available. (#7160)
* Automatically build mono from source if any of the archives aren't available.

* [jenkins] Show in the PR report if mono was built from source.

* [jenkins] Make sure we got everything after running configure.
2019-10-04 09:55:29 +02:00
Vincent Dondain 2600739f54
[bcl-tests] Ignore test that's running out of memory (#7137)
- First appeared here: https://github.com/xamarin/xamarin-macios/pull/7127#issuecomment-536688551
- Mono issue filed here: https://github.com/mono/mono/issues/17129
2019-10-03 18:21:23 -04:00
Rolf Bjarne Kvinge 8128976084
[runtime] Split the build differently: build libraries for simulator and device separately. (#7143)
This has a couple of advantages:

* It makes it easier to add a catalyst version of these libraries (because it
  becomes cumbersome to build for catalyst when the build rules assumes we're
  building for both simulator and device).
* It makes it easier to create an xcframework of our libraries, because the
  contents in an xcframework is split like this.
2019-10-03 16:38:44 +02:00
Manuel de la Pena 718f57f7ad
[Tests] Ignore some tests when using the interpreter (#7158)
Some tests do fail with the interpreter on tvOS. Ignoring them only
there.

Fixes https://github.com/xamarin/maccore/issues/1909
2019-10-02 18:12:20 -04:00
monojenkins dcad385e4e [monotouch-test] Fix UrlProtocolTest after a server we don't control changed its output. Fixes xamarin/maccore#2006. (#7156)
microsoft.com is doing user agent sniffing, and broke our our test since their
output is now different. Switch to example.com instead.

Fixes https://github.com/xamarin/maccore/issues/2006.
2019-10-02 18:08:18 +02:00
monojenkins c7d9fc10f8 [d16-4] [AppKit] Add missing Accessibility protocols. (#7146)
* [AppKit] Add missing Accessibility protocols.

This commit adds a few protocols that were missing. It is interesting to
mention that there are two of the protocols that are decorated with
NS_PROTOCOL_REQUIRES_EXPLICIT_IMPLEMENTATION, as per Apple documentation
this means that:

'Unlike normal protocols, when you adopt one of the role-specific protocols,
 Xcode may ask you to reimplement methods that have already been implemented
 by one of your ancestors.

 In order to ensure that your control returns accurate and useful information,
 some methods are tagged with the NS_PROTOCOL_REQUIRES_EXPLICIT_IMPLEMENTATION
 attribute. For these methods, you need to override your superclass’s
 implementation with your own.
'

In this case, we need to add the methods from all the parent classes and
set them to be [Abstract] since they are required. Not all methods have
to be added ONLY the required ones.

fixes: https://github.com/xamarin/xamarin-macios/issues/7079

* Remove the new methods.
2019-10-02 11:04:41 -05:00
monojenkins bc35a27aad [monotouch-test] Fix UrlProtocolTest after a server we don't control changed its output. Fixes xamarin/maccore#2006. (#7155)
microsoft.com is doing user agent sniffing, and broke our our test since their
output is now different. Switch to example.com instead.

Fixes https://github.com/xamarin/maccore/issues/2006.
2019-10-02 16:50:08 +02:00