Move tests that build projects from xammac_tests to mmptest, so that
xammac_tests is only testing API, and not building anything.
This makes it easier to run xammac_tests on older macOS versions (where we
don't necessarily support building Xamarin.Mac apps).
- On 10.14 we were seeing unclassified issues appear that were not
on 10.13 builds.
- It turns out each instance involved a framework with a different
capitalization (PDF -> Pdf, MIDI -> Midi, WLAN -> WLan) in our bindings
than the header.
- For some reason that still isn't 100% clear, we'd see both our binding
and some clang item and register by capitalizations in the list in Log.cs
- Then we'd process the first list, write it down to disk, process the
second list (which is empty) by deleting that file that we just wrote down
Add support for the 'run-internal-tests' label on pull requests to indicate
that the internal jenkins should run tests when that label is applied.
Also make it so that either the 'run-internal-tests' or the 'build-package'
label will actually make the internal jenkins execute (otherwise the 'run-
internal-tests' label would also require the 'build-package' label, which
wouldn't be very obvious/user-friendly).
Creating a new NSString doesn't always lead to creating a new NSString, which
will obviously cause trouble.
The scenario is:
* An NSString with the value @"Bye" is added to an NSDictionary, with the same
string as both the key and the value.
* The (managed) string indexer is used to try to get the value back. The
string indexer would call 'new NSString ("Bye")', which would create a new
managed NSString, and maybe a new native NSString (or maybe it would re-use
an existing NSString). Then the handle of this NSString would be passed to
the native API, and the same handle would come back as the result (since the
same string is both the key and the value). We'd call Runtime.GetNSString on
the returned handle, get back the same managed instance that was created
just before the call to the native method. Finally, just before returning
this managed instance from the indexer, we'd dispose it... since it was
created in a 'using' block. Then we'd return a disposed NSString object from
the indexer. Ops.
The fix is to not create a managed wrapper for the NSString handle we need to
pass to the native API, but create and free the native NSString object without
using a managed wrapper.
This can be useful when working on the support for private jenkins, since many
of those changes can only be tested as a pull request, and they also tend to
include a lot of commits (because nothing can be tested locally).
So until whatever needs implementing for private jenkins is complete and
working, there's no need for the public bots to do anything for such pull
requests.
Mostly known iOS cases that are now part included in macOS.
Two failures remains until the AppKit update is merged, i.e.
both were _upgraded_ to conform to `NSSecureCoding`
```
[FAIL] NSBezierPath conforms to NSSecureCoding but does not implement INSSecureCoding
[FAIL] NSGradient conforms to NSSecureCoding but does not implement INSSecureCoding
```