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

11644 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge e707c7cda8
[tests] Remove assert that fails on M1 on Rosetta. (#12641)
Fixes this error when running on M1 (and Rosetta):

    MonoTouchFixtures.CoreFoundation.BundleTest.TestGetBundleIdNull : 0.9134 ms
        [FAIL] TestIsArchitectureLoadable :   arm64 Expected => false
            Expected: False
            But was:  True
                at MonoTouchFixtures.CoreFoundation.BundleTest.TestIsArchitectureLoadable() in xamarin-macios/tests/monotouch-test/CoreFoundation/BundleTest.cs:line 375
2021-09-07 18:52:53 +02:00
Rolf Bjarne Kvinge 88cf80da2d
[xharness] Remove legacy Mac Catalyst support. (#12642)
We're going .NET all the way.

This simplifies xharness a little bit, and speeds up our test run somewhat.
2021-09-07 18:35:33 +02:00
dotnet-maestro[bot] 8bfa57704f
[main] Update dependencies from dotnet/installer (#12571)
* Update dependencies from https://github.com/dotnet/installer build 20210826.20

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21425.12 -> To Version 6.0.100-rc.2.21426.20

* Update dependencies from https://github.com/dotnet/installer build 20210827.35

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21425.12 -> To Version 6.0.100-rc.2.21427.35

* Update dependencies from https://github.com/dotnet/installer build 20210828.23

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21425.12 -> To Version 6.0.100-rc.2.21428.23

* Update dependencies from https://github.com/dotnet/installer build 20210830.3

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21425.12 -> To Version 6.0.100-rc.2.21430.3

* Update dependencies from https://github.com/dotnet/installer build 20210831.4

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21425.12 -> To Version 6.0.100-rc.2.21431.4

* Update dependencies from https://github.com/dotnet/installer build 20210901.9

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21425.12 -> To Version 6.0.100-rc.2.21451.9

Dependency coherency updates

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21419.1 -> To Version 6.0.100-preview.6.21430.2 (parent: Microsoft.Dotnet.Sdk.Internal

* [tests] Adjust path changes for tvOS

* Update dependencies from https://github.com/dotnet/installer build 20210902.10

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21425.12 -> To Version 6.0.100-rc.2.21452.10

Dependency coherency updates

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21419.1 -> To Version 6.0.100-preview.6.21430.2 (parent: Microsoft.Dotnet.Sdk.Internal

* Looks like macOS/dotnet is not quite the legacy build (which works)

* Update dependencies from https://github.com/dotnet/installer build 20210903.10

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21425.12 -> To Version 6.0.100-rc.2.21453.10

Dependency coherency updates

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21419.1 -> To Version 6.0.100-preview.6.21452.4 (parent: Microsoft.Dotnet.Sdk.Internal

* Update dependencies from https://github.com/dotnet/installer build 20210904.1

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21425.12 -> To Version 6.0.100-rc.2.21454.1

Dependency coherency updates

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21419.1 -> To Version 6.0.100-preview.6.21452.4 (parent: Microsoft.Dotnet.Sdk.Internal

* Update dependencies from https://github.com/dotnet/installer build 20210904.3

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21425.12 -> To Version 6.0.100-rc.2.21454.3

Dependency coherency updates

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21419.1 -> To Version 6.0.100-preview.6.21452.4 (parent: Microsoft.Dotnet.Sdk.Internal

* Update dependencies from https://github.com/dotnet/installer build 20210906.2

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21425.12 -> To Version 6.0.100-rc.2.21456.2

Dependency coherency updates

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21419.1 -> To Version 6.0.100-preview.6.21452.4 (parent: Microsoft.Dotnet.Sdk.Internal

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Sebastien Pouliot <sebastien.pouliot@gmail.com>
Co-authored-by: Sebastien Pouliot <sebastien.pouliot@microsoft.com>
2021-09-07 12:26:14 +02:00
Peter Collins 56dd828392
[build] Add missing Hot Restart symbol files. (#12587)
Commit 91c6517f missed a few symbol files because it was tested against
a version of Hot Restart assemblies that had already been inserted into
VS.  The Hot Restart package version bump in commit fbbaa7fc triggered
a couple of new SymbolCheck issues that can be fixed by bringing in the
previously missed pdbs.
2021-09-06 17:14:18 +02:00
Rolf Bjarne Kvinge f2deb160b0
[msbuild] Make the ParseBundlerArgumentsTaskBase take the verbosity as input as well. (#12570)
This way we'll honor a _BundlerVerbosity value passed on the command line.

This fixes an inconvenience when we have when we want to increase verbosity
for a test run, which can be done by setting 'MtouchExtraArgs=-v'. This works
fine until the test we want to run wants to use MtouchExtraArgs for its own
purposes (1). If we set MtouchExtraArgs on the command line, then that value
will be global and won't be able to be overridden by the test, and the test
will fail.

With this fix we can pass _BundlerVerbosity=1 directly when building the test
to avoid the whole problem.

1. For instance, most tests pass an argument in MtouchExtraArgs to use
dlsym for NUnit.Framework.dll, which contains a P/Invoke to a native function
that doesn't exist - see the tests/nunit.framework.targets file.
2021-09-06 15:25:01 +02:00
Rolf Bjarne Kvinge 69b95172b3
[xharness] Unify the list of test projects for .NET between iOS and macOS. (#12469)
* [xharness] Unify the list of test projects for .NET between iOS and macOS.

* [xharness] Don't enable all .NET tests if .NET is enabled.

Some tests (such as device tests) have additional checks that must be honored as well.

* [xharness] If a test is ignored, then it doesn't matter what the corresponding build task is doing.

A build task can be shared between multiple tests, and it can be building for
another (enabled) test. This happens for iOS 32-bits and 64-bits simulator:
the app is built once, but have two different tests running.

Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
2021-09-06 15:23:41 +02:00
TJ Lambert f9c058988d
[Foundation] Add Support for DotNet Attributes (#12603)
Co-authored-by: tj_devel709 <antlambe@microsoft.com>
2021-09-02 12:12:27 -04:00
TJ Lambert 02b671c6e4
[FileProvider] Add Support for DotNet Attributes (#12593)
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
2021-09-02 12:11:48 -04:00
Sebastien Pouliot ee5cc01b84
[chip] Disable some API on macOS (#12609)
They fail when executing introspection on macOS 12 beta 6.

It might be a sign they will be replaced with a newer Xcode 13...
2021-09-01 22:08:21 -04:00
Sebastien Pouliot 398f8462af
[audiounit] remove duplicate `using System.Runtime.Versioning;` to avoid build warnings (#12608)
```
AudioUnit/AudioUnit.cs(42,7): warning CS0105: The using directive for 'System.Runtime.Versioning' appeared previously in this namespace
```
2021-09-01 20:05:12 -04:00
Matthew Leibowitz 14b77dc8ea
Generate msi files and VS setup authoring for all .NET 6 platforms (#12581)
* Update vs-insertion-prep.yml

* Remove filters from symbol package download as well

* [temp] Changes for testing

* Shorten manifest name

* Shorten manifest name take 2

* Add ComponentResources and WorkloadPackages for tvOS and macOS

* Don't shorten MacCatalyst name, version string replacement should suffice

* Revert "Don't shorten MacCatalyst name, version string replacement should suffice"

This reverts commit d1c1d1d89d.

* Replace long macOS versions in .msi files

* Shorten tvossimulator msi names

* Test with real signing

* Revert testing changes

* Enable tests

Co-authored-by: Peter Collins <pecolli@microsoft.com>
2021-09-01 13:55:08 -04:00
TJ Lambert 5b896c7789
[CoreText] Add Support for DotNet Attributes (#12592) 2021-09-01 11:30:34 -05:00
TJ Lambert 56da25aefe
[SceneKit] Add Support for DotNet Attributes (#12578) 2021-09-01 11:28:16 -05:00
Manuel de la Pena a004b4781b
[CoreGraphics] Add support for xcode13 beta 5. (#12589) 2021-09-01 11:24:10 -04:00
Rachel Kang 3fc6b06a12
Merge pull request #12535 from rachelkang/xcode13.0-localauthenticationembeddedui-b2-b3
[LocalAuthenticationEmbeddedUI] Update bindings for Xcode 13.0 beta 2 and 3
2021-09-01 09:32:39 -04:00
Sebastien Pouliot 4380161309
[avkit] Fix `VideoCallSupport` category failure on MacCatalyst 15 (#12598)
Web documentation mention them to be available. Introspection disagree.

Since they are all related to a single `VideoCallSupport` category, this
feature is likely not available to Catalyst.
2021-08-31 21:34:47 -04:00
Sebastien Pouliot 31e4c0506e
[mailkit] Disable some selector not working on macOS 12 beta 6 (#12602)
The framework is only available on macOS 12.

It's possible (my guess) that the selectors were renamed after Xcode 13
beta 5 was released. In that case a future (RC?) Xcode will have the
updated headers.

Most selectors are working as expected

```
NSLog (@"%@", [MEMessageAction markAsReadAction]);

Message Action: Destination: (null), Read Status: 1, Flag Change: (null), Message Color: 0
```

while the last 3 do not work, even from an ObjC application

```
NSLog (@"%@", [MEMessageAction flagAction]);

+[MEMessageAction flagAction]: unrecognized selector sent to class 0x7ffa601fc5d8
```

```
NSLog (@"%@", [MEMessageAction unflagAction]);

+[MEMessageAction unflagAction]: unrecognized selector sent to class 0x7ffa601fc5d8
```

```
NSLog (@"%@", [MEMessageAction setColorActionWithColor:(MEMessageActionMessageColorRed) ]);

+[MEMessageAction setColorActionWithColor:]: unrecognized selector sent to class 0x7ffa601fc5d8
```
2021-08-31 21:08:12 -04:00
Manuel de la Pena cda8808fa2
[Tests] Ignore a number of tests that fail on a VM. Update README. (#12597) 2021-08-31 17:45:14 -04:00
TJ Lambert ef0667dcb0
[Security] Add Support for DotNet Attributes Part 3 (#12521) 2021-08-31 16:33:18 -05:00
TJ Lambert e3e94d7cab
[Security] Add Support for DotNet Attributes Part 2 (#12520) 2021-08-31 16:32:38 -05:00
Sebastien Pouliot 4274f1d6c0
[tests][intro] Move protocol check for QLPreviewReply* to base class (#12596)
so they can be ignored on macOS (12+) too
2021-08-31 17:27:08 -04:00
Sebastien Pouliot d6b0cdbed5
Update CODEOWNERS (#12599)
Co-authored-by: Sebastien Pouliot <sebastien.pouliot@microsoft.com>
2021-08-31 16:43:47 -04:00
Rachel Kang f7efc61b24
Update src/localauthenticationembeddedui.cs
Co-authored-by: TJ Lambert <50846373+tj-devel709@users.noreply.github.com>
2021-08-31 12:35:26 -04:00
TJ Lambert 066d5b5740
[GLKit] Add Support for DotNet Attributes
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
2021-08-31 11:51:33 -04:00
TJ Lambert 6a9e515f5e
[Network] Add Support for DotNet Attributes (#12590)
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
2021-08-31 11:50:09 -04:00
TJ Lambert 20bf555ccd
[Security] Add Support for DotNet Attributes Part 1 (#12519)
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
2021-08-31 11:48:14 -04:00
TJ Lambert 93c3fc35bf
removing extra single quote (#12595)
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
2021-08-31 11:37:21 -04:00
Manuel de la Pena 8e6eedfaf3
[XHarness] Ensure we do not crash with empty lines. (#12588) 2021-08-30 21:30:21 -04:00
Peter Collins 12d8b37f4f
[ci] Authenticode sign Mono.Options.dll (#12585)
Commit 91c6517f bumped to a new Mono.Options package version that
included symbol files, however it appears to be missing a Microsoft
digital signature.  We can fix this by signing the file ourselves rather
than skipping it.
2021-08-30 20:53:46 -04:00
VS MobileTools Engineering Service 2 57cf3c7e06
Localized file check-in by OneLocBuild Task (#12579) 2021-08-30 16:20:11 -04:00
TJ Lambert e3f1363eb8
[CoreAudio] Updates for Xcode13 Beta 5 (#12465)
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
2021-08-30 13:46:33 -04:00
TJ Lambert 69cf276457
[AudioToolbox] Add Support for DotNet Attributes (#12566)
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
2021-08-30 11:48:51 -04:00
TJ Lambert 26b5196d58
[ImageIO] Add Support for DotNet Attributes
Co-authored-by: tj_devel709 <antlambe@microsoft.com>
2021-08-30 11:47:38 -04:00
TJ Lambert 61c7cf8e53
[AudioUnit] Add Support for DotNet Attributes (#12553)
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
2021-08-30 11:45:28 -04:00
TJ Lambert 2f581ccd84
[HomeKit] Add Support for DotNet Attributes
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
2021-08-30 11:44:15 -04:00
TJ Lambert 173bf3eba8
[HealthKit] Add Support for DotNet Attributes (#12568)
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
2021-08-30 11:41:58 -04:00
TJ Lambert e59480829c
[AddressBook] Add Support for DotNet Attributes (#12564)
Co-authored-by: tj_devel709 <antlambe@microsoft.com>
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
2021-08-30 11:41:35 -04:00
Manuel de la Pena 11838db7dd
[iAD] Fix message. fixes #12569 (#12574)
Add the missing '.'.

fixes https://github.com/xamarin/xamarin-macios/issues/12569
2021-08-27 16:19:20 -04:00
TJ Lambert dc4db0c2ae
[GameController] Add Support for DotNet Attributes (#12554)
Co-authored-by: tj_devel709 <antlambe@microsoft.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2021-08-27 12:18:49 -04:00
TJ Lambert 03c9c7c379
[MediaPlayer] Add Support for DotNet Attributes (#12538)
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2021-08-27 12:18:04 -04:00
Manuel de la Pena 8eab757b39
[CoreFoundation] Add support for xcode 13 beta 5. (#12552) 2021-08-27 10:59:08 -04:00
dotnet-maestro[bot] 74b161ae74
[main] Update dependencies from dotnet/installer (#12540)
* Update dependencies from https://github.com/dotnet/installer build 20210824.34

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21423.21 -> To Version 6.0.100-rc.2.21424.34

* Update dependencies from https://github.com/dotnet/installer build 20210825.12

Microsoft.Dotnet.Sdk.Internal
 From Version 6.0.100-rc.2.21423.21 -> To Version 6.0.100-rc.2.21425.12

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2021-08-27 12:44:14 +02:00
Peter Collins 91c6517f28
[ci] Opt in to symbol archiving during VS insertion (#12547)
Context: https://github.com/xamarin/yaml-templates/pull/131

Enables conversion and archiving of symbol files during the VS insertion
stage.  Symbol archiving steps will only run if both the
`symbolArtifactName` parameter is provided, and `archiveSymbols` is set
to true.  The `symbolConversionFilters` parameter can be used to filter
out paths of symbol files that should not be converted/archived.

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2021-08-27 12:32:46 +02:00
James Parsons 8ff26838ec
Import .NET 6 property page targets path in iOS sdk targets (#12556)
* Import .NET 6 property page targets path in iOS sdk targets

* Fixes MSBuildExtensionsPath casing on Microsoft.iOS.Windows.Sdk.targets

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Emanuel Fernandez Dell'Oca <ema@xamarin.com>
2021-08-27 12:17:06 +02:00
Rolf Bjarne Kvinge c039e882cb
[xharness] Skip timestamps when processing logs. (#12539)
This fixes an issue where the html report wouldn't show test failures from
timestamped logs (which is the case for macOS test logs).

Also remove a duplicated condition.
2021-08-27 12:02:48 +02:00
Rolf Bjarne Kvinge cadfbc38d0
[msbuild/dotnet] Rework how app manifests are created. (#12516)
How we create the app manifest (Info.plist) has to be modified so that we can
add support for getting all the values from MSBuild properties (i.e. no
Info.plist in the project), as well as having multiple partial app manifests
that all get merged into the final app manifest.

Here's the new process:

1. The user can specify values in multiple ways:

   * An Info.plist in their project file (as always, by using a `None` item
     with filename "Info.plist" or with a `Link` metadata with filename
     "Info.plist"). We find this Info.plist in the DetectAppManifest target.
   * A partial plist in their project (using the `PartialAppManifest` item
     group)
   * Some MSBuild properties can also add values.

   The general precedence is: MSBuild properties can be overridden by the
   Info.plist, which can be overridden by a partial plist.

2. In the `CompileAppManifest` target we get all the inputs from above, and
   compute a temporary app manifest, which is written to a temporary output
   file.

3. In the `ReadAppManifest` target, we read the temporary output file and
   outputs numerous MSBuild properties (most of them private)

4. We run other targets that may add more entries to the final app manifest
   (these tasks might depend on the values from `ReadAppManifest`). These
   entries are written to partial plists, and added to the
   _PostCompilePartialAppManifest item group.

   Currently the targets that can add more entries to the app manifest are
   _CompileImageAssets and  _CompileCoreMLModels.

5. In the new `WriteAppManifest` target, we read the temporary output file
   from `ReadAppManifest` + any `_PostCompilePartialAppManifest` files and
   merge them all together to get the final Info.plist.

This also required moving the computation of CFBundleIdentifier from the
DetectSigningIdentity task to the CompileAppManifest task, which also meant
reordering these two tasks, so that the DetectSigningIdentity task is executed
after the CompileAppManifest task (technically after the ReadAppManifest
task), because the DetectSigningIdentity task needs to know the bundle
identifier.
2021-08-27 12:00:19 +02:00
Rachel Kang abb7b3aef8
Move catalyst todo to ignore 2021-08-26 18:54:16 -04:00
Manuel de la Pena 53988e12ac
[AVKit] Add support for xcode 12 beta 5. (#12551)
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2021-08-26 18:16:06 -04:00
Manuel de la Pena 143a2216a6
[ThreadNetwork] Add new framework Xcode 13 beta 5. (#12533)
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
2021-08-26 18:15:31 -04:00
Sebastien Pouliot 1394420fdc
[corefoundation] Use `CFArrayGetValues` inside `CFArray` (#12537)
This requires less native calls (one for all values) than the current
code (one per value inside the array).

However the performance enhancement is not dramatic as the largest cost
is not in that code path (and the extra allocation undermine it too).
Still it's

I tried a few other variations (e.g. loop over a stackalloc'ed buffer)
but they did not perform better and the code was more complex.

Note: the NSArray* code/tests are identical between both sets (and the
mean results are also closer)

Actual Implementation

|                        Method |          name |              value |              Mean |              Error |          StdDev |
|------------------------------ |-------------- |------------------- |------------------:|-------------------:|----------------:|
| CFArray_StringArrayFromHandle |         empty |                 () |        124.856 ns |         13.1140 ns |       0.7188 ns |
| NSArray_StringArrayFromHandle |         empty |                 () |      1,438.752 ns |        120.3745 ns |       6.5981 ns |
|       CFArray_ArrayFromHandle |         empty |                 () |        124.727 ns |         21.3443 ns |       1.1700 ns |
|       NSArray_ArrayFromHandle |         empty |                 () |      1,433.047 ns |        164.6988 ns |       9.0277 ns |
| CFArray_StringArrayFromHandle |           few |  (  (...).") [108] |      1,818.681 ns |        457.2275 ns |      25.0622 ns |
| NSArray_StringArrayFromHandle |           few |  (  (...).") [108] |      8,636.130 ns |      2,505.6452 ns |     137.3429 ns |
|       CFArray_ArrayFromHandle |           few |  (  (...).") [108] |      4,105.635 ns |      1,151.4048 ns |      63.1124 ns |
|       NSArray_ArrayFromHandle |           few |  (  (...).") [108] |      8,769.657 ns |      1,946.9970 ns |     106.7215 ns |
| CFArray_StringArrayFromHandle | large_mutable |  ((...)) [8419330] | 20,103,343.750 ns | 13,762,095.1905 ns | 754,346.8755 ns |
| NSArray_StringArrayFromHandle | large_mutable |  ((...)) [8419330] | 24,256,992.708 ns |  9,357,034.9200 ns | 512,890.6579 ns |
|       CFArray_ArrayFromHandle | large_mutable |  ((...)) [8419330] |  3,888,197.135 ns |    395,545.6860 ns |  21,681.1938 ns |
|       NSArray_ArrayFromHandle | large_mutable |  ((...)) [8419330] |  7,326,581.510 ns |    622,485.7999 ns |  34,120.5472 ns |
| CFArray_StringArrayFromHandle |   lot_mutable |  ( (...)") [34427] |    194,289.884 ns |     27,658.0701 ns |   1,516.0322 ns |
| NSArray_StringArrayFromHandle |   lot_mutable |  ( (...)") [34427] |    549,336.410 ns |     98,695.3827 ns |   5,409.8270 ns |
|       CFArray_ArrayFromHandle |   lot_mutable |  ( (...)") [34427] |    222,837.679 ns |     38,823.2619 ns |   2,128.0340 ns |
|       NSArray_ArrayFromHandle |   lot_mutable |  ( (...)") [34427] |    441,116.243 ns |     46,578.8698 ns |   2,553.1450 ns |
| CFArray_StringArrayFromHandle |          null |                  ? |          4.568 ns |          0.8750 ns |       0.0480 ns |
| NSArray_StringArrayFromHandle |          null |                  ? |          4.728 ns |          1.0713 ns |       0.0587 ns |
|       CFArray_ArrayFromHandle |          null |                  ? |          4.818 ns |          1.0416 ns |       0.0571 ns |
|       NSArray_ArrayFromHandle |          null |                  ? |          4.793 ns |          0.5478 ns |       0.0300 ns |
| CFArray_StringArrayFromHandle |           one |            (    1) |        682.173 ns |         83.0811 ns |       4.5540 ns |
| NSArray_StringArrayFromHandle |           one |            (    1) |      3,409.570 ns |      1,407.8715 ns |      77.1702 ns |
|       CFArray_ArrayFromHandle |           one |            (    1) |      1,008.268 ns |        340.9156 ns |      18.6867 ns |
|       NSArray_ArrayFromHandle |           one |            (    1) |      3,174.222 ns |        412.6530 ns |      22.6189 ns |
| CFArray_StringArrayFromHandle | small_mutable | (   (...)9e") [54] |        909.008 ns |        271.9224 ns |      14.9050 ns |
| NSArray_StringArrayFromHandle | small_mutable | (   (...)9e") [54] |      5,017.722 ns |         66.9051 ns |       3.6673 ns |
|       CFArray_ArrayFromHandle | small_mutable | (   (...)9e") [54] |      1,900.176 ns |        131.5765 ns |       7.2121 ns |
|       NSArray_ArrayFromHandle | small_mutable | (   (...)9e") [54] |      4,913.822 ns |      1,264.8949 ns |      69.3332 ns |

New Implementation

|                        Method |          name |              value |              Mean |             Error |          StdDev |
|------------------------------ |-------------- |------------------- |------------------:|------------------:|----------------:|
| CFArray_StringArrayFromHandle |         empty |                 () |        112.335 ns |         0.7103 ns |       0.0389 ns |
| NSArray_StringArrayFromHandle |         empty |                 () |      1,497.473 ns |     1,508.7464 ns |      82.6995 ns |
|       CFArray_ArrayFromHandle |         empty |                 () |        114.670 ns |         3.7721 ns |       0.2068 ns |
|       NSArray_ArrayFromHandle |         empty |                 () |      1,486.298 ns |       767.5367 ns |      42.0713 ns |
| CFArray_StringArrayFromHandle |           few |  (  (...).") [108] |      1,526.398 ns |       205.6683 ns |      11.2734 ns |
| NSArray_StringArrayFromHandle |           few |  (  (...).") [108] |      8,503.264 ns |       981.4524 ns |      53.7967 ns |
|       CFArray_ArrayFromHandle |           few |  (  (...).") [108] |      3,814.918 ns |     1,868.8035 ns |     102.4354 ns |
|       NSArray_ArrayFromHandle |           few |  (  (...).") [108] |      8,628.285 ns |     2,416.9366 ns |     132.4805 ns |
| CFArray_StringArrayFromHandle | large_mutable |  ((...)) [8419330] | 16,351,876.042 ns | 3,691,993.1957 ns | 202,370.6051 ns |
| NSArray_StringArrayFromHandle | large_mutable |  ((...)) [8419330] | 24,589,916.667 ns | 2,800,427.9107 ns | 153,500.9034 ns |
|       CFArray_ArrayFromHandle | large_mutable |  ((...)) [8419330] |  3,390,725.260 ns | 2,950,426.1305 ns | 161,722.8120 ns |
|       NSArray_ArrayFromHandle | large_mutable |  ((...)) [8419330] |  7,296,976.823 ns | 4,376,785.2488 ns | 239,906.3683 ns |
| CFArray_StringArrayFromHandle |   lot_mutable |  ( (...)") [34427] |    167,120.182 ns |    14,246.9472 ns |     780.9232 ns |
| NSArray_StringArrayFromHandle |   lot_mutable |  ( (...)") [34427] |    554,940.788 ns |   116,685.5145 ns |   6,395.9268 ns |
|       CFArray_ArrayFromHandle |   lot_mutable |  ( (...)") [34427] |    192,447.498 ns |    15,447.8562 ns |     846.7491 ns |
|       NSArray_ArrayFromHandle |   lot_mutable |  ( (...)") [34427] |    431,045.597 ns |    42,844.2650 ns |   2,348.4387 ns |
| CFArray_StringArrayFromHandle |          null |                  ? |          5.157 ns |         4.3360 ns |       0.2377 ns |
| NSArray_StringArrayFromHandle |          null |                  ? |          5.040 ns |         0.0694 ns |       0.0038 ns |
|       CFArray_ArrayFromHandle |          null |                  ? |          5.514 ns |         0.3849 ns |       0.0211 ns |
|       NSArray_ArrayFromHandle |          null |                  ? |          5.373 ns |         0.8358 ns |       0.0458 ns |
| CFArray_StringArrayFromHandle |           one |            (    1) |        730.162 ns |        65.9006 ns |       3.6122 ns |
| NSArray_StringArrayFromHandle |           one |            (    1) |      3,421.896 ns |       315.0152 ns |      17.2670 ns |
|       CFArray_ArrayFromHandle |           one |            (    1) |      1,052.039 ns |       295.2081 ns |      16.1814 ns |
|       NSArray_ArrayFromHandle |           one |            (    1) |      3,150.829 ns |       375.5461 ns |      20.5849 ns |
| CFArray_StringArrayFromHandle | small_mutable | (   (...)9e") [54] |        845.227 ns |        41.1244 ns |       2.2542 ns |
| NSArray_StringArrayFromHandle | small_mutable | (   (...)9e") [54] |      5,062.850 ns |     1,601.6880 ns |      87.7939 ns |
|       CFArray_ArrayFromHandle | small_mutable | (   (...)9e") [54] |      1,824.390 ns |       261.6341 ns |      14.3410 ns |
|       NSArray_ArrayFromHandle | small_mutable | (   (...)9e") [54] |      4,871.647 ns |       165.4350 ns |       9.0680 ns |

Fix https://github.com/xamarin/xamarin-macios/issues/12375
2021-08-26 16:37:31 -04:00