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

5560 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge 510bb0b1cd
[mtouch] Add logging overloads that don't format the input. (#5525)
Sometimes we just Log a string without any format arguments. This works fine,
until the string comes from the user, and happen to contain braces, in which
case an invalid format exception is thrown.

Adding Log overloads that doesn't take format arguments (nor formats its
input) avoids this problem.
2019-02-01 07:43:15 +01:00
Rolf Bjarne Kvinge 204361d62e
[xharness] Simplify code slightly. (#5506) 2019-01-31 18:28:38 +01:00
Marius Ungureanu b357624861
[NSString] Add overloads which are optimized for substring handling (#5517)
* [NSString] Add overloads which are optimized for substring handling

Fixes #5134
2019-01-31 19:09:13 +02:00
Sebastien Pouliot faee79b2d9
Bump mono to head of 2018-08 (#5521)
Commit list for mono/mono:

* mono/mono@2359cba40e [coop] Fix deadlock when unwinding
* mono/mono@a4956c837e [2018-08] Native Crash Stability Fix Batch (#12565)
* mono/mono@d4d4fb7987 [eglib]Fix memory leak in `g_find_program_in_path()`. #11615.
* mono/mono@9939c1a656 [System]Fix race condition in `SystemDependencyProvider.Initialize()`. #12538.
* mono/mono@b0c4390d60 [runtime] Don't probe aot cache on android
* mono/mono@725ba2a252 Fix https://github.com/mono/mono/issues/12461.
* mono/mono@1dee62626d [2018-08 Android,AOT] Support dumping AOT offsets with Android NDK r17+ (#12454) (#12465)
* mono/mono@146c8191fb [x86] Set the LLVM data layout.
* mono/mono@5d3077c7bc [arm] Set the LLVM data layout, without it, opt seems to make incorrect optimizations.
* mono/mono@5266e6a8f1 [2018-08][debugger][backport] Fix crash when there is a generic struct with a field that is an enumerator (#12410)
* mono/mono@0d988bc696 Bump API snapshot submodule
* mono/mono@e6285d015b Bump corefx

Diff: 51c4f45402...2359cba40e
2019-01-30 16:50:28 -05:00
Alex Soto 742f0df459
[Appkit] Adds missing ModelAttribute to NSFilePromiseProviderDelegate (#5514)
Fixes xamarin/xamarin-macios#5504
2019-01-30 07:21:49 -05:00
Jose Gallardo 8e32109506
Merge pull request #5491 from xamarin/ema/fix778800
[msbuild] Fixes Microsoft.NET.Build.Extensions.Tasks.dll path
2019-01-29 10:18:45 -03:00
Manuel de la Pena 40c998e264
[XHarness] Add XUnit category filtering. (#5455)
Provide the ability to filter per categories in the xunit runner and add the default categories for Mac, iOS, TvOS and WatchOS.
2019-01-28 17:47:36 +01:00
Vincent Dondain f2ab1f6daf
[tests] Ignore failing GestureRecognizerTest for now (#5486)
- WIP PR https://github.com/xamarin/xamarin-macios/pull/5462 more investigation needed so ignore test which is preventing green builds
2019-01-28 10:07:06 -05:00
Rolf Bjarne Kvinge 7f4a1db36f
[runtime] Use a single mono profiler for both newrefcount and NSAutoreleasePool thread hooks. (#5495)
Additionally don't use malloc'ed memory, to avoid having to free the memory.

This fixes a leak, since mono does not free the MonoProfiler argument:

    STACK OF 1 INSTANCE OF 'ROOT LEAK: <0x7fb94495c460>':
    [thread 0x10f3f85c0]:
    19  libdyld.dylib                      0x7fff6e009ed9 start + 1
    18  NameNotImportant                      0x10592dec4 main + 36  launcher.m:679
    17  NameNotImportant                      0x10592d039 xamarin_main + 1305  launcher.m:661
    16  NameNotImportant                      0x105973473 mono_main + 11731  driver.g.c:2484
    15  NameNotImportant                      0x10597020d mono_jit_exec + 349  driver.g.c:1236
    14  NameNotImportant                      0x105b4217e mono_runtime_exec_main_checked + 110  object.c:0
    13  NameNotImportant                      0x105b3af28 mono_runtime_invoke_checked + 136  object.c:2960
    12  NameNotImportant                      0x105a143a1 mono_jit_runtime_invoke + 513  mini-runtime.c:3011
    11  NameNotImportant                      0x105a103c1 mono_jit_compile_method_with_opt + 2577  mini-runtime.c:2411
    10  NameNotImportant                      0x105a21aa7 mono_jit_compile_method_inner + 1207  mini.c:4184
    9   NameNotImportant                      0x105b3b75f mono_runtime_class_init_full + 847  object.c:527
    8   NameNotImportant                      0x105b3c9d4 mono_runtime_try_invoke + 148  object.c:2960
    7   NameNotImportant                      0x105a147d3 mono_jit_runtime_invoke + 1587  mini-runtime.c:3148
    6   ???                                   0x106d00fb0 0x7fffffffffffffff + 9223372041264041905
    5   NameNotImportant                      0x105921b0c xamarin_initialize + 812  runtime.m:1412
    4   NameNotImportant                      0x10591e7e7 xamarin_install_nsautoreleasepool_hooks + 55  shared.m:241
    3   NameNotImportant                      0x105b4fd0a mono_profiler_install + 26  profiler.c:1019
    2   NameNotImportant                      0x105c3127b monoeg_malloc0 + 27  gmem.c:121
    1   libsystem_malloc.dylib             0x7fff6e1bacba calloc + 30
    0   libsystem_malloc.dylib             0x7fff6e1bad62 malloc_zone_calloc + 139

Also remove the call to mono_profiler_set_events, it doesn't do anything anymore ([1]).

[1]: 14b061ba65/mono/metadata/profiler.c (L1098-L1101)
2019-01-28 15:06:40 +01:00
Rolf Bjarne Kvinge af30117abc
[tests] Automatically build the mtouch test assembly when needed. (#5496) 2019-01-28 15:05:42 +01:00
Ema 87c77db369 [msbuild] Fixes Microsoft.NET.Build.Extensions.Tasks.dll path
Replaces the hardcoded path to Microsoft.NET.Build.Extensions.Tasks.dll by the MicrosoftNETBuildExtensionsTasksAssembly property. The assembly is in a different location in dev16.

Also removed the old condition that only applied to VS 2015 and early builds of 2017 where the assembly did not exist.

Bug 778800 - Certain iOS projects are failing to build against dev16 seemingly due to a netstandard resolution issue
Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/778800
2019-01-25 19:21:57 -03:00
Rolf Bjarne Kvinge 83718c0b72
[jenkins] Try to give better information when api comparison / generator diff fails. (#5477) 2019-01-25 17:33:58 +01:00
Rolf Bjarne Kvinge be504be9ac
[mtouch] Properly deserialize cached Objective-C class symbols. Fixes #5467. (#5468)
Deserialize cached Objective-C class symbols to match how the objects looked
before serialization. This means storing the Objective-C class name in the
Symbol.ObjectiveCName field, and not the Symbol.Name field.

Fixes https://github.com/xamarin/xamarin-macios/issues/5467.
2019-01-24 15:08:50 +01:00
Sebastien Pouliot 1c881549a3
[generator] Warn if [NullAllowed] is used on methods. Fixes #4416 (#5464)
The `[NullAllowed]` attribute should not be allowed on methods but it
could break existing binding projects.

Historically it was used on property setters. However using the attribute
on _other_ methods can be misleading, e.g. should it apply to all
parameters, the return value... and its presence/action can be
misinterpreted in code reviews leading to binding bugs.

reference: https://github.com/xamarin/xamarin-macios/issues/5416
2019-01-24 08:57:46 -05:00
Manuel de la Pena 6c12862d3e
[XHarness] Remove not needed ignore file. (#5456)
Since we support filtering via categories, we do not longer need the
ignore file in these tests.
2019-01-24 13:11:11 +01:00
Manuel de la Pena debcee412c
[XHarness] Clean the System.Net.Http ignore file. (#5459)
Since we support categories, there is a test that does not longer needs
to be ignored in ios and tvos but needs to be in watchos (we do not yet
have the correct test assembly for the platform).
2019-01-24 13:10:40 +01:00
Manuel de la Pena 5165f1cdde
[Xharness] Remove not longer needed System.Service.Model.Web ignore file. (#5460)
Since we support categories, the file is not longer needed since the
failing tests are part of an ignored category.
2019-01-23 12:28:54 +01:00
Manuel de la Pena 99bda10aa4
[XHarness] Clean the System.Data ignore. (#5458)
Since we support filtering there are a number of tests that were ignore
that are part of a ignored category, therefore, they are not needed in
the file.
2019-01-23 10:17:46 +01:00
Manuel de la Pena a63c1c7f62
[XHarness] Fix small typo in test projet name. (#5461)
The small typo made the test projects from mac and ios/tvos/watchos be
in different nodes in the xhanress web page which is ugly. They now wil
appear in the same node.
2019-01-23 10:15:36 +01:00
Manuel de la Pena 02f65cc119
[XHarness] Remove not needed ignore file for System.Transactions. (#5457)
Since we support filtering via categories, we do not longer need the
ignore file in these tests.
2019-01-22 23:24:44 +01:00
Manuel de la Pena a71f421a67
[XHarness] Reneable Sytem.Security tests on iOS, TvOS and WatchOS. (#5421)
Reneable the tests and ignore those failing ones.

Fixes  https://github.com/xamarin/maccore/issues/1139
2019-01-22 23:18:45 +01:00
Manuel de la Pena a97dddf6db
[XHarness] Remove not needed dll from the test templates. (#5454) 2019-01-22 17:49:03 +01:00
Rolf Bjarne Kvinge 52de2ea588
[CoreFoundation] Add UnmanagedFunctionPointer attribute to delegate used for native callbacks. Fixes #5447. (#5453)
Fixes https://github.com/xamarin/xamarin-macios/issues/5447.
2019-01-22 17:41:03 +01:00
Sebastien Pouliot 91250bb615
[generator] Fix BI0000 when no argument semantics are present on a property. Fixes #5444 (#5451)
This can happen if a `[Wrap]` is used on the property getter (and setter)
instead of directly on the property.

In such condition we can safely assume that no dirty check is needed and
can continue with, unmodified, generation (using the wrapped content).

reference: https://github.com/xamarin/xamarin-macios/issues/5444
2019-01-22 09:52:39 -05:00
Sebastien Pouliot 3b098a5019
[appkit] Add missing `[NullAllowed]` on `NSDocument` API. Fixes #5349 (#5443)
That's an old binding, predating the nullability information from
header files.

reference: https://github.com/xamarin/xamarin-macios/issues/5349
2019-01-22 09:20:39 -05:00
Manuel de la Pena d9dcc9ae21
[XHarness] Add support for filtering categories in NUnit. (#5446) 2019-01-22 14:59:36 +01:00
Rolf Bjarne Kvinge ab12d72419
[tests] Adjust DispatchBlock tests according to minimum OS. (#5435)
* [tests] Adjust DispatchBlock tests according to minimum OS.

* [tests] Fix monotouch-test build.
2019-01-21 07:49:28 +01:00
Philippe Creytens 2b271cb997 [coremedia] Add BaseFontSizePercentageRelativeToVideoHeight to CMTextMarkupAttributes. Fixes #5429
reference: https://github.com/xamarin/xamarin-macios/issues/5429
2019-01-18 09:09:42 -05:00
Bernhard Urban 269ccd1495
[xharness] recognize newer watches (#5419)
* [xharness] recognize newer watches

* s/iPod/Watch/
2019-01-18 14:00:01 +01:00
Rolf Bjarne Kvinge 3e9673560f
[xharness] Bump documentation tests timeout. (#5404)
Bump the documentation tests timeout. It can take a while to run the
documentation tests when they're run in parallel with other tests.

Reference: 85130ddbb7 (commitcomment-31935455)

Fixes https://github.com/xamarin/maccore/issues/1350.
2019-01-18 07:51:25 +01:00
Manuel de la Pena 879629bc9d
[XHarness] Reenable the System tests on iOS, WatchOS and TVOs. (#5425)
All the failing tests have been ignored. There are a large number of
tests ignored on the watchOS platform beacuase atm the iOS test dll is
used.

Fixes https://github.com/xamarin/maccore/issues/1135
2019-01-17 22:58:31 +01:00
Manuel de la Pena cf1a034e96
[XHarness] Reenable the NUnit Corlib tests from the iOS Mono SDK. (#5316)
Reenable the tests on iOS/TvOS/WatchOS. Fixes xamarin/maccore#1153
2019-01-17 22:55:06 +01:00
Manuel de la Pena 8b68cdc62f
[XHarness] Report issues with the TestFixtureSetup (#5428)
There are a number of tests that use a TestFixtureSetup method that
fails. While the xml results report these errors, if a user runs xharness locally,
he will not get the errors reported. This issue meant that we had
different errors reported in jenkis and locally.
2019-01-17 22:54:06 +01:00
Sebastien Pouliot b7f1903ca1
[appkit] Allow `null` on `NSAppearanceCustomization.Appearance`. Fixes #5403 (#5431)
> The default value for this property is nil, which means that the
> receiver uses the appearance it inherits from the nearest ancestor that
> has set an appearance. When you set appearance to a non-nil value, the
> receiver and the views it contains use the specified appearance.
> https://developer.apple.com/documentation/appkit/nsappearancecustomization/1533925-appearance?language=objc

reference: https://github.com/xamarin/xamarin-macios/issues/5403

Unit test added. Without it we would not have found it did not work until
it was reported again (since it would have been silently ignored).

reference: https://github.com/xamarin/xamarin-macios/issues/5408
2019-01-17 16:00:47 -05:00
Miguel de Icaza c9e424c9ab [CoreFoundation, ObjCRuntime] Add DispatchBlock APIs, in particular those that surface QOS (#5389)
* [CoreFoundation, ObjCRuntime] Add DispatchBlock APIs, in particular those that surface QOS

* Make the struct readonly

Co-Authored-By: migueldeicaza <miguel@gnome.org>

* Make the field read-only

Co-Authored-By: migueldeicaza <miguel@gnome.org>

* Add Qos to the list of accepted words

* To add a finalizer that can dispose the object, turn this into a class,
rather than being just a wrapper around the native handle.

* Fix copyright.

* Fix whitespace issues.

* Adjust visibility of existing DispatchBlock method we don't want to make public

* Refactor a bit.

* Make DispatchObject inherit from NativeObject to avoid some code duplication.
* Put all P/Invokes in BlockLiteral.
* Simplify block code somewhat.
* Sprinkle [BindingImpl (Optimizable)] where needed.
* Add both constructors and static Create methods to create DispatchBlocks.
* Add an explicit operator to get an Action delegate from a DispatchBlock, and
  an Invoke method to directly call said delegate.
* Add a few convenience API:
	* Wait with a TimeSpan overload.
	* Cancelled property.
	* Notify with an Action overload.

* Add some DispatchQueue overloads to make DispatchBlock actually usable.

* Seal DispatchBlock.

Users shouldn't subclass DispatchBlock.

* Add tests.

* DispatchBlockFlags is native-sized (nuint).

* Fix a few more nint issues.

* Add availability attributes.

* Fix introspection tests.

* Fix xtro.

* Fix xammac tests.
2019-01-17 18:40:58 +01:00
Chris Hamons 645eef16f7
[macos] Always create new NSFont instance when surfacing (#5423)
- This is similar to what iOS does with UIFont
- Found in iOS originally with https://bugzilla.xamarin.com/show_bug.cgi?id=25511
2019-01-17 09:26:56 -06:00
Sebastien Pouliot 7caea3ef0f
[generator] Flow the `[NullAllowed]` information from properties when generating `_Extensions` methods. Fixes #5408 (#5424)
Otherwise we can end up without argument checks and de-reference null
arguments to get the `Handle` property.

Example from #5403 binding original issue:

```diff
diff --git a/src/appkit.cs b/src/appkit.cs
index daf22b75..48390cb8 100644
--- a/src/appkit.cs
+++ b/src/appkit.cs
@@ -431,6 +431,7 @@ namespace AppKit {
        interface NSAppearanceCustomization {

                [Mac (10,9)]
+               [NullAllowed]
                [Export ("appearance", ArgumentSemantic.Strong)]
                NSAppearance Appearance { get; set; }
```

would generate

```csharp
		[BindingImpl (BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
		public static void SetAppearance (this INSAppearanceCustomization This, NSAppearance value)
		{
			global::AppKit.NSApplication.EnsureUIThread ();
			global::ObjCRuntime.Messaging.void_objc_msgSend_IntPtr (This.Handle, Selector.GetHandle ("setAppearance:"), value.Handle);
		}
```

which would throw an `NullReferenceException` if `value` is `null`
because the `[NullAllowed]` on the `PropertyInfo` was not considered when
generating the extension method - at least not for the call, the null
check was fine (and removed).

Reviewing the PR **requires** checking the bot-generated "Generator Diff" too.

Tests to be added along the binding fix for #5403

Note: this replace the (now closed) PR https://github.com/xamarin/xamarin-macios/pull/5415

reference: https://github.com/xamarin/xamarin-macios/issues/5408
2019-01-17 09:09:57 -05:00
Manuel de la Pena fea85dc569
[XHarness] Reenable SystemTransactionsTests on iOS, TvOS and WatchOs. (#5411)
Fixes https://github.com/xamarin/maccore/issues/1134
2019-01-16 19:12:20 +01:00
Bernhard Urban cfbb22356c Bump Xamarin.MacDev (#5420)
Commit list for xamarin/Xamarin.MacDev:

* xamarin/Xamarin.MacDev@2e94b6d Add ARM64_32 to the list of supported architectures (#42)
* xamarin/Xamarin.MacDev@0f10d4a Added MacOS v10.13 to the list of known versions

Diff: 2029b1703e...2e94b6d274
2019-01-16 11:16:08 -05:00
Sebastien Pouliot 8757f36ca5
Clarify usage of `[NullAllowed]` in our bindings (#5417)
First part to fix https://github.com/xamarin/xamarin-macios/issues/5416

We currently allow the `[NullAllowed]` attribute anywhere an attribute
can be used on metadata (i.e. no `AttributeUsage` is used).

However the generator only process the attribute in some specific cases,
*silently* ignoring others. This leads to situations such as

```csharp
[NullAllowed, Export ("setInputHandler:")]
void SetInputHandler (AUInputHandler handler);
```

where a `null` argument will throw an `ArgumentNullException` because
`[NullAllowed]` does not mean anything on a method declaration.

To avoid such confusion `[NullAllowed]` should be added on each parameter
(even if all of them requires it) and if a `null` return value is
possible then use `[return: NullAllowed]`.

This PR allows XI/XM bindings to be built, without error, when this
patch is applied.

```diff
diff --git a/src/generator-attributes.cs b/src/generator-attributes.cs
index 965d8469..77162253 100644
--- a/src/generator-attributes.cs
+++ b/src/generator-attributes.cs
@@ -250,6 +250,7 @@ public class IsThreadStaticAttribute : Attribute {

 // When applied to a member, generates the member as static
 // and passes IntPtr.Zero or null if the parameter is null
+[AttributeUsage (AttributeTargets.Property | AttributeTargets.ReturnValue | AttributeTargets.Parameter)]
 public class NullAllowedAttribute : Attribute {
        public NullAllowedAttribute () {}
 }
```

Note that it's unlikely we'll apply this patch _as-is_ to avoid breaking
existing projects. A better approach (in a future PR) is to have the
generator (instead of the C# compiler) issue a warning (instead of an
error) when a `NullAllowed` is ignored.
2019-01-16 09:42:45 -05:00
Manuel de la Pena 34ca0496fc
[XHarness] Reneable the SystemNetHttpTests on iOS, TvOS and WatchOS. (#5405)
Failing iOS tests are ignored WatchOS is running the iOS tests until we have the tests in the SDK
for the watch runtime.

Fixes https://github.com/xamarin/maccore/issues/1144
Fixes https://github.com/xamarin/maccore/issues/1145

Mono issue: https://github.com/mono/mono/issues/12430
2019-01-16 12:16:22 +01:00
Manuel de la Pena c455a1d7b9
[XHarness] Reneable Mono.Security tests on WatchOS. (#5412)
Fixes https://github.com/xamarin/maccore/issues/1142
2019-01-16 12:13:34 +01:00
Manuel de la Pena 293ade0a30
[XHarness] Reneable the SystemSecurity tests on iOS, TvOS and WatchOS (#5410)
Some of the test classes are abstract, and we needed to change the
generator to ignore that fact. Before the change, we would have 0 test
cases.

Failing tests are ignored.

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

Mono issue https://github.com/mono/mono/issues/12446
2019-01-16 12:11:53 +01:00
Miguel de Icaza a2c80ed8e4
Merge pull request #5402 from migueldeicaza/fix-uigesturerecognizer-regression
[UIKit] UIGestureRecognizer's custon OnDispose method needs to queue the actual operation on the main thread
2019-01-15 14:15:44 -05:00
Sebastien Pouliot 9baec99be2
[tests] Fix `ARCondigurationTest.GetSupportedVideoFormats` on older devices (#5409)
`ARImageTrackingConfiguration` requires iOS 12 (Xcode 10) so split it in
a separate test case.

Fixes https://github.com/xamarin/maccore/issues/1335
2019-01-15 13:43:52 -05:00
Manuel de la Pena f63030d267
[XHarness] Remove System.Threading.Tasks.Dataflow_xunit-test from iOS, TvOS and WatchOS. (#5407)
As with other tests, this have been added because they were present when
we built the test assemblies locally, but they are not present in the
Mono SDK.

Fixes https://github.com/xamarin/maccore/issues/1132
2019-01-15 17:38:18 +01:00
Manuel de la Pena d7813b3275
[XHarness] Remove System.Runtime.Serialization.Formatters.Soap_test from iOS, TvOS and WatchOS (#5406)
As with other tests, this assembly was added when we built the tests in
the iOS makefile, but they are not present in the Mono SDK.

Fixes https://github.com/xamarin/maccore/issues/1140
2019-01-15 17:35:05 +01:00
Manuel de la Pena 2ba9a34198
[XHarness] Reenable SystemLinqXunit on watchOS and TvOS. (#5395) 2019-01-15 12:11:09 +01:00
Miguel de Icaza a06b3f25d3 [UIKit] UIGestureRecognizer's custon OnDispose method needs to queue the actual operation on the main thread 2019-01-14 14:51:56 -05:00
Manuel de la Pena 20595ce988
[XHarness] Remove not needed bcl tests for (#5400)
Remove tests that are not provided in the Mono iOS SDK for Mono.Runtime.

Fixes https://github.com/xamarin/maccore/issues/1141
2019-01-14 18:37:57 +01:00