diff --git a/docs/workflow/testing/libraries/testing-android.md b/docs/workflow/testing/libraries/testing-android.md index 4c753f6832ce56..596d7851f1a8ed 100644 --- a/docs/workflow/testing/libraries/testing-android.md +++ b/docs/workflow/testing/libraries/testing-android.md @@ -46,15 +46,6 @@ mkdir ${ANDROID_SDK_ROOT} && unzip ~/asdk.zip -d ${ANDROID_SDK_ROOT}/cmdline-too yes | ${ANDROID_SDK_ROOT}/cmdline-tools/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} --licenses ${ANDROID_SDK_ROOT}/cmdline-tools/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} "platform-tools" "platforms;android-${SDK_API_LEVEL}" "build-tools;${SDK_BUILD_TOOLS}" -# We also need to download precompiled binaries and headers for OpenSSL from maven, this step is a temporary hack -# and will be removed once we figure out how to integrate OpenSSL properly as a dependency -export ANDROID_OPENSSL_AAR=~/openssl-android -curl https://maven.google.com/com/android/ndk/thirdparty/openssl/${OPENSSL_VER}/openssl-${OPENSSL_VER}.aar -L --output ~/openssl.zip -unzip ~/openssl.zip -d ${ANDROID_OPENSSL_AAR} && rm -rf ~/openssl.zip -printf "\n\nexport ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT}\nexport ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}\nexport ANDROID_OPENSSL_AAR=${ANDROID_OPENSSL_AAR}\n" >> ${BASHRC} -``` -Save it to a file (e.g. `deps.sh`) and execute using `source` (e.g. `chmod +x deps.sh && source ./deps.sh`) in order to propogate the `ANDROID_NDK_ROOT`, `ANDROID_SDK_ROOT` and `ANDROID_OPENSSL_AAR` environment variables to the current process. - ## Building Libs and Tests for Android Now we're ready to build everything for Android: diff --git a/eng/install-native-dependencies.sh b/eng/install-native-dependencies.sh index 1fdc2d3ba3a21d..b32774a68a7f07 100755 --- a/eng/install-native-dependencies.sh +++ b/eng/install-native-dependencies.sh @@ -46,19 +46,8 @@ elif [ "$1" = "OSX" ] || [ "$1" = "tvOS" ] || [ "$1" = "iOS" ]; then if [ "$?" != "0" ]; then exit 1; fi -elif [ "$1" = "Android" ]; then - if [ -z "${ANDROID_OPENSSL_AAR}" ]; then - echo "The ANDROID_OPENSSL_AAR variable is not set. OpenSSL will not be installed." - exit 0; - fi - if [ -d "${ANDROID_OPENSSL_AAR}" ]; then - exit 0; - fi - OPENSSL_VER=1.1.1g-alpha-1 - curl https://maven.google.com/com/android/ndk/thirdparty/openssl/${OPENSSL_VER}/openssl-${OPENSSL_VER}.aar -L --output /tmp/openssl.zip - unzip /tmp/openssl.zip -d "${ANDROID_OPENSSL_AAR}" && rm -rf /tmp/openssl.zip else - echo "Must pass \"Linux\", \"Android\", \"tvOS\", \"iOS\" or \"OSX\" as first argument." + echo "Must pass \"Linux\", \"tvOS\", \"iOS\" or \"OSX\" as first argument." exit 1 fi diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 3c4754e6ba273c..126cecfacaf05b 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -86,10 +86,6 @@ jobs: ${{ if ne(parameters.enableRichCodeNavigation, true) }}: value: '' - - ${{ if eq(parameters.osGroup, 'Android') }}: - - name: ANDROID_OPENSSL_AAR - value: /tmp/openssl-android - - ${{ each variable in parameters.variables }}: - ${{ variable }} @@ -108,7 +104,7 @@ jobs: artifact: Mono_Offsets_${{monoCrossAOTTargetOS}} path: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles' - - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS', 'Android') }}: + - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}: - script: $(Build.SourcesDirectory)/eng/install-native-dependencies.sh ${{ parameters.osGroup }} ${{ parameters.archType }} azDO displayName: Install Build Dependencies diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index 97a34f7f33d029..01ee98adb01def 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -64,6 +64,7 @@ jobs: buildConfig: Release runtimeFlavor: mono platforms: + - Android_x86 - Android_x64 - iOSSimulator_x64 variables: @@ -133,6 +134,17 @@ jobs: eq(variables['monoContainsChange'], true), eq(variables['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + platforms: + - Android_arm + jobParameters: + testGroup: innerloop + nameSuffix: Build_Subset_Mono + buildArgs: -subset mono+libs + # # Build the whole product using Mono and run libraries tests # @@ -252,34 +264,6 @@ jobs: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# -# Build Mono and Libraries for Android using Android native crypto instead of OpenSSL -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - Android_x64 - - Android_x86 - - Android_arm64 - variables: - # disable using OpenSSL - - name: ANDROID_OPENSSL_AAR - value: '' - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - jobParameters: - nameSuffix: Libraries_Mono_AndroidCrypto - buildArgs: -s mono+libs -c $(_BuildConfig) - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # Run disabled installer tests on Linux x64 - template: /eng/pipelines/common/platform-matrix.yml parameters: diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index e0d5603cba234c..4819accff31f08 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -222,7 +222,6 @@ jobs: buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} runtimeFlavor: mono platforms: - - Android_x86 - MacCatalyst_x64 - MacCatalyst_arm64 - tvOSSimulator_x64 @@ -246,7 +245,6 @@ jobs: buildConfig: Release runtimeFlavor: mono platforms: - - Android_arm - tvOS_arm64 - iOS_arm - Linux_musl_x64 diff --git a/eng/testing/AndroidRunnerTemplate.sh b/eng/testing/AndroidRunnerTemplate.sh index 0fd3a4a77c55a7..26698577798c1d 100644 --- a/eng/testing/AndroidRunnerTemplate.sh +++ b/eng/testing/AndroidRunnerTemplate.sh @@ -40,6 +40,7 @@ $HARNESS_RUNNER android test \ --package-name="net.dot.$ASSEMBLY_NAME" \ --app="$EXECUTION_DIR/bin/$TEST_NAME.apk" \ --output-directory="$XHARNESS_OUT" \ + --timeout=1800 \ $EXPECTED_EXIT_CODE _exitCode=$? diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index dad68387f86b5a..d287996e15eeb6 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -68,13 +68,6 @@ - - - GetIsRunningOnMonoInterpreter(); public static bool IsFreeBSD => RuntimeInformation.IsOSPlatform(OSPlatform.Create("FREEBSD")); public static bool IsNetBSD => RuntimeInformation.IsOSPlatform(OSPlatform.Create("NETBSD")); - public static bool IsAndroid => RuntimeInformation.IsOSPlatform(OSPlatform.Create("Android")); + public static bool IsAndroid => RuntimeInformation.IsOSPlatform(OSPlatform.Create("ANDROID")); public static bool IsiOS => RuntimeInformation.IsOSPlatform(OSPlatform.Create("IOS")); public static bool IstvOS => RuntimeInformation.IsOSPlatform(OSPlatform.Create("TVOS")); public static bool IsMacCatalyst => RuntimeInformation.IsOSPlatform(OSPlatform.Create("MACCATALYST")); diff --git a/src/libraries/Native/Unix/CMakeLists.txt b/src/libraries/Native/Unix/CMakeLists.txt index fab7c06dfc3d1a..f47135fd8871c8 100644 --- a/src/libraries/Native/Unix/CMakeLists.txt +++ b/src/libraries/Native/Unix/CMakeLists.txt @@ -254,13 +254,8 @@ elseif(CLR_CMAKE_TARGET_TVOS) #add_subdirectory(System.Net.Security.Native) # no gssapi on tvOS, see https://developer.apple.com/documentation/gss # System.Security.Cryptography.Native is intentionally disabled on tvOS # it is only used for interacting with OpenSSL which isn't useful there -elseif(CLR_CMAKE_TARGET_ANDROID AND NOT CROSS_ROOTFS) - #add_subdirectory(System.Net.Security.Native) # TODO: reenable - if (NOT "$ENV{ANDROID_OPENSSL_AAR}" STREQUAL "") - message("Using Android OpenSSL") - set(PREFER_OPENSSL_ANDROID 1) - add_subdirectory(System.Security.Cryptography.Native) - endif() +elseif(CLR_CMAKE_TARGET_ANDROID) + add_subdirectory(System.Security.Cryptography.Native.Android) else() add_subdirectory(System.Globalization.Native) add_subdirectory(System.Net.Security.Native) @@ -270,9 +265,3 @@ endif() if(CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS) add_subdirectory(System.Security.Cryptography.Native.Apple) endif() - -# if ANDROID_OPENSSL_AAR is not set - use Android Native Crypto (it's going to replace openssl eventually) -if(CLR_CMAKE_TARGET_ANDROID AND NOT PREFER_OPENSSL_ANDROID) - message("Using Android Native Crypto") - add_subdirectory(System.Security.Cryptography.Native.Android) -endif() diff --git a/src/libraries/Native/Unix/System.Security.Cryptography.Native/extra_libs.cmake b/src/libraries/Native/Unix/System.Security.Cryptography.Native/extra_libs.cmake index 5a0776577a98ac..3090da4e9d4121 100644 --- a/src/libraries/Native/Unix/System.Security.Cryptography.Native/extra_libs.cmake +++ b/src/libraries/Native/Unix/System.Security.Cryptography.Native/extra_libs.cmake @@ -3,28 +3,9 @@ macro(append_extra_cryptography_libs NativeLibsExtra) if(CMAKE_STATIC_LIB_LINK) set(CMAKE_FIND_LIBRARY_SUFFIXES .a) endif(CMAKE_STATIC_LIB_LINK) - - if(CLR_CMAKE_TARGET_ANDROID AND NOT CROSS_ROOTFS) - # TEMP: consume OpenSSL dependencies from external sources via env. variables - set(OPENSSL_FOUND 1) - set(OPENSSL_INCLUDE_DIR $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/include) - if(CLR_CMAKE_TARGET_ARCH_ARM64) - set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.arm64-v8a/libcrypto.so) - set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.arm64-v8a/libssl.so) - elseif(CLR_CMAKE_TARGET_ARCH_ARM) - set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.armeabi-v7a/libcrypto.so) - set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.armeabi-v7a/libssl.so) - elseif(CLR_CMAKE_TARGET_ARCH_I386) - set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.x86/libcrypto.so) - set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.x86/libssl.so) - else() - set(OPENSSL_CRYPTO_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/crypto/libs/android.x86_64/libcrypto.so) - set(OPENSSL_SSL_LIBRARY $ENV{ANDROID_OPENSSL_AAR}/prefab/modules/ssl/libs/android.x86_64/libssl.so) - endif() - else() - find_package(OpenSSL) - endif() - + + find_package(OpenSSL) + if(NOT OPENSSL_FOUND) message(FATAL_ERROR "!!! Cannot find libssl and System.Security.Cryptography.Native cannot build without it. Try installing libssl-dev (on Linux, but this may vary by distro) or openssl (on macOS) !!!. See the requirements document for your specific operating system: https://github.com/dotnet/runtime/tree/main/docs/workflow/requirements.") endif(NOT OPENSSL_FOUND) diff --git a/src/libraries/System.Collections.Immutable/tests/ImmutableArrayTest.cs b/src/libraries/System.Collections.Immutable/tests/ImmutableArrayTest.cs index 7349cefa67b5c3..14a42fba179564 100644 --- a/src/libraries/System.Collections.Immutable/tests/ImmutableArrayTest.cs +++ b/src/libraries/System.Collections.Immutable/tests/ImmutableArrayTest.cs @@ -1984,6 +1984,7 @@ public void IStructuralEquatableEqualsNullComparerInvalid() [Theory] [MemberData(nameof(IStructuralEquatableGetHashCodeData))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/37069", TestPlatforms.Android)] public void IStructuralEquatableGetHashCode(IEnumerable source, IEqualityComparer comparer) { var array = source.ToImmutableArray(); diff --git a/src/libraries/System.Collections.NonGeneric/tests/CaseInsensitiveComparerTests.cs b/src/libraries/System.Collections.NonGeneric/tests/CaseInsensitiveComparerTests.cs index 6a0428686cb38a..14261e4c8c031c 100644 --- a/src/libraries/System.Collections.NonGeneric/tests/CaseInsensitiveComparerTests.cs +++ b/src/libraries/System.Collections.NonGeneric/tests/CaseInsensitiveComparerTests.cs @@ -65,6 +65,7 @@ public void Ctor_CultureInfo_Compare(object a, object b, int expected) } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/37069", TestPlatforms.Android)] public void Ctor_CultureInfo_Compare_TurkishI() { var cultureNames = Helpers.TestCultureNames; diff --git a/src/libraries/System.Collections.NonGeneric/tests/CaseInsensitiveHashCodeProviderTests.cs b/src/libraries/System.Collections.NonGeneric/tests/CaseInsensitiveHashCodeProviderTests.cs index f41a9225e02468..e9120f915aaf3d 100644 --- a/src/libraries/System.Collections.NonGeneric/tests/CaseInsensitiveHashCodeProviderTests.cs +++ b/src/libraries/System.Collections.NonGeneric/tests/CaseInsensitiveHashCodeProviderTests.cs @@ -95,6 +95,7 @@ public void Ctor_CultureInfo_ChangeCurrentCulture_GetHashCodeCompare(object a, o } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/37069", TestPlatforms.Android)] public void Ctor_CultureInfo_GetHashCodeCompare_TurkishI() { var cultureNames = Helpers.TestCultureNames; @@ -150,6 +151,7 @@ public void Default_GetHashCodeCompare(object a, object b, bool expected) } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotInvariantGlobalization))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/37069", TestPlatforms.Android)] public void Default_Compare_TurkishI() { // Turkish has lower-case and upper-case version of the dotted "i", so the upper case of "i" (U+0069) isn't "I" (U+0049) diff --git a/src/libraries/System.IO.Compression/tests/CompressionStreamUnitTests.Deflate.cs b/src/libraries/System.IO.Compression/tests/CompressionStreamUnitTests.Deflate.cs index 2cdf0224710dd8..4feaee51111be1 100644 --- a/src/libraries/System.IO.Compression/tests/CompressionStreamUnitTests.Deflate.cs +++ b/src/libraries/System.IO.Compression/tests/CompressionStreamUnitTests.Deflate.cs @@ -30,6 +30,7 @@ public static IEnumerable DecompressFailsWithWrapperStream_MemberData( /// Test to pass GZipStream data and ZLibStream data to a DeflateStream [Theory] [MemberData(nameof(DecompressFailsWithWrapperStream_MemberData))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/36845", TestPlatforms.Android)] public async Task DecompressFailsWithWrapperStream(string uncompressedPath, string newDirectory, string newSuffix) { string fileName = Path.Combine(newDirectory, Path.GetFileName(uncompressedPath) + newSuffix); diff --git a/src/libraries/System.IO.Pipes/tests/NamedPipeTests/NamedPipeTest.UnixDomainSockets.cs b/src/libraries/System.IO.Pipes/tests/NamedPipeTests/NamedPipeTest.UnixDomainSockets.cs index 3f5a9e352d3484..7bab6b302d4dec 100644 --- a/src/libraries/System.IO.Pipes/tests/NamedPipeTests/NamedPipeTest.UnixDomainSockets.cs +++ b/src/libraries/System.IO.Pipes/tests/NamedPipeTests/NamedPipeTest.UnixDomainSockets.cs @@ -11,6 +11,7 @@ public class NamedPipeTest_UnixDomainSockets { [Fact] [PlatformSpecific(TestPlatforms.AnyUnix)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49873", TestPlatforms.Android)] public void NamedPipeServer_Connects_With_UnixDomainSocketEndPointClient() { string pipeName = Path.Combine("/tmp", "pipe-tests-corefx-" + Path.GetRandomFileName()); @@ -28,6 +29,7 @@ public void NamedPipeServer_Connects_With_UnixDomainSocketEndPointClient() [Fact] [PlatformSpecific(TestPlatforms.AnyUnix)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49873", TestPlatforms.Android)] public async Task NamedPipeClient_Connects_With_UnixDomainSocketEndPointServer() { string pipeName = Path.Combine("/tmp", "pipe-tests-corefx-" + Path.GetRandomFileName()); diff --git a/src/libraries/System.Net.Security/src/System.Net.Security.csproj b/src/libraries/System.Net.Security/src/System.Net.Security.csproj index c60878d25835e1..6c0a5b530fdf59 100644 --- a/src/libraries/System.Net.Security/src/System.Net.Security.csproj +++ b/src/libraries/System.Net.Security/src/System.Net.Security.csproj @@ -10,9 +10,7 @@ SR.SystemNetSecurity_PlatformNotSupported - - true + true true diff --git a/src/libraries/System.Private.Uri/tests/FunctionalTests/UriTests.cs b/src/libraries/System.Private.Uri/tests/FunctionalTests/UriTests.cs index 2b2222f315d823..24be0ef8227434 100644 --- a/src/libraries/System.Private.Uri/tests/FunctionalTests/UriTests.cs +++ b/src/libraries/System.Private.Uri/tests/FunctionalTests/UriTests.cs @@ -750,6 +750,7 @@ public static void Uri_CachesDnsSafeHost() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49932", TestPlatforms.Android)] public static void Uri_DoesNotLockOnString() { // Don't intern the string we lock on diff --git a/src/libraries/System.Runtime.Extensions/tests/System/AppDomainTests.cs b/src/libraries/System.Runtime.Extensions/tests/System/AppDomainTests.cs index baaeec5847b49f..1101f747efccdd 100644 --- a/src/libraries/System.Runtime.Extensions/tests/System/AppDomainTests.cs +++ b/src/libraries/System.Runtime.Extensions/tests/System/AppDomainTests.cs @@ -46,6 +46,7 @@ public void RelativeSearchPath_Is_Null() [Fact] [PlatformSpecific(~TestPlatforms.Browser)] // throws pNSE [ActiveIssue("https://github.com/dotnet/runtime/issues/49568", typeof(PlatformDetection), nameof(PlatformDetection.IsMacOsAppleSilicon))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49868", TestPlatforms.Android)] public void TargetFrameworkTest() { const int ExpectedExitCode = 0; @@ -794,7 +795,7 @@ public static void GetPermissionSet() } [Theory] - [ActiveIssue("https://github.com/dotnet/runtime/issues/34030", TestPlatforms.Linux | TestPlatforms.Browser, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/34030", TestPlatforms.Linux | TestPlatforms.Browser | TestPlatforms.Android, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] [MemberData(nameof(TestingCreateInstanceFromObjectHandleData))] public static void TestingCreateInstanceFromObjectHandle(string physicalFileName, string assemblyFile, string type, string returnedFullNameType, Type exceptionType) { @@ -894,7 +895,7 @@ public static void TestingCreateInstanceObjectHandle(string assemblyName, string }; [Theory] - [ActiveIssue("https://github.com/dotnet/runtime/issues/34030", TestPlatforms.Linux | TestPlatforms.Browser, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/34030", TestPlatforms.Linux | TestPlatforms.Browser | TestPlatforms.Android, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)] [MemberData(nameof(TestingCreateInstanceFromObjectHandleFullSignatureData))] public static void TestingCreateInstanceFromObjectHandleFullSignature(string physicalFileName, string assemblyFile, string type, bool ignoreCase, BindingFlags bindingAttr, Binder binder, object[] args, CultureInfo culture, object[] activationAttributes, string returnedFullNameType) { diff --git a/src/libraries/System.Runtime.Extensions/tests/System/Environment.Exit.cs b/src/libraries/System.Runtime.Extensions/tests/System/Environment.Exit.cs index d627a3099f34a8..2b49f421fb3418 100644 --- a/src/libraries/System.Runtime.Extensions/tests/System/Environment.Exit.cs +++ b/src/libraries/System.Runtime.Extensions/tests/System/Environment.Exit.cs @@ -44,6 +44,7 @@ public static void ExitCode_Roundtrips(int exitCode) [InlineData(3)] // using Exit(exitCode) [PlatformSpecific(~TestPlatforms.Browser)] // throws PNSE [ActiveIssue("https://github.com/dotnet/runtime/issues/49568", typeof(PlatformDetection), nameof(PlatformDetection.IsMacOsAppleSilicon))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49868", TestPlatforms.Android)] public static void ExitCode_VoidMainAppReturnsSetValue(int mode) { int expectedExitCode = 123; diff --git a/src/libraries/System.Runtime.Extensions/tests/System/EnvironmentTests.cs b/src/libraries/System.Runtime.Extensions/tests/System/EnvironmentTests.cs index fd6791c09817d2..8415493fbf0e17 100644 --- a/src/libraries/System.Runtime.Extensions/tests/System/EnvironmentTests.cs +++ b/src/libraries/System.Runtime.Extensions/tests/System/EnvironmentTests.cs @@ -399,6 +399,7 @@ public void GetSystemDirectory() [InlineData(Environment.SpecialFolder.MyMusic, Environment.SpecialFolderOption.DoNotVerify)] [InlineData(Environment.SpecialFolder.MyPictures, Environment.SpecialFolderOption.DoNotVerify)] [InlineData(Environment.SpecialFolder.Fonts, Environment.SpecialFolderOption.DoNotVerify)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49868", TestPlatforms.Android)] public void GetFolderPath_Unix_NonEmptyFolderPaths(Environment.SpecialFolder folder, Environment.SpecialFolderOption option) { Assert.NotEmpty(Environment.GetFolderPath(folder, option)); diff --git a/src/libraries/System.Runtime.Extensions/tests/System/OperatingSystemTests.cs b/src/libraries/System.Runtime.Extensions/tests/System/OperatingSystemTests.cs index c0e05a97e37d03..ffbcfbccd2966a 100644 --- a/src/libraries/System.Runtime.Extensions/tests/System/OperatingSystemTests.cs +++ b/src/libraries/System.Runtime.Extensions/tests/System/OperatingSystemTests.cs @@ -93,6 +93,7 @@ public static void IsOSPlatformVersionAtLeast_InvalidArgs_Throws() public static void TestIsOSVersionAtLeast_FreeBSD() => TestIsOSVersionAtLeast("FreeBSD"); [Fact, PlatformSpecific(TestPlatforms.Android)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49868", TestPlatforms.Android)] public static void TestIsOSPlatform_Android() => TestIsOSPlatform("Android", OperatingSystem.IsAndroid); [Fact, PlatformSpecific(TestPlatforms.Android)] diff --git a/src/libraries/System.Runtime.Extensions/tests/System/StringComparer.cs b/src/libraries/System.Runtime.Extensions/tests/System/StringComparer.cs index 62edd56f51cb08..aff008f36ada8a 100644 --- a/src/libraries/System.Runtime.Extensions/tests/System/StringComparer.cs +++ b/src/libraries/System.Runtime.Extensions/tests/System/StringComparer.cs @@ -96,6 +96,7 @@ public static IEnumerable UpperLowerCasing_TestData() [Theory] [MemberData(nameof(UpperLowerCasing_TestData))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49931", TestPlatforms.Android)] public static void CreateWithCulturesTest(string lowerForm, string upperForm, string cultureName) { CultureInfo ci = CultureInfo.GetCultureInfo(cultureName); @@ -195,6 +196,7 @@ public static void FromComparisonInvalidTest() [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotInvariantGlobalization))] [MemberData(nameof(CreateFromCultureAndOptionsData))] [MemberData(nameof(CreateFromCultureAndOptionsStringSortData))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49931", TestPlatforms.Android)] public static void CreateFromCultureAndOptions(string actualString, string expectedString, string cultureName, CompareOptions options, bool result) { CultureInfo ci = CultureInfo.GetCultureInfo(cultureName); @@ -206,6 +208,7 @@ public static void CreateFromCultureAndOptions(string actualString, string expec [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotInvariantGlobalization))] [MemberData(nameof(CreateFromCultureAndOptionsData))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49931", TestPlatforms.Android)] public static void CreateFromCultureAndOptionsStringSort(string actualString, string expectedString, string cultureName, CompareOptions options, bool result) { CultureInfo ci = CultureInfo.GetCultureInfo(cultureName); diff --git a/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/Marshal/OffsetOfTests.cs b/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/Marshal/OffsetOfTests.cs index f299734d5a9a1c..dd3ccea3e2dc49 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/Marshal/OffsetOfTests.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/Marshal/OffsetOfTests.cs @@ -33,6 +33,7 @@ public void OffsetOf_ClassWithSequentialLayout_ReturnsExpected() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49872", TestPlatforms.Android)] public void OffsetOf_ExplicitLayout_ReturnsExpected() { Type t = typeof(ExplicitLayoutTest); @@ -105,6 +106,7 @@ public void OffsetOf_ValidField_ReturnsExpected() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49872", TestPlatforms.Android)] public void OffsetOf_Decimal_ReturnsExpected() { Type t = typeof(FieldAlignmentTest_Decimal); diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj b/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj index 597e962d93a26c..a2f08a223a4f17 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj +++ b/src/libraries/System.Security.Cryptography.Algorithms/src/System.Security.Cryptography.Algorithms.csproj @@ -9,9 +9,7 @@ - - true + true true SR.SystemSecurityCryptographyAlgorithms_PlatformNotSupported ExcludeApiList.PNSE.Browser.txt diff --git a/src/libraries/System.Security.Cryptography.Algorithms/tests/System.Security.Cryptography.Algorithms.Tests.csproj b/src/libraries/System.Security.Cryptography.Algorithms/tests/System.Security.Cryptography.Algorithms.Tests.csproj index d761bed32cac7e..77ce3aa220dfc4 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/tests/System.Security.Cryptography.Algorithms.Tests.csproj +++ b/src/libraries/System.Security.Cryptography.Algorithms/tests/System.Security.Cryptography.Algorithms.Tests.csproj @@ -1,9 +1,7 @@ $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-Browser - - true + true true diff --git a/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj b/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj index 22f3d55350c20a..ea5329594dcfb0 100644 --- a/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj +++ b/src/libraries/System.Security.Cryptography.Encoding/src/System.Security.Cryptography.Encoding.csproj @@ -8,9 +8,7 @@ SR.SystemSecurityCryptographyEncoding_PlatformNotSupported - - true + true true diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj b/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj index 88e77c662a9427..ba34d878357480 100644 --- a/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj +++ b/src/libraries/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj @@ -10,9 +10,7 @@ SR.SystemSecurityCryptographyX509Certificates_PlatformNotSupported - - true + true true diff --git a/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj b/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj index e58fcfee9e437c..53d0dd75a0baa1 100644 --- a/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj +++ b/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj @@ -7,9 +7,7 @@ $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS - - true + true true diff --git a/src/libraries/System.Security.Cryptography.Xml/tests/EncryptedXmlTests.cs b/src/libraries/System.Security.Cryptography.Xml/tests/EncryptedXmlTests.cs index 286c089a237872..281d74a50d2b1a 100644 --- a/src/libraries/System.Security.Cryptography.Xml/tests/EncryptedXmlTests.cs +++ b/src/libraries/System.Security.Cryptography.Xml/tests/EncryptedXmlTests.cs @@ -11,6 +11,7 @@ namespace System.Security.Cryptography.Xml.Tests public static class EncryptedXmlTests { [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49871", TestPlatforms.Android)] public static void DecryptWithCertificate_NotInStore() { const string SecretMessage = "Grilled cheese is tasty"; diff --git a/src/libraries/System.Text.Json/tests/Serialization/NumberHandlingTests.cs b/src/libraries/System.Text.Json/tests/Serialization/NumberHandlingTests.cs index 83440a15969be7..ed58392341ef61 100644 --- a/src/libraries/System.Text.Json/tests/Serialization/NumberHandlingTests.cs +++ b/src/libraries/System.Text.Json/tests/Serialization/NumberHandlingTests.cs @@ -359,6 +359,7 @@ public class Class_With_ListsOfBoxedNonNumbers } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49936", TestPlatforms.Android)] public static void Number_AsCollectionElement_RoundTrip() { RunAsCollectionElementTest(JsonNumberTestData.Bytes); @@ -980,6 +981,7 @@ private static void AssertUnsupportedFormatThrows() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49936", TestPlatforms.Android)] public static void EscapingTest() { // Cause all characters to be escaped. diff --git a/src/libraries/System.Threading/tests/AutoResetEventTests.cs b/src/libraries/System.Threading/tests/AutoResetEventTests.cs index 749ea18d935310..4b0818bfe0f5e6 100644 --- a/src/libraries/System.Threading/tests/AutoResetEventTests.cs +++ b/src/libraries/System.Threading/tests/AutoResetEventTests.cs @@ -44,6 +44,7 @@ public void WaitHandleWait_Invalid() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public void WaitHandleWaitAll() { AutoResetEvent[] handles = new AutoResetEvent[10]; @@ -62,6 +63,7 @@ public void WaitHandleWaitAll() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public void WaitHandleWaitAny() { AutoResetEvent[] handles = new AutoResetEvent[10]; @@ -76,6 +78,7 @@ public void WaitHandleWaitAny() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public void PingPong() { using (AutoResetEvent are1 = new AutoResetEvent(true), are2 = new AutoResetEvent(false)) diff --git a/src/libraries/System.Threading/tests/ExecutionContextTests.cs b/src/libraries/System.Threading/tests/ExecutionContextTests.cs index 2054fb3045f69c..d813813bbc5535 100644 --- a/src/libraries/System.Threading/tests/ExecutionContextTests.cs +++ b/src/libraries/System.Threading/tests/ExecutionContextTests.cs @@ -62,6 +62,7 @@ public static void DisposeTest() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public static void FlowTest() { ThreadTestHelpers.RunTestInBackgroundThread(() => diff --git a/src/libraries/System.Threading/tests/ManualResetEventTests.cs b/src/libraries/System.Threading/tests/ManualResetEventTests.cs index 5079cf85053b83..5d170f089c0f0b 100644 --- a/src/libraries/System.Threading/tests/ManualResetEventTests.cs +++ b/src/libraries/System.Threading/tests/ManualResetEventTests.cs @@ -37,6 +37,7 @@ public void SetReset() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public void WaitHandleWaitAll() { ManualResetEvent[] handles = new ManualResetEvent[10]; @@ -55,6 +56,7 @@ public void WaitHandleWaitAll() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public void WaitHandleWaitAny() { ManualResetEvent[] handles = new ManualResetEvent[10]; @@ -69,6 +71,7 @@ public void WaitHandleWaitAny() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public void PingPong() { using (ManualResetEvent mre1 = new ManualResetEvent(true), mre2 = new ManualResetEvent(false)) diff --git a/src/libraries/System.Threading/tests/ReaderWriterLockTests.cs b/src/libraries/System.Threading/tests/ReaderWriterLockTests.cs index 370a5132dc5ecc..d7c08c6711865b 100644 --- a/src/libraries/System.Threading/tests/ReaderWriterLockTests.cs +++ b/src/libraries/System.Threading/tests/ReaderWriterLockTests.cs @@ -122,6 +122,7 @@ public static void InvalidLockCookieTest() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public static void BasicLockTest() { var trwl = new TestReaderWriterLock(); @@ -510,6 +511,7 @@ public static void WaitingReadersTest() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public static void WaitingWritersTest() { var trwl = new TestReaderWriterLock(); @@ -541,6 +543,7 @@ public static void WaitingWritersTest() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public static void ReadersWaitingOnWaitingWriterTest() { var trwl = new TestReaderWriterLock(); @@ -591,6 +594,7 @@ public static void ReadersWaitingOnWaitingWriterTest() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public static void ReadersWaitingOnWaitingUpgraderTest() { var trwl = new TestReaderWriterLock(); @@ -644,6 +648,7 @@ public static void ReadersWaitingOnWaitingUpgraderTest() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public static void WaitingUpgradersTest() { var trwl = new TestReaderWriterLock(); @@ -689,6 +694,7 @@ public static void WaitingUpgradersTest() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public static void AtomicRecursiveReaderTest() { var trwl = new TestReaderWriterLock(); @@ -715,6 +721,7 @@ public static void AtomicRecursiveReaderTest() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public static void AtomicDowngradeTest() { var trwl = new TestReaderWriterLock(); diff --git a/src/libraries/System.Threading/tests/SemaphoreTests.cs b/src/libraries/System.Threading/tests/SemaphoreTests.cs index b6c762d8c6609f..35d52e599dbfc8 100644 --- a/src/libraries/System.Threading/tests/SemaphoreTests.cs +++ b/src/libraries/System.Threading/tests/SemaphoreTests.cs @@ -139,6 +139,7 @@ public void Release() } [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/49890", TestPlatforms.Android)] public void AnonymousProducerConsumer() { using (Semaphore s = new Semaphore(0, int.MaxValue)) diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 49a1103f233575..55fdbc13f9f1fb 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -20,7 +20,15 @@ + + + + + + + + @@ -36,28 +44,24 @@ - - - + + - - + + - - - diff --git a/src/mono/sample/Android/AndroidSampleApp.csproj b/src/mono/sample/Android/AndroidSampleApp.csproj index 0853fd97915bb4..8dbf637c281200 100644 --- a/src/mono/sample/Android/AndroidSampleApp.csproj +++ b/src/mono/sample/Android/AndroidSampleApp.csproj @@ -55,14 +55,6 @@ x86 - - - - diff --git a/src/tests/run.proj b/src/tests/run.proj index 88123dfe941520..f5a67ace8c54a5 100644 --- a/src/tests/run.proj +++ b/src/tests/run.proj @@ -473,15 +473,6 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). SourceFiles="@(RuntimePackLibs)" DestinationFolder="$(BuildDir)" /> - - - - -