NetTraceToMibcConverter
- Used in profiled AOT scenarios where a .nettrace file is given as input and is converted to a .mibc file that can be fed into the AOT compiler. This previously was in the AotCompiler task, but for clarity purposes is now separated out.
Streamline Android testing targets
- The testing targets function the same, but are now structured similarly to iOS and Wasm.
- Introduced new testing properties to support profiled AOT:
NetTraceFilePath - The path to a .nettrace file that will be converted into a .mibc file and fed into the aot compiler
RuntimeComponents - The list of native components to include in the test app build (diagnostics_tracing)
DiagnosticsPorts - The ip address:port where the runtime will listen when running diagnostic tooling
DiagnosticStartupMode - The mode the runtime will use at startup for diagnostic scenarios. Suspend will halt the app very early and wait, while nosuspend will wait for a connection, but not halt the runtime
Co-authored-by: Mitchell Hwang <16830051+mdh1418@users.noreply.github.com>
* Implement IncludeNetworkSecurityConfig
* Use IncludeNetworkSecurityConfig
* Fix tests
* Remove active issue attributes
* Rename certificate file
* Revert unnecessary changes
* TMP: re-throw caught exception to reveal more information in logs
* Revert "TMP: re-throw caught exception to reveal more information in logs"
This reverts commit 039d051d6ac60c1c3f1baf37b0c06872f87cac84.
* TMP: add and update res folders until they are merged into runtime-assets
* Fix System.Net.Requests tests
* Re-enable System.Net.Http functional tests
* Try fixing failing test
* Skip failing test
* Add missing using
* Remove temporary test data
* Relax exception type assertion for Android
* Code cleanup
* Fix test failures in System.Net.WebSockets.Client.Tests
* Remove active issue attribute
* Remove most explicit usages of the server certificate custom validation callback in tests
* Fix several tests
* Remove weird condition
* Code clean-up
* Remove unrelated active issue attributes
* Turn ActiveIssue attributes into permanent SkipOnPlatform
* Update explanation for SkipOnPlatform
* Revert partial fix and keep active issue
* Keep active issue for android x64 and x86
* Remove invalid attribute
* Fix test on Browser
* Allow all certificates by default
* Fix build
* Fix http client handler factory on Browser
* Skip failing test
* Fix net48 build
* Revert unintentional change in WinHttpHandler tests
* Avoid using unsupported property on Browser
* Remove unnecessary default value
* Avoid using unsupported property on Browser
Brings in new cmake 2.23.1 and Android NDK23c which fixes an issue with the binary size and perf of libmonosgen-2.0.so
In NDK23b they decided to no longer pass -O2 compiler optimization flag (for arm64, armv7 used -Oz) as part of the Android toolchain but delegate to upstream CMake behavior: https://github.com/android/ndk/wiki/Changelog-r23 and https://github.com/android/ndk/issues/1536
CMake defaults to -O3 for Release builds but unfortunately this causes quite a noticable binary size increase and perf regression.
The Xamarin Android team measured startup time on an average of 10 runs of `dotnet new maui` on a Pixel 5:
```
-O3: 893.7ms
-O2: 600.2ms
-Oz: 649.1ms
```
We now explicitly pass in -O2 for Android builds.
Fixes https://github.com/dotnet/runtime/issues/68330
The crypto test suites were originally disabled as they would run out of memory on both emulators and devices somewhat frequently.
This change enables them again, with the difference being that xunit will run tests on a single thread.
Addresses #62547
Android apk names must be valid Java class names, and It is forbidden in Java for a class name component to have a leading numeric digit. So whilst "net.dot.foo3_1" is legal, "net.dot.foo3.1" is illegal. Use a Regex to detect and rewrite all cases of this in AndroidAppBuilder
.. and fix logging that broke recently.
`tasks/Common/Utils.cs`:
TaskLoggingHelper Utils.Logger is a static field, which must be set by
task else any methods in Utils, eg. RunProcess, silently fail to log
any messages. Also, this would be a problem when building multiple
projects in parallel, since the logger is a task-specific one.
Instead, we pass logger as an arg to all the methods.
We were missing a few key additions to make sure we can test against AOT+LLVM. This change will make sure we link against all the .dll-llvm.o files produced from the AOT compiler and include the right mtriple for each architecture.
Fixes#53628
Implementation of Mono runtime component infrastructure, https://github.com/dotnet/runtime/blob/main/docs/design/mono/components.md.
This commit also includes a port of Mono EventPipe/DiagnosticsServer library over to new runtime component infrastructure.
Before all packaging/deploy have been fixed for platforms that will switch over to hosting components as shared libraries, all components will be build and linked using the static linkage scenario outline in document above. Once package and deploy is resolved for dynamic linking scenarios, we will switch this for corresponding platforms in follow up commits.