[tests] Fix relative paths in mmptest and make cloned XM nunit projects work properly. (#3464)

* [tests] Fix relative paths in mmptest and make cloned XM nunit projects work properly.

Fixes this build problem with mmptest:

    /Users/builder/jenkins/workspace/xamarin-macios-pr-builder/tests/mmptest/CustomBuildActions.targets: error : Command 'make bin/SimpleClassDylib.dylib bin/SimpleClassStatic.a bin/Mobile-static/MobileBinding.dll' exited with code: 255.

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

* [mmp] Improve Driver.IsDefaultMarshalingManagedExceptionMode to work before MarshalManagedException has been initialized.

Fixes this test failure:

    1) Failed : Xamarin.MMP.Tests.MMPTests.UnifiedDebugBuilds_ShouldLinkToPartialStatic_UnlessDisabled
      Debug build should use partial static registrar
      Expected: True
      But was:  False

This regressed in 0561618460, where we wouldn't
properly select the partial static registrar because the initialization order
changed and we'd do it before selecting the default exception marshaling mode.

Changing Driver.IsDefaultMarshalingManagedExceptionMode to work before
MarshalManagedException has been initialized to its default value fixes the
problem.
This commit is contained in:
Rolf Bjarne Kvinge 2018-02-13 17:19:31 +01:00 коммит произвёл GitHub
Родитель cb9f97b46d
Коммит 883038788a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 9 добавлений и 4 удалений

Просмотреть файл

@ -5,7 +5,7 @@
<BuildDependsOn>$(BuildDependsOn);CreateNativeLibs</BuildDependsOn>
</PropertyGroup>
<Target Name="CreateNativeLibs" Inputs="../common/mac/SimpleClass.m" Outputs="../mac-binding-project/bin/SimpleClassDylib.dylib;../mac-binding-project/bin/SimpleClassStatic.a;../mac-binding-project/bin/Mobile-static/MobileBinding.dll">
<Exec Command="make bin/SimpleClassDylib.dylib bin/SimpleClassStatic.a bin/Mobile-static/MobileBinding.dll" WorkingDirectory="../mac-binding-project/"/>
<Target Name="CreateNativeLibs" Inputs="$(MSBuildThisFileDirectory)/../common/mac/SimpleClass.m" Outputs="$(MSBuildThisFileDirectory)/../mac-binding-project/bin/SimpleClassDylib.dylib;$(MSBuildThisFileDirectory)/../mac-binding-project/bin/SimpleClassStatic.a;$(MSBuildThisFileDirectory)/../mac-binding-project/bin/Mobile-static/MobileBinding.dll">
<Exec Command="make bin/SimpleClassDylib.dylib bin/SimpleClassStatic.a bin/Mobile-static/MobileBinding.dll" WorkingDirectory="$(MSBuildThisFileDirectory)/../mac-binding-project/"/>
</Target>
</Project>

Просмотреть файл

@ -612,7 +612,7 @@ namespace xharness
build.SpecifyConfiguration = build.ProjectConfiguration != "Debug";
RunTestTask exec;
if (project.IsNUnitProject) {
var dll = Path.Combine (Path.GetDirectoryName (project.Path), project.Xml.GetOutputAssemblyPath (build.ProjectPlatform, build.ProjectConfiguration).Replace ('\\', '/'));
var dll = Path.Combine (Path.GetDirectoryName (build.TestProject.Path), project.Xml.GetOutputAssemblyPath (build.ProjectPlatform, build.ProjectConfiguration).Replace ('\\', '/'));
exec = new NUnitExecuteTask (build) {
Ignored = ignored || !IncludeClassicMac,
TestLibrary = dll,

Просмотреть файл

@ -64,7 +64,12 @@ namespace Xamarin.Bundler {
public bool EnableSGenConc;
public MarshalObjectiveCExceptionMode MarshalObjectiveCExceptions;
public MarshalManagedExceptionMode MarshalManagedExceptions;
public bool IsDefaultMarshalManagedExceptionMode;
bool is_default_marshal_managed_exception_mode;
public bool IsDefaultMarshalManagedExceptionMode {
get { return is_default_marshal_managed_exception_mode || MarshalManagedExceptions == MarshalManagedExceptionMode.Default; }
set { is_default_marshal_managed_exception_mode = value; }
}
public List<string> RootAssemblies = new List<string> ();
public List<Application> SharedCodeApps = new List<Application> (); // List of appexes we're sharing code with.
public string RegistrarOutputLibrary;