Skip to content

Enable more tests to run on all 3 runtimes, part 2#10580

Merged
jonathanpeppers merged 47 commits intomainfrom
dev/grendel/test-runtimes-2
Nov 20, 2025
Merged

Enable more tests to run on all 3 runtimes, part 2#10580
jonathanpeppers merged 47 commits intomainfrom
dev/grendel/test-runtimes-2

Conversation

@grendello
Copy link
Contributor

@grendello grendello commented Nov 7, 2025

This pull request updates APK descriptor files for Xamarin.Android test resources, reflecting changes in file sizes for various native libraries and resources. It also adds a new APK descriptor for a NativeAOT build. The changes are primarily to keep test resources in sync with the latest build outputs.

Key changes:

Addition of NativeAOT APK descriptor:

  • Added a new file BuildReleaseArm64SimpleDotNet.NativeAOT.apkdesc containing the file list and sizes for a NativeAOT build, supporting new test scenarios.

MonoVM APK descriptor updates (file size adjustments):

  • Updated BuildReleaseArm64SimpleDotNet.MonoVM.apkdesc and BuildReleaseArm64XFormsDotNet.MonoVM.apkdesc to reflect minor changes in the sizes of native libraries (e.g., lib_Java.Interop.dll.so, lib_Mono.Android.dll.so, libmonodroid.so, etc.), ensuring the descriptors accurately match the current build outputs.

@grendello grendello force-pushed the dev/grendel/test-runtimes-2 branch 2 times, most recently from a02f56e to 8d64c27 Compare November 12, 2025 11:10
@grendello
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR extends test coverage by enabling numerous build tests to run on all three Android runtimes: MonoVM, CoreCLR, and NativeAOT. This is part 2 of enabling broader runtime test coverage.

Key changes:

  • Added runtime parameterization to 30+ test methods in BuildTest2.cs
  • Introduced IgnoreUnsupportedConfiguration helper to skip invalid runtime/configuration combinations
  • Added new overloads of SetRuntime to properly configure NativeAOT for application projects
  • Added baseline .apkdesc files for NativeAOT test validation

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
BuildReleaseArm64XFormsDotNet.NativeAOT.apkdesc New baseline file for NativeAOT XForms release builds on ARM64
BuildReleaseArm64XFormsDotNet.MonoVM.apkdesc Updated baseline with new assembly sizes for MonoVM
BuildReleaseArm64SimpleDotNet.NativeAOT.apkdesc New baseline file for NativeAOT simple app release builds on ARM64
BuildReleaseArm64SimpleDotNet.MonoVM.apkdesc Updated baseline with new assembly sizes for MonoVM
ProjectExtensions.cs Added SetRuntime overloads to properly handle NativeAOT for application projects; refactored runtime configuration logic
BaseTest.cs Added IgnoreUnsupportedConfiguration helper to skip invalid test configurations based on runtime constraints
BuildTest2.cs Parameterized 30+ tests to run on all runtimes; added runtime-specific assertions and skip logic; consolidated test data generation; fixed typo "receieve" → "receive"

@grendello
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@grendello
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@grendello
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@grendello grendello force-pushed the dev/grendel/test-runtimes-2 branch 2 times, most recently from ce920dc to 588750a Compare November 18, 2025 08:37
@grendello
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@grendello
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@grendello
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

NativeAOT broken because it doesn't properly quote arguments when
calling `clang`
@grendello grendello force-pushed the dev/grendel/test-runtimes-2 branch from 588750a to bb3c75d Compare November 19, 2025 10:08
Copy link
Member

@jonathanpeppers jonathanpeppers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The one failure we can ignore, dotnet/maui fails to build with:

Could not find ".NET Core SDK" with version = 10.0.101-servicing.25562.108

@jonathanpeppers jonathanpeppers merged commit 0bcd122 into main Nov 20, 2025
57 of 59 checks passed
@jonathanpeppers jonathanpeppers deleted the dev/grendel/test-runtimes-2 branch November 20, 2025 14:46
@github-actions github-actions bot locked and limited conversation to collaborators Dec 21, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants