diff --git a/build-tools/automation/yaml-templates/stage-package-tests.yaml b/build-tools/automation/yaml-templates/stage-package-tests.yaml
index 869ac45cee1..a824c974f39 100644
--- a/build-tools/automation/yaml-templates/stage-package-tests.yaml
+++ b/build-tools/automation/yaml-templates/stage-package-tests.yaml
@@ -199,10 +199,20 @@ stages:
testName: Mono.Android.NET_Tests-CoreCLR
project: tests/Mono.Android-Tests/Mono.Android-Tests/Mono.Android.NET-Tests.csproj
testResultsFiles: TestResult-Mono.Android.NET_Tests-$(XA.Build.Configuration)CoreCLR.xml
- extraBuildArgs: -p:TestsFlavor=CoreCLR -p:UseMonoRuntime=false
+ extraBuildArgs: -p:TestsFlavor=CoreCLR -p:_AndroidTypeMapImplementation=llvm-ir
artifactSource: bin/Test$(XA.Build.Configuration)/$(DotNetTargetFramework)-android/Mono.Android.NET_Tests-Signed.aab
artifactFolder: $(DotNetTargetFramework)-CoreCLR
+ - template: /build-tools/automation/yaml-templates/apk-instrumentation.yaml
+ parameters:
+ configuration: $(XA.Build.Configuration)
+ testName: Mono.Android.NET_Tests-CoreCLRTrimmable
+ project: tests/Mono.Android-Tests/Mono.Android-Tests/Mono.Android.NET-Tests.csproj
+ testResultsFiles: TestResult-Mono.Android.NET_Tests-$(XA.Build.Configuration)CoreCLRTrimmable.xml
+ extraBuildArgs: -p:_AndroidTypeMapImplementation=trimmable -p:UseMonoRuntime=false
+ artifactSource: bin/Test$(XA.Build.Configuration)/$(DotNetTargetFramework)-android/Mono.Android.NET_Tests-Signed.aab
+ artifactFolder: $(DotNetTargetFramework)-CoreCLRTrimmable
+
- template: /build-tools/automation/yaml-templates/apk-instrumentation.yaml
parameters:
configuration: $(XA.Build.Configuration)
diff --git a/tests/Mono.Android-Tests/Mono.Android-Tests/Java.Interop/JavaObjectExtensionsTests.cs b/tests/Mono.Android-Tests/Mono.Android-Tests/Java.Interop/JavaObjectExtensionsTests.cs
index 1b13316cc3d..1ef98e558e7 100644
--- a/tests/Mono.Android-Tests/Mono.Android-Tests/Java.Interop/JavaObjectExtensionsTests.cs
+++ b/tests/Mono.Android-Tests/Mono.Android-Tests/Java.Interop/JavaObjectExtensionsTests.cs
@@ -15,7 +15,7 @@ namespace Java.InteropTests {
[TestFixture]
public class JavaObjectExtensionsTests {
- [Test]
+ [Test, Category ("TrimmableIgnore")]
public void JavaCast_BaseToGenericWrapper ()
{
using (var list = new JavaList (new[]{ 1, 2, 3 }))
diff --git a/tests/Mono.Android-Tests/Mono.Android-Tests/Java.Interop/JnienvTest.cs b/tests/Mono.Android-Tests/Mono.Android-Tests/Java.Interop/JnienvTest.cs
index a563f56fd3a..be5347a780a 100644
--- a/tests/Mono.Android-Tests/Mono.Android-Tests/Java.Interop/JnienvTest.cs
+++ b/tests/Mono.Android-Tests/Mono.Android-Tests/Java.Interop/JnienvTest.cs
@@ -121,7 +121,7 @@ public void InvokingNullInstanceDoesNotCrashDalvik ()
}
}
- [Test]
+ [Test, Category ("TrimmableIgnore")]
public void NewOpenGenericTypeThrows ()
{
try {
@@ -301,7 +301,7 @@ public void ActivatedDirectObjectSubclassesShouldBeRegistered ()
}
}
- [Test]
+ [Test, Category ("TrimmableIgnore")]
public void ActivatedDirectThrowableSubclassesShouldBeRegistered ()
{
if (Build.VERSION.SdkInt <= BuildVersionCodes.GingerbreadMr1)
diff --git a/tests/Mono.Android-Tests/Mono.Android-Tests/Mono.Android.NET-Tests.csproj b/tests/Mono.Android-Tests/Mono.Android-Tests/Mono.Android.NET-Tests.csproj
index ae33bef1571..31011e1bd97 100644
--- a/tests/Mono.Android-Tests/Mono.Android-Tests/Mono.Android.NET-Tests.csproj
+++ b/tests/Mono.Android-Tests/Mono.Android-Tests/Mono.Android.NET-Tests.csproj
@@ -37,6 +37,12 @@
$(ExcludeCategories):InetAccess:NetworkInterfaces
+
+ false
+ CoreCLRTrimmable
+ $(ExcludeCategories):NativeTypeMap:TrimmableIgnore:SSL
+
+
diff --git a/tests/Mono.Android-Tests/Mono.Android-Tests/Xamarin.Android.RuntimeTests/NUnitInstrumentation.cs b/tests/Mono.Android-Tests/Mono.Android-Tests/Xamarin.Android.RuntimeTests/NUnitInstrumentation.cs
index 215fde081a9..867dab2ffb9 100644
--- a/tests/Mono.Android-Tests/Mono.Android-Tests/Xamarin.Android.RuntimeTests/NUnitInstrumentation.cs
+++ b/tests/Mono.Android-Tests/Mono.Android-Tests/Xamarin.Android.RuntimeTests/NUnitInstrumentation.cs
@@ -25,6 +25,20 @@ protected override string LogTag
protected NUnitInstrumentation(IntPtr handle, JniHandleOwnership transfer)
: base(handle, transfer)
{
+ if (Microsoft.Android.Runtime.RuntimeFeature.TrimmableTypeMap) {
+ // Java.Interop-Tests fixtures that use JavaObject types (not Java.Lang.Object)
+ // don't have JCW Java classes in the trimmable APK, and method remapping
+ // tests require Java-side support not present in the trimmable path.
+ // Exclude these entire fixtures to prevent ClassNotFoundException crashes.
+ ExcludedTestNames = new [] {
+ "Java.InteropTests.JavaObjectTest",
+ "Java.InteropTests.InvokeVirtualFromConstructorTests",
+ "Java.InteropTests.JniPeerMembersTests",
+ "Java.InteropTests.JniTypeManagerTests",
+ "Java.InteropTests.JniValueMarshaler_object_ContractTests",
+ "Java.InteropTests.JavaExceptionTests.InnerExceptionIsNotAProxy",
+ };
+ }
}
protected override IList GetTestAssemblies()