diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 601c4fd768e837..67ac0d5578a08b 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -15,7 +15,7 @@ ] }, "microsoft.dotnet.xharness.cli": { - "version": "8.0.0-prerelease.25427.2", + "version": "8.0.0-prerelease.25516.2", "commands": [ "xharness" ] diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 990716b1174c15..5801d6b9c49df6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,8 +1,8 @@ - + https://github.com/dotnet/icu - 34092c89640d48ae4f54ad425c3357ccfe1df414 + b565264ebc86c4444a7a5d411f69674393d61265 https://github.com/dotnet/msquic @@ -99,9 +99,9 @@ 81d2833ee1bf80f65cae9957c1926993ce1a299f - + https://github.com/dotnet/source-build-reference-packages - 55cc6bb942c12203e42ddb58f72cf5dbf1173eac + 449148366d9105de8a6470ebc4ba198926e9a30a @@ -111,9 +111,9 @@ - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 @@ -121,121 +121,121 @@ 73f0850939d96131c28cf6ea6ee5aacb4da0083a - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e https://github.com/dotnet/llvm-project @@ -322,21 +322,21 @@ https://github.com/dotnet/runtime edbd5c769a19798b6955050baccf99e6797d3208 - + https://github.com/dotnet/xharness - fc7f1ca0ff5b949ba7b7500e5aa9a01e4a43d894 + 402df9c4f5abe6ee8519181dfb5481e04099fab0 - + https://github.com/dotnet/xharness - fc7f1ca0ff5b949ba7b7500e5aa9a01e4a43d894 + 402df9c4f5abe6ee8519181dfb5481e04099fab0 - + https://github.com/dotnet/xharness - fc7f1ca0ff5b949ba7b7500e5aa9a01e4a43d894 + 402df9c4f5abe6ee8519181dfb5481e04099fab0 - + https://github.com/dotnet/arcade - 6544413e02741855b701468aa8afc6cf8ca62c72 + e8483fe03c7d3257c68f6013441da5d72eeb8392 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization @@ -354,13 +354,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-optimization 67613417f5e1af250e6ddfba79f8f2885d8e90fb - + https://github.com/dotnet/hotreload-utils - 7741c91e2ddf9791828e1fcf86108844c4222446 + cf2f6ad655ebd5397042ea09d529ecc0c194a499 - + https://github.com/dotnet/runtime-assets - fcd10a83bcad9c9e7ce4556f8b56c2579d7f00d8 + 40ac8f2e43695322e5472fef7f3ad85cfdd83e1e https://github.com/dotnet/roslyn @@ -400,9 +400,21 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-optimization 67613417f5e1af250e6ddfba79f8f2885d8e90fb - - + + https://github.com/NuGet/NuGet.Client + 8fef55f5a55a3b4f2c96cd1a9b5ddc51d4b927f8 + + + https://github.com/NuGet/NuGet.Client + 8fef55f5a55a3b4f2c96cd1a9b5ddc51d4b927f8 + + + https://github.com/NuGet/NuGet.Client + 8fef55f5a55a3b4f2c96cd1a9b5ddc51d4b927f8 + + https://github.com/NuGet/NuGet.Client 8fef55f5a55a3b4f2c96cd1a9b5ddc51d4b927f8 @@ -414,6 +426,18 @@ https://github.com/dotnet/msbuild 195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22 + + https://github.com/dotnet/msbuild + 195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22 + + + https://github.com/dotnet/msbuild + 195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22 + + + https://github.com/dotnet/msbuild + 195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22 + https://github.com/dotnet/msbuild 195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22 diff --git a/eng/Versions.props b/eng/Versions.props index b1523b96d76d8a..6e896fbe33b83c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -87,21 +87,21 @@ 8.0.100 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 - 2.5.1-beta.25515.1 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 - 8.0.0-beta.25515.1 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 + 2.5.1-beta.25562.3 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 + 8.0.0-beta.25562.3 6.0.0-preview.1.102 @@ -153,20 +153,20 @@ 4.5.0 8.0.0-rc.1.23406.6 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 - 8.0.0-beta.25504.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 + 8.0.0-beta.25565.1 1.0.0-prerelease.23566.3 1.0.0-prerelease.23566.3 @@ -195,10 +195,10 @@ 1.1.0 17.4.0-preview-20220707-01 - 8.0.0-prerelease.25427.2 - 8.0.0-prerelease.25427.2 - 8.0.0-prerelease.25427.2 - 8.0.0-alpha.0.25504.1 + 8.0.0-prerelease.25516.2 + 8.0.0-prerelease.25516.2 + 8.0.0-prerelease.25516.2 + 8.0.0-alpha.0.25574.3 2.4.2 1.0.0 2.4.5 @@ -229,7 +229,7 @@ 8.0.0-rc.1.23406.6 - 8.0.0-rtm.25504.1 + 8.0.0-rtm.25565.1 2.4.8 @@ -268,7 +268,7 @@ 3.1.7 1.0.406601 - 8.0.121 + 8.0.122 $(MicrosoftDotnetSdkInternalVersion) diff --git a/eng/common/templates-official/job/publish-build-assets.yml b/eng/common/templates-official/job/publish-build-assets.yml index a99d79df863c35..53109246d94823 100644 --- a/eng/common/templates-official/job/publish-build-assets.yml +++ b/eng/common/templates-official/job/publish-build-assets.yml @@ -152,6 +152,11 @@ jobs: BARBuildId: ${{ parameters.BARBuildId }} PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + # Darc is targeting 8.0, so make sure it's installed + - task: UseDotNet@2 + inputs: + version: 8.0.x + - task: AzureCLI@2 displayName: Publish Using Darc inputs: diff --git a/eng/common/templates-official/post-build/post-build.yml b/eng/common/templates-official/post-build/post-build.yml index 817e2d80dea168..07837055ee3066 100644 --- a/eng/common/templates-official/post-build/post-build.yml +++ b/eng/common/templates-official/post-build/post-build.yml @@ -271,6 +271,11 @@ stages: - task: NuGetAuthenticate@1 + # Darc is targeting 8.0, so make sure it's installed + - task: UseDotNet@2 + inputs: + version: 8.0.x + - task: AzureCLI@2 displayName: Publish Using Darc inputs: diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml index 1fcdcc9adc342e..b4ece772c32660 100644 --- a/eng/common/templates/job/publish-build-assets.yml +++ b/eng/common/templates/job/publish-build-assets.yml @@ -148,6 +148,11 @@ jobs: BARBuildId: ${{ parameters.BARBuildId }} PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + # Darc is targeting 8.0, so make sure it's installed + - task: UseDotNet@2 + inputs: + version: 8.0.x + - task: AzureCLI@2 displayName: Publish Using Darc inputs: diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index ea1785a8aa2662..96ca0688238491 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -267,6 +267,11 @@ stages: - task: NuGetAuthenticate@1 + # Darc is targeting 8.0, so make sure it's installed + - task: UseDotNet@2 + inputs: + version: 8.0.x + - task: AzureCLI@2 displayName: Publish Using Darc inputs: diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake index 9a8f16fb457642..5da65d586f8613 100644 --- a/eng/native/configurecompiler.cmake +++ b/eng/native/configurecompiler.cmake @@ -500,9 +500,21 @@ if (CLR_CMAKE_HOST_UNIX) #-fms-compatibility Enable full Microsoft Visual C++ compatibility #-fms-extensions Accept some non-standard constructs supported by the Microsoft compiler - # Make signed arithmetic overflow of addition, subtraction, and multiplication wrap around - # using twos-complement representation (this is normally undefined according to the C++ spec). - add_compile_options(-fwrapv) + if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 20.0) OR + (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 20.0)) + # Make signed overflow well-defined. Implies the following flags in clang-20 and above. + # -fwrapv - Make signed arithmetic overflow of addition, subtraction, and multiplication wrap around + # using twos-complement representation (this is normally undefined according to the C++ spec). + # -fwrapv-pointer - The same as -fwrapv but for pointers. + add_compile_options(-fno-strict-overflow) + + # Suppress C++ strict aliasing rules. This matches our use of MSVC. + add_compile_options(-fno-strict-aliasing) + else() + # Make signed arithmetic overflow of addition, subtraction, and multiplication wrap around + # using twos-complement representation (this is normally undefined according to the C++ spec). + add_compile_options(-fwrapv) + endif() if(CLR_CMAKE_HOST_APPLE) # Clang will by default emit objc_msgSend stubs in Xcode 14, which ld from earlier Xcodes doesn't understand. diff --git a/eng/pipelines/common/templates/pipeline-with-resources.yml b/eng/pipelines/common/templates/pipeline-with-resources.yml index da0c42177690c4..7a81bea1da073f 100644 --- a/eng/pipelines/common/templates/pipeline-with-resources.yml +++ b/eng/pipelines/common/templates/pipeline-with-resources.yml @@ -74,11 +74,11 @@ extends: # We use a CentOS Stream 9 image here to test building from source on CentOS Stream 9. SourceBuild_centos_x64: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9 + image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-9-amd64 # AlmaLinux 8 is a RHEL 8 rebuild, so we use it to test building from source on RHEL 8. SourceBuild_linux_x64: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:almalinux-8-source-build + image: mcr.microsoft.com/dotnet-buildtools/prereqs:almalinux-9-source-build-amd64 linux_s390x: image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net8.0-cross-s390x @@ -99,7 +99,7 @@ extends: image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-gcc13-amd64 linux_x64_llvmaot: - image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9 + image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-9-amd64 browser_wasm: image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net8.0-webassembly-amd64 diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 07d84b74c15e8e..104418cbdd157f 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -52,7 +52,7 @@ jobs: # Browser wasm - ${{ if eq(parameters.platform, 'browser_wasm') }}: - - (Ubuntu.2204.Amd64)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly + - (Ubuntu.2204.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly # iOS devices - ${{ if in(parameters.platform, 'ios_arm64') }}: @@ -65,44 +65,44 @@ jobs: # Linux arm - ${{ if eq(parameters.platform, 'linux_arm') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - (Ubuntu.2204.Arm32.Open)Ubuntu.2204.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-arm32v7 + - (Ubuntu.2204.Arm32.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-arm32v7 - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - (Ubuntu.2204.Arm32)Ubuntu.2204.Armarch@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-arm32v7 + - (Ubuntu.2204.Arm32)AzureLinux.3.Arm64@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-arm32v7 # Linux arm64 - ${{ if eq(parameters.platform, 'linux_arm64') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - (Ubuntu.2204.Arm64.Open)Ubuntu.2204.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-arm64v8 + - (Ubuntu.2204.Arm64.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-arm64v8 - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - (Ubuntu.2204.Arm64)Ubuntu.2204.ArmArch@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-arm64v8 + - (Ubuntu.2204.Arm64)AzureLinux.3.Arm64@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-arm64v8 # Linux musl x64 - ${{ if eq(parameters.platform, 'linux_musl_x64') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - (Alpine.321.Amd64.Open)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.21-helix-amd64 + - (Alpine.323.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.23-helix-amd64 - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - (Alpine.321.Amd64)Ubuntu.2204.Amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.21-helix-amd64 + - (Alpine.323.Amd64)AzureLinux.3.Amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.23-helix-amd64 # Linux musl arm32 - ${{ if eq(parameters.platform, 'linux_musl_arm') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - (Alpine.321.Arm32.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.21-helix-arm32v7 + - (Alpine.323.Arm32.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.23-helix-arm32v7 - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - (Alpine.321.Arm32)Ubuntu.2204.ArmArch@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.21-helix-arm32v7 + - (Alpine.323.Arm32)AzureLinux.3.Arm64@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.23-helix-arm32v7 # Linux musl arm64 - ${{ if eq(parameters.platform, 'linux_musl_arm64') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - (Alpine.320.Arm64.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.20-helix-arm64v8 + - (Alpine.323.Arm64.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.23-helix-arm64v8 - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - (Alpine.320.Arm64)Ubuntu.2204.ArmArch@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.20-helix-arm64v8 + - (Alpine.323.Arm64)AzureLinux.3.Arm64@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.23-helix-arm64v8 # Linux x64 - ${{ if eq(parameters.platform, 'linux_x64') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - Ubuntu.2004.Amd64.Open + - AzureLinux.3.Amd64.Open - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - Ubuntu.2004.Amd64 + - AzureLinux.3.Amd64 # OSX arm64 - ${{ if eq(parameters.platform, 'osx_arm64') }}: diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml index 3fe2e54610d925..3c5df807855b0d 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml @@ -80,67 +80,6 @@ jobs: - normal - WasmTestOnBrowser - # this only runs on the extra pipeline - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _NodeJs - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - alwaysRun: ${{ parameters.isWasmOnlyBuild }} - scenarios: - - WasmTestOnNodeJS - - # Library tests - Windows - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm_win - # Don't run for rolling builds, as this is covered - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - scenarios: - - WasmTestOnBrowser - - WasmTestOnNodeJS - - # Smoke tests only with full threading - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - #- browser_wasm_win - nameSuffix: _Threading_Smoke - extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:WasmEnableThreads=true /p:_WasmPThreadPoolSize=8 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - shouldRunSmokeOnly: true - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - # Always run for runtime-wasm because browser testing is not on runtime - alwaysRun: ${{ parameters.isWasmOnlyBuild }} - scenarios: - - WasmTestOnBrowser - - # Library tests with full threading - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - #- browser_wasm_win - nameSuffix: _Threading - extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:WasmEnableThreads=true /p:_WasmPThreadPoolSize=8 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - # Always run for runtime-wasm because tests are not run in runtime - alwaysRun: ${{ parameters.isWasmOnlyBuild }} - - # NOTE - Since threading is experimental, we don't want to block mainline work - shouldContinueOnError: true - scenarios: - - WasmTestOnBrowser - #- WasmTestOnNodeJS - this is not supported yet, https://github.com/dotnet/runtime/issues/85592 - - # EAT Library tests - only run on linux - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml parameters: @@ -193,7 +132,38 @@ jobs: shouldContinueOnError: ${{ not(parameters.isWasmOnlyBuild) }} alwaysRun: ${{ variables.isRollingBuild }} scenarios: - - normal + - WasmTestOnWasmtime + + # Hybrid Globalization tests + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - browser_wasm + - browser_wasm_win + nameSuffix: _HybridGlobalization + extraBuildArgs: /p:HybridGlobalization=true + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} + alwaysRun: true + scenarios: + - WasmTestOnChrome + - WasmTestOnFirefox + + # # Hybrid Globalization AOT tests + # # ActiveIssue: https://github.com/dotnet/runtime/issues/51746 + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm + # - browser_wasm_win + # nameSuffix: _HybridGlobalization_AOT + # extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) /p:HybridGlobalization=true + # runAOT: true + # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + # isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} + # alwaysRun: true + # scenarios: + # - WasmTestOnChrome - ${{ if and(ne(parameters.isRollingBuild, true), ne(parameters.excludeNonLibTests, true), ne(parameters.debuggerTestsOnly, true)) }}: # Builds only diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index ef219f7d5ce42a..9d5c4b8e3e52f2 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -28,58 +28,51 @@ jobs: # Linux arm - ${{ if eq(parameters.platform, 'linux_arm') }}: - ${{ if or(eq(parameters.jobParameters.isExtraPlatforms, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}: - - (Debian.12.Arm32.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-arm32v7 - - # Linux armv6 - - ${{ if eq(parameters.platform, 'linux_armv6') }}: -# - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}: - - (Raspbian.10.Armv6.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:raspbian-10-helix-arm32v6 + - (Debian.12.Arm32.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-arm32v7 # Linux arm64 - ${{ if eq(parameters.platform, 'linux_arm64') }}: - - ${{ if or(eq(parameters.jobParameters.isExtraPlatforms, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}: - - (Ubuntu.2204.Arm64.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-arm64v8 - - ${{ if or(ne(parameters.jobParameters.isExtraPlatforms, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}: - - (Ubuntu.2204.Arm64.Open)Ubuntu.2204.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-arm64v8 - - ${{ if or(ne(parameters.jobParameters.isExtraPlatforms, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}: - - (Debian.12.Arm64.Open)Ubuntu.2204.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-arm64v8 - + - ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}: + - (Ubuntu.2204.ArmArch.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-arm64v8 + - ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}: + - (AzureLinux.3.ArmArch.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-helix-arm64v8 + # Linux musl x64 - ${{ if eq(parameters.platform, 'linux_musl_x64') }}: - - ${{ if or(ne(parameters.jobParameters.isExtraPlatforms, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}: - - (Alpine.321.Amd64.Open)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.21-helix-amd64 - - ${{ if or(eq(parameters.jobParameters.isExtraPlatforms, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}: - - (Alpine.321.Amd64.Open)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.21-helix-amd64 + - (Alpine.323.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.23-helix-amd64 # Linux musl arm64 - - ${{ if and(eq(parameters.platform, 'linux_musl_arm64'), or(eq(parameters.jobParameters.isExtraPlatforms, true), eq(parameters.jobParameters.includeAllPlatforms, true))) }}: - - (Alpine.320.Arm64.Open)ubuntu.2204.armarch.open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.20-helix-arm64v8 - + - ${{ if eq(parameters.platform, 'linux_musl_arm64') }}: + - ${{ if or(eq(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}: + - (Alpine.323.Arm64.Open)AzureLinux.3.Arm64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.23-helix-arm64v8 + # Linux x64 - ${{ if eq(parameters.platform, 'linux_x64') }}: - - ${{ if and(eq(parameters.jobParameters.interpreter, ''), ne(parameters.jobParameters.isSingleFile, true)) }}: - - ${{ if and(eq(parameters.jobParameters.testScope, 'outerloop'), eq(parameters.jobParameters.runtimeFlavor, 'mono')) }}: - - SLES.15.Amd64.Open - - (Centos.9.Amd64.Open)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9-helix - - (Fedora.41.Amd64.Open)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-41-helix - - (Ubuntu.2204.Amd64.Open)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-amd64 - - (Debian.12.Amd64.Open)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-amd64 - - ${{ if or(ne(parameters.jobParameters.testScope, 'outerloop'), ne(parameters.jobParameters.runtimeFlavor, 'mono')) }}: - - ${{ if or(eq(parameters.jobParameters.isExtraPlatforms, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}: - - SLES.15.Amd64.Open - - (Fedora.41.Amd64.Open)Ubuntu.2204.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-41-helix - - Ubuntu.2204.Amd64.Open - - (Debian.12.Amd64.Open)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-amd64 - - (Mariner.2.0.Amd64.Open)Ubuntu.2204.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-helix-amd64 - - (AzureLinux.3.0.Amd64.Open)Ubuntu.2204.Amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-helix-amd64 - - (openSUSE.15.6.Amd64.Open)Ubuntu.2204.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:opensuse-15.6-helix-amd64 - - ${{ if or(ne(parameters.jobParameters.isExtraPlatforms, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}: - - (Centos.9.Amd64.Open)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9-helix - - (Debian.12.Amd64.Open)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-amd64 - - Ubuntu.2004.Amd64.Open - ${{ if or(eq(parameters.jobParameters.interpreter, 'true'), eq(parameters.jobParameters.isSingleFile, true)) }}: # Limiting interp runs as we don't need as much coverage. - - (Debian.12.Amd64.Open)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-amd64 + - (Debian.12.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-amd64 + + - ${{ else }}: + - ${{ if eq(parameters.jobParameters.runtimeFlavor, 'mono') }}: + # Mono path - test minimal scenario + - (Ubuntu.2204.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-amd64 + - ${{ else }}: + # CoreCLR path + - ${{ if and(eq(parameters.jobParameters.isExtraPlatformsBuild, true), ne(parameters.jobParameters.testScope, 'outerloop'))}}: + # extra-platforms CoreCLR (inner loop only) + - AzureLinux.3.Amd64.Open + - (Debian.12.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-amd64 + - (Mariner.2.0.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-helix-amd64 + + - ${{ if eq(parameters.jobParameters.testScope, 'outerloop') }}: + # outerloop only CoreCLR + - AzureLinux.3.Amd64.Open + + - ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true))}}: + # inner and outer loop CoreCLR (general set) + - Ubuntu.2204.Amd64.Open + - (AzureLinux.3.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-helix-amd64 + - (Centos.10.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-10-helix-amd64 # OSX arm64 - ${{ if eq(parameters.platform, 'osx_arm64') }}: @@ -162,15 +155,15 @@ jobs: # WASI - ${{ if eq(parameters.platform, 'wasi_wasm') }}: - - (Ubuntu.2004.Amd64)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-20.04-helix-wasm-amd64 + - (Ubuntu.2204.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly-amd64 # Browser WebAssembly - ${{ if eq(parameters.platform, 'browser_wasm') }}: - - (Ubuntu.2204.Amd64)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly + - (Ubuntu.2204.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly # Browser WebAssembly Firefox - ${{ if eq(parameters.platform, 'browser_wasm_firefox') }}: - - (Ubuntu.2204.Amd64)Ubuntu.2204.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly + - (Ubuntu.2204.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-webassembly # Browser WebAssembly windows - ${{ if in(parameters.platform, 'browser_wasm_win', 'wasi_wasm_win') }}: diff --git a/eng/testing/WasmRunnerTemplate.cmd b/eng/testing/WasmRunnerTemplate.cmd index a8c9c0ac571269..3df85759dadf65 100644 --- a/eng/testing/WasmRunnerTemplate.cmd +++ b/eng/testing/WasmRunnerTemplate.cmd @@ -34,11 +34,7 @@ if [%XHARNESS_COMMAND%] == [] ( if /I [%XHARNESS_COMMAND%] == [test] ( if [%JS_ENGINE%] == [] ( - if /I [%SCENARIO%] == [WasmTestOnNodeJS] ( - set "JS_ENGINE=--engine^=NodeJS" - ) else ( - set "JS_ENGINE=--engine^=V8" - ) + set "JS_ENGINE=--engine^=V8" ) if [%MAIN_JS%] == [] ( set "MAIN_JS=--js-file^=test-main.js" @@ -46,12 +42,6 @@ if /I [%XHARNESS_COMMAND%] == [test] ( if [%JS_ENGINE_ARGS%] == [] ( set "JS_ENGINE_ARGS=--engine-arg^=--stack-trace-limit^=1000" - if /I NOT [%SCENARIO%] == [WasmTestOnNodeJS] ( - set "JS_ENGINE_ARGS=%JS_ENGINE_ARGS% --engine-arg^=--module" - ) - if /I [%SCENARIO%] == [WasmTestOnNodeJS] ( - set "JS_ENGINE_ARGS=%JS_ENGINE_ARGS% --engine-arg^=--experimental-wasm-eh" - ) ) ) else ( if [%BROWSER_PATH%] == [] if not [%HELIX_CORRELATION_PAYLOAD%] == [] ( diff --git a/eng/testing/WasmRunnerTemplate.sh b/eng/testing/WasmRunnerTemplate.sh index 8b4e9adb10c2ef..09adc96ac1a81e 100644 --- a/eng/testing/WasmRunnerTemplate.sh +++ b/eng/testing/WasmRunnerTemplate.sh @@ -48,11 +48,26 @@ if [[ "$XHARNESS_COMMAND" == "test" ]]; then if [[ -z "$JS_ENGINE_ARGS" ]]; then JS_ENGINE_ARGS="--engine-arg=--stack-trace-limit=1000" - if [[ "$SCENARIO" != "WasmTestOnNodeJS" && "$SCENARIO" != "wasmtestonnodejs" ]]; then - JS_ENGINE_ARGS="$JS_ENGINE_ARGS --engine-arg=--module" + JS_ENGINE_ARGS="$JS_ENGINE_ARGS --engine-arg=--module" + fi + + if [[ -z "$JS_ENGINE" ]]; then + JS_ENGINE="--engine=V8" + if [[ -n "$V8_PATH_FOR_TESTS" ]]; then + JS_ENGINE_ARGS="$JS_ENGINE_ARGS --js-engine-path=$V8_PATH_FOR_TESTS" fi - if [[ "$SCENARIO" == "WasmTestOnNodeJS" || "$SCENARIO" == "wasmtestonnodejs" ]]; then - JS_ENGINE_ARGS="$JS_ENGINE_ARGS --engine-arg=--experimental-wasm-eh" + fi +else + if [[ "$SCENARIO" == "WasmTestOnChrome" || "$SCENARIO" == "wasmtestonchrome" ]]; then + if [[ -z "$JS_ENGINE_ARGS" ]]; then + JS_ENGINE_ARGS="--browser-arg=--js-flags=--stack-trace-limit=1000" + fi + elif [[ "$SCENARIO" == "WasmTestOnFirefox" || "$SCENARIO" == "wasmtestonfirefox" ]]; then + if [[ -z "$JS_ENGINE" ]]; then + JS_ENGINE="--browser=Firefox" + fi + if [[ -z "$JS_ENGINE_ARGS" ]]; then + JS_ENGINE_ARGS="--browser-arg=-private-window" fi fi fi diff --git a/eng/testing/tests.browser.targets b/eng/testing/tests.browser.targets index 8c4b3e46c9eac9..dc641cd37b27b4 100644 --- a/eng/testing/tests.browser.targets +++ b/eng/testing/tests.browser.targets @@ -244,15 +244,9 @@ - - - - - - diff --git a/global.json b/global.json index 8a92d2af0e6fcf..eea4c3f60c15b8 100644 --- a/global.json +++ b/global.json @@ -1,16 +1,16 @@ { "sdk": { - "version": "8.0.121", + "version": "8.0.122", "allowPrerelease": true, "rollForward": "major" }, "tools": { - "dotnet": "8.0.121" + "dotnet": "8.0.122" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25515.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.25515.1", - "Microsoft.DotNet.SharedFramework.Sdk": "8.0.0-beta.25515.1", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25562.3", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.25562.3", + "Microsoft.DotNet.SharedFramework.Sdk": "8.0.0-beta.25562.3", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.NET.Sdk.IL": "8.0.0-rc.1.23406.6" diff --git a/src/coreclr/debug/di/rspriv.h b/src/coreclr/debug/di/rspriv.h index 4f55cea3ee3b85..dca8726db8bebf 100644 --- a/src/coreclr/debug/di/rspriv.h +++ b/src/coreclr/debug/di/rspriv.h @@ -6354,8 +6354,8 @@ class CordbThread : public CordbBase, public ICorDebugThread, // Lazily initialized. EXCEPTION_RECORD * m_pExceptionRecord; - static const CorDebugUserState kInvalidUserState = CorDebugUserState(-1); - CorDebugUserState m_userState; // This is the current state of the + static const int kInvalidUserState = -1; + int m_userState; // This is the current state of the // thread, at the time that the // left side synchronized diff --git a/src/coreclr/debug/di/rsthread.cpp b/src/coreclr/debug/di/rsthread.cpp index 4cc387235910c9..c23875b8e016b3 100644 --- a/src/coreclr/debug/di/rsthread.cpp +++ b/src/coreclr/debug/di/rsthread.cpp @@ -783,7 +783,7 @@ CorDebugUserState CordbThread::GetUserState() m_userState = pDAC->GetUserState(m_vmThreadToken); } - return m_userState; + return (CorDebugUserState)m_userState; } @@ -887,7 +887,7 @@ HRESULT CordbThread::CreateStepper(ICorDebugStepper ** ppStepper) //Returns true if current user state of a thread is USER_WAIT_SLEEP_JOIN bool CordbThread::IsThreadWaitingOrSleeping() { - CorDebugUserState userState = m_userState; + int userState = m_userState; if (userState == kInvalidUserState) { //If m_userState is not ready, we'll read from DAC only part of it which diff --git a/src/coreclr/nativeaot/BuildIntegration/findvcvarsall.bat b/src/coreclr/nativeaot/BuildIntegration/findvcvarsall.bat index efee6316785f66..6a712f920e71f2 100644 --- a/src/coreclr/nativeaot/BuildIntegration/findvcvarsall.bat +++ b/src/coreclr/nativeaot/BuildIntegration/findvcvarsall.bat @@ -15,7 +15,6 @@ IF /I "%~1"=="arm64" SET toolsSuffix=ARM64 FOR /F "tokens=*" %%i IN ( '"%vswherePath%" -latest -prerelease -products * ^ -requires Microsoft.VisualStudio.Component.VC.Tools.%toolsSuffix% ^ - -version [16^,18^) ^ -property installationPath' ) DO SET vsBase=%%i diff --git a/src/libraries/Common/tests/System/Net/Prerequisites/LocalEchoServer.helix.targets b/src/libraries/Common/tests/System/Net/Prerequisites/LocalEchoServer.helix.targets index 80f1eb750e10f1..0ce76102c0f71a 100644 --- a/src/libraries/Common/tests/System/Net/Prerequisites/LocalEchoServer.helix.targets +++ b/src/libraries/Common/tests/System/Net/Prerequisites/LocalEchoServer.helix.targets @@ -1,7 +1,7 @@ + '$(Scenario)' == 'WasmTestOnBrowser')"> $(HelixExtensionTargets);_AddMiddlewarePayload $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'bin', 'NetCoreServer', '$(Configuration)', '$(AspNetCoreAppCurrent)')) diff --git a/src/libraries/Common/tests/System/Net/Prerequisites/LocalEchoServer.props b/src/libraries/Common/tests/System/Net/Prerequisites/LocalEchoServer.props index 53fe2308aa5458..d8aa8bcff26cfb 100644 --- a/src/libraries/Common/tests/System/Net/Prerequisites/LocalEchoServer.props +++ b/src/libraries/Common/tests/System/Net/Prerequisites/LocalEchoServer.props @@ -36,15 +36,4 @@ - - - - - - - - - - - diff --git a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs index 17aa423c3aaebb..a37a35a3022da5 100644 --- a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs +++ b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Unix.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System; using System.IO; using System.Runtime.InteropServices; @@ -32,6 +33,8 @@ public static partial class PlatformDetection public static bool IsMonoLinuxArm64 => IsMonoRuntime && IsLinux && IsArm64Process; public static bool IsNotMonoLinuxArm64 => !IsMonoLinuxArm64; public static bool IsNotAzureLinux => !IsAzureLinux; + public static bool IsQemuLinux => IsLinux && Environment.GetEnvironmentVariable("DOTNET_RUNNING_UNDER_QEMU") != null; + public static bool IsNotQemuLinux => !IsQemuLinux; // OSX family public static bool IsOSXLike => IsOSX || IsiOS || IstvOS || IsMacCatalyst; diff --git a/src/libraries/System.Globalization.Calendars/tests/Hybrid/System.Globalization.Calendars.Hybrid.WASM.Tests.csproj b/src/libraries/System.Globalization.Calendars/tests/Hybrid/System.Globalization.Calendars.Hybrid.WASM.Tests.csproj index 79d84271152dc4..7d12092bdbd88d 100644 --- a/src/libraries/System.Globalization.Calendars/tests/Hybrid/System.Globalization.Calendars.Hybrid.WASM.Tests.csproj +++ b/src/libraries/System.Globalization.Calendars/tests/Hybrid/System.Globalization.Calendars.Hybrid.WASM.Tests.csproj @@ -8,7 +8,7 @@ WasmTestOnBrowser - $(TestArchiveRoot)browserornodejs/ + $(TestArchiveRoot)browseronly/ $(TestArchiveTestsRoot)$(OSPlatformConfig)/ $(DefineConstants);TARGET_BROWSER true diff --git a/src/libraries/System.Globalization/tests/Hybrid/System.Globalization.Hybrid.WASM.Tests.csproj b/src/libraries/System.Globalization/tests/Hybrid/System.Globalization.Hybrid.WASM.Tests.csproj index f4e811abb490be..2f42822fdae435 100644 --- a/src/libraries/System.Globalization/tests/Hybrid/System.Globalization.Hybrid.WASM.Tests.csproj +++ b/src/libraries/System.Globalization/tests/Hybrid/System.Globalization.Hybrid.WASM.Tests.csproj @@ -9,7 +9,7 @@ WasmTestOnBrowser - $(TestArchiveRoot)browserornodejs/ + $(TestArchiveRoot)browseronly/ $(TestArchiveTestsRoot)$(OSPlatformConfig)/ $(DefineConstants);TARGET_BROWSER true diff --git a/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj b/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj index be0d1f463fad79..7b3d6b295d7a37 100644 --- a/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj +++ b/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj @@ -9,7 +9,7 @@ WasmTestOnBrowser - $(TestArchiveRoot)browserornodejs/ + $(TestArchiveRoot)browseronly/ $(TestArchiveTestsRoot)$(OSPlatformConfig)/ $(DefineConstants);TARGET_BROWSER diff --git a/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj b/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj index 7715606fcfdd4d..028991a625cb98 100644 --- a/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj +++ b/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj @@ -8,7 +8,7 @@ WasmTestOnBrowser - $(TestArchiveRoot)browserornodejs/ + $(TestArchiveRoot)browseronly/ $(TestArchiveTestsRoot)$(OSPlatformConfig)/ $(DefineConstants);TARGET_BROWSER diff --git a/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj b/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj index ecb5832af79ca1..61435a06dc484c 100644 --- a/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj +++ b/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj @@ -22,7 +22,7 @@ WasmTestOnBrowser - $(TestArchiveRoot)browserornodejs/ + $(TestArchiveRoot)browseronly/ $(TestArchiveTestsRoot)$(OSPlatformConfig)/ $(DefineConstants);TARGET_BROWSER --setenv=XHARNESS_LOG_TEST_START=true --no-memory-snapshot diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/ArgumentValidationTests.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/ArgumentValidationTests.cs index f0f7ed672ac044..5f490719bc0abf 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/ArgumentValidationTests.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/ArgumentValidationTests.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; - +using Microsoft.DotNet.XUnitExtensions; using Xunit; namespace System.Net.Sockets.Tests @@ -792,7 +792,7 @@ await Task.WhenAll( } } - [Theory] + [ConditionalTheory] [PlatformSpecific(TestPlatforms.AnyUnix)] // API throws PNSE on Unix [InlineData(0)] [InlineData(1)] @@ -800,6 +800,11 @@ public void Connect_ConnectTwice_NotSupported(int invalidatingAction) { using (Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) { + if (PlatformDetection.IsQemuLinux && invalidatingAction == 1) + { + throw new SkipTestException("Skip on Qemu due to [ActiveIssue(https://github.com/dotnet/runtime/issues/104542)]"); + } + switch (invalidatingAction) { case 0: @@ -823,7 +828,7 @@ public void Connect_ConnectTwice_NotSupported(int invalidatingAction) } } - [Theory] + [ConditionalTheory] [PlatformSpecific(TestPlatforms.AnyUnix)] // API throws PNSE on Unix [InlineData(0)] [InlineData(1)] @@ -833,6 +838,11 @@ public void ConnectAsync_ConnectTwice_NotSupported(int invalidatingAction) using (Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) { + if (PlatformDetection.IsQemuLinux && invalidatingAction == 1) + { + throw new SkipTestException("Skip on Qemu due to [ActiveIssue(https://github.com/dotnet/runtime/issues/104542)]"); + } + switch (invalidatingAction) { case 0: diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/KeepAliveTest.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/KeepAliveTest.cs index c7d119d00dbdf9..572bd77ea77fa9 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/KeepAliveTest.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/KeepAliveTest.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Runtime.InteropServices; +using Microsoft.DotNet.XUnitExtensions; using Xunit; namespace System.Net.Sockets.Tests @@ -122,6 +123,7 @@ public void Socket_KeepAlive_Interval_And_Time() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/104545", typeof(PlatformDetection), nameof(PlatformDetection.IsQemuLinux))] public void Socket_Get_KeepAlive_Time_AsByteArray_OptionLengthZero_Failure() { using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) @@ -138,12 +140,17 @@ public void Socket_Get_KeepAlive_Time_AsByteArray_OptionLengthZero_Failure() } } - [Theory] + [ConditionalTheory] [InlineData(null)] [InlineData(new byte[0])] [InlineData(new byte[3] { 0, 0, 0 })] public void Socket_Get_KeepAlive_Time_AsByteArray_BufferNullOrTooSmall_Failure(byte[] buffer) { + if (PlatformDetection.IsQemuLinux && (buffer == null || buffer.Length == 0)) + { + throw new SkipTestException("Skip on Qemu due to [ActiveIssue(https://github.com/dotnet/runtime/issues/104545)]"); + } + using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) { if (PlatformDetection.IsWindows) diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs index 27bfefdfab9118..9bce450ddb7b52 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs @@ -15,6 +15,9 @@ namespace System.Net.Sockets.Tests public partial class SocketOptionNameTest { private static bool SocketsReuseUnicastPortSupport => Capability.SocketsReuseUnicastPortSupport().HasValue; + // Does not work on Nano and Qemu and AzureLinux has firewall enabled by default + private static readonly bool CanRunMulticastTests = !(PlatformDetection.IsWindowsNanoServer || PlatformDetection.IsWindowsServerCore || + PlatformDetection.IsAzureLinux || PlatformDetection.IsQemuLinux); [ConditionalFact(nameof(SocketsReuseUnicastPortSupport))] public void ReuseUnicastPort_CreateSocketGetOption() @@ -51,6 +54,7 @@ public void ReuseUnicastPort_CreateSocketSetOption() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/104547", typeof(PlatformDetection), nameof(PlatformDetection.IsQemuLinux))] public void MulticastOption_CreateSocketSetGetOption_GroupAndInterfaceIndex_SetSucceeds_GetThrows() { int interfaceIndex = 0; @@ -64,7 +68,7 @@ public void MulticastOption_CreateSocketSetGetOption_GroupAndInterfaceIndex_SetS } } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsNanoNorServerCore))] // Skip on Nano: https://github.com/dotnet/runtime/issues/26286 + [ConditionalFact(nameof(CanRunMulticastTests))] [ActiveIssue("https://github.com/dotnet/runtime/issues/113827", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] [SkipOnPlatform(TestPlatforms.OSX, "Multicast interface selection fails on macOS 14+ due to changes in how the system handles network interface parameters")] public async Task MulticastInterface_Set_AnyInterface_Succeeds() @@ -122,9 +126,10 @@ public void MulticastInterface_Set_InvalidIndex_Throws() } } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsNanoNorServerCore))] // Skip on Nano: https://github.com/dotnet/runtime/issues/26286 + [ConditionalFact(nameof(CanRunMulticastTests))] [SkipOnPlatform(TestPlatforms.OSX | TestPlatforms.FreeBSD, "Expected behavior is different on OSX or FreeBSD")] [ActiveIssue("https://github.com/dotnet/runtime/issues/52124", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/104547", typeof(PlatformDetection), nameof(PlatformDetection.IsQemuLinux))] public async Task MulticastInterface_Set_IPv6_AnyInterface_Succeeds() { if (PlatformDetection.IsRedHatFamily7) diff --git a/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj b/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj index ab217e8efea8ea..8ee9d5bc721510 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj +++ b/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj @@ -12,7 +12,7 @@ WasmTestOnBrowser - $(TestArchiveRoot)browserornodejs/ + $(TestArchiveRoot)browseronly/ $(TestArchiveTestsRoot)$(OSPlatformConfig)/ $(DefineConstants);TARGET_BROWSER --setenv=XHARNESS_LOG_TEST_START=true --no-memory-snapshot diff --git a/src/libraries/System.Private.Xml/tests/System.Private.Xml.Tests.csproj b/src/libraries/System.Private.Xml/tests/System.Private.Xml.Tests.csproj index d349b820a32b82..306038a36fb371 100644 --- a/src/libraries/System.Private.Xml/tests/System.Private.Xml.Tests.csproj +++ b/src/libraries/System.Private.Xml/tests/System.Private.Xml.Tests.csproj @@ -14,7 +14,7 @@ WasmTestOnBrowser - $(TestArchiveRoot)browserornodejs/ + $(TestArchiveRoot)browseronly/ $(TestArchiveTestsRoot)$(OSPlatformConfig)/ $(DefineConstants);TARGET_BROWSER diff --git a/src/libraries/System.Security.Cryptography/tests/X509Certificates/ChainTests.cs b/src/libraries/System.Security.Cryptography/tests/X509Certificates/ChainTests.cs index e3e39b73f429f6..77c03fe2a52c59 100644 --- a/src/libraries/System.Security.Cryptography/tests/X509Certificates/ChainTests.cs +++ b/src/libraries/System.Security.Cryptography/tests/X509Certificates/ChainTests.cs @@ -24,7 +24,7 @@ private static bool TrustsMicrosoftDotComRoot using (var chainHolder = new ChainHolder()) { X509Chain chain = chainHolder.Chain; - chain.ChainPolicy.VerificationTime = new DateTime(2021, 02, 26, 12, 01, 01, DateTimeKind.Local); + chain.ChainPolicy.VerificationTime = new DateTime(2025, 12, 25, 12, 01, 01, DateTimeKind.Local); chain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; return chain.Build(microsoftDotCom); @@ -50,7 +50,7 @@ public static void BuildChain() // Halfway between microsoftDotCom's NotBefore and NotAfter // This isn't a boundary condition test. - chain.ChainPolicy.VerificationTime = new DateTime(2021, 02, 26, 12, 01, 01, DateTimeKind.Local); + chain.ChainPolicy.VerificationTime = new DateTime(2025, 12, 25, 12, 01, 01, DateTimeKind.Local); chain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; bool valid = chain.Build(microsoftDotCom); @@ -82,7 +82,7 @@ public static void VerifyChainFromHandle() chain.ChainPolicy.ExtraStore.Add(microsoftDotComRoot); chain.ChainPolicy.ExtraStore.Add(microsoftDotComIssuer); chain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllowUnknownCertificateAuthority; - chain.ChainPolicy.VerificationTime = new DateTime(2021, 02, 26, 12, 01, 01, DateTimeKind.Local); + chain.ChainPolicy.VerificationTime = new DateTime(2025, 12, 25, 12, 01, 01, DateTimeKind.Local); chain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; bool valid = chain.Build(microsoftDotCom); @@ -113,7 +113,7 @@ public static void VerifyChainFromHandle() // Re-set the ChainPolicy properties chain2.ChainPolicy.VerificationFlags = X509VerificationFlags.AllowUnknownCertificateAuthority; - chain2.ChainPolicy.VerificationTime = new DateTime(2021, 02, 26, 12, 01, 01, DateTimeKind.Local); + chain2.ChainPolicy.VerificationTime = new DateTime(2025, 12, 25, 12, 01, 01, DateTimeKind.Local); chain2.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; valid = chain2.Build(microsoftDotCom); @@ -137,7 +137,7 @@ public static void VerifyChainFromHandle_Unix() chain.ChainPolicy.ExtraStore.Add(microsoftDotComIssuer); chain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllowUnknownCertificateAuthority; - chain.ChainPolicy.VerificationTime = new DateTime(2021, 02, 26, 12, 01, 01, DateTimeKind.Local); + chain.ChainPolicy.VerificationTime = new DateTime(2025, 12, 25, 12, 01, 01, DateTimeKind.Local); chain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; bool valid = chain.Build(microsoftDotCom); @@ -159,7 +159,7 @@ public static void TestDispose() { chain = chainHolder.Chain; chain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllowUnknownCertificateAuthority; - chain.ChainPolicy.VerificationTime = new DateTime(2021, 02, 26, 12, 01, 01, DateTimeKind.Local); + chain.ChainPolicy.VerificationTime = new DateTime(2025, 12, 25, 12, 01, 01, DateTimeKind.Local); chain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; chain.Build(microsoftDotCom); @@ -288,11 +288,7 @@ public static void SystemTrustCertificateWithCustomRootTrust(bool addCertificate // Check some known conditions. - if (OperatingSystem.IsLinux() || PlatformDetection.IsApplePlatform26OrLater) - { - Assert.Equal(2, chain.ChainElements.Count); - } - else if (PlatformDetection.IsOSXLike) + if (OperatingSystem.IsLinux() || PlatformDetection.UsesAppleCrypto) { Assert.Equal(3, chain.ChainElements.Count); } @@ -314,10 +310,6 @@ public static IEnumerable BuildChainCustomTrustStoreData() { // Android doesn't support an empty custom root X509ChainStatusFlags flags = X509ChainStatusFlags.UntrustedRoot; - if (!SignatureSupport.SupportsX509Sha1Signatures) - { - flags |= X509ChainStatusFlags.NotSignatureValid; - } yield return new object[] { false, flags, BuildChainCustomTrustStoreTestArguments.TrustedIntermediateUntrustedRoot }; } @@ -427,30 +419,24 @@ public static void Invalidx509ChainTrustMode(int trustMode) public static IEnumerable VerifyExpirationData() { // The test will be using the chain for TestData.MicrosoftDotComSslCertBytes - // The leaf cert (microsoft.com) is valid from 2020-08-28 22:17:02Z to 2021-08-28 22:17:02Z - DateTime[] validTimes = - { - // The NotBefore value - new DateTime(2020, 08, 28, 22, 17, 02, DateTimeKind.Utc), - - // One second before the NotAfter value - new DateTime(2021, 08, 28, 22, 17, 01, DateTimeKind.Utc), - }; + DateTime notBefore = new DateTime(2025, 10, 01, 05, 17, 14, DateTimeKind.Utc); + DateTime notAfter = new DateTime(2026, 03, 30, 05, 17, 14, DateTimeKind.Utc); // The NotAfter value as a boundary condition differs on Windows and OpenSSL. // Windows considers it valid (<= NotAfter). // OpenSSL considers it invalid (< NotAfter), with a comment along the lines of // "it'll be invalid in a millisecond, why bother with the <=" // So that boundary condition is not being tested. + DateTime[] validTimes = [notBefore, notAfter.AddSeconds(-1)]; DateTime[] invalidTimes = - { + [ // One second before the NotBefore time - new DateTime(2020, 08, 28, 22, 17, 01, DateTimeKind.Utc), + notBefore.AddSeconds(-1), // One second after the NotAfter time - new DateTime(2021, 08, 28, 22, 17, 03, DateTimeKind.Utc), - }; + notAfter.AddSeconds(1) + ]; List testCases = new List((validTimes.Length + invalidTimes.Length) * 3); @@ -502,7 +488,10 @@ public static void VerifyExpiration_LocalTime(DateTime verificationTime, bool sh bool builtSuccessfully = chain.Build(microsoftDotCom); - Assert.Equal(shouldBeValid, builtSuccessfully); + if (shouldBeValid != builtSuccessfully) + { + Assert.Fail($"Expected chain validity to be '{shouldBeValid}' but was '{builtSuccessfully}'. Chain flags: '{chain.AllStatusFlags()}'."); + } // If we failed to build the chain, validate the chain status if (!shouldBeValid) @@ -656,11 +645,14 @@ public static void BuildChain_FailOnlyApplicationPolicy() X509ChainStatusFlags.NoError, (a, status) => a | status.Status)); - Assert.Equal( - X509ChainStatusFlags.NotValidForUsage, - holder.Chain.ChainElements[2].ChainElementStatus.Aggregate( - X509ChainStatusFlags.NoError, - (a, status) => a | status.Status)); + if (!PlatformDetection.IsWindows) + { + Assert.Equal( + X509ChainStatusFlags.NotValidForUsage, + holder.Chain.ChainElements[2].ChainElementStatus.Aggregate( + X509ChainStatusFlags.NoError, + (a, status) => a | status.Status)); + } } } @@ -748,7 +740,7 @@ public static void BuildChain_MicrosoftDotCom_WithRootCertInUserAndSystemRootCer } X509Chain chainValidator = chainHolder.Chain; - chainValidator.ChainPolicy.VerificationTime = new DateTime(2021, 02, 26, 12, 01, 01, DateTimeKind.Local); + chainValidator.ChainPolicy.VerificationTime = new DateTime(2025, 12, 25, 12, 01, 01, DateTimeKind.Local); chainValidator.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; bool chainBuildResult = chainValidator.Build(microsoftDotCom); diff --git a/src/libraries/System.Security.Cryptography/tests/X509Certificates/CollectionTests.cs b/src/libraries/System.Security.Cryptography/tests/X509Certificates/CollectionTests.cs index ac871b95631532..fee438476d1c99 100644 --- a/src/libraries/System.Security.Cryptography/tests/X509Certificates/CollectionTests.cs +++ b/src/libraries/System.Security.Cryptography/tests/X509Certificates/CollectionTests.cs @@ -903,7 +903,7 @@ public static void X509ChainElementCollection_CopyTo_NonZeroLowerBound_ThrowsInd // Halfway between microsoftDotCom's NotBefore and NotAfter // This isn't a boundary condition test. - chain.ChainPolicy.VerificationTime = new DateTime(2021, 02, 26, 12, 01, 01, DateTimeKind.Local); + chain.ChainPolicy.VerificationTime = new DateTime(2025, 12, 25, 12, 01, 01, DateTimeKind.Local); bool valid = chain.Build(microsoftDotCom); Assert.True(valid, "Precondition: Chain built validly"); @@ -1317,7 +1317,7 @@ public static void X509ChainElementCollection_IndexerVsEnumerator() // Halfway between microsoftDotCom's NotBefore and NotAfter // This isn't a boundary condition test. - chain.ChainPolicy.VerificationTime = new DateTime(2021, 02, 26, 12, 01, 01, DateTimeKind.Local); + chain.ChainPolicy.VerificationTime = new DateTime(2025, 12, 25, 12, 01, 01, DateTimeKind.Local); chain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; bool valid = chain.Build(microsoftDotCom); diff --git a/src/libraries/System.Security.Cryptography/tests/X509Certificates/ExtensionsTests/AuthorityKeyIdentifierTests.cs b/src/libraries/System.Security.Cryptography/tests/X509Certificates/ExtensionsTests/AuthorityKeyIdentifierTests.cs index 520d52cbc85123..aea774d4b6968d 100644 --- a/src/libraries/System.Security.Cryptography/tests/X509Certificates/ExtensionsTests/AuthorityKeyIdentifierTests.cs +++ b/src/libraries/System.Security.Cryptography/tests/X509Certificates/ExtensionsTests/AuthorityKeyIdentifierTests.cs @@ -91,14 +91,14 @@ public static void CreateKeyIdOnlyFromCertificate() } Assert.False(akid.Critical, "akid.Critical"); - Assert.Equal("30168014B5760C3011CEC792424D4CC75C2CC8A90CE80B64", akid.RawData.ByteArrayToHex()); + Assert.Equal("30168014F67E2FBD80A34AB2705BEBDF9A1FD8EDCA618007", akid.RawData.ByteArrayToHex()); Assert.False(akid.RawIssuer.HasValue, "akid.RawIssuer.HasValue"); Assert.Null(akid.NamedIssuer); Assert.False(akid.SerialNumber.HasValue, "akid.SerialNumber.HasValue"); Assert.True(akid.KeyIdentifier.HasValue, "akid.KeyIdentifier.HasValue"); Assert.Equal( - "B5760C3011CEC792424D4CC75C2CC8A90CE80B64", + "F67E2FBD80A34AB2705BEBDF9A1FD8EDCA618007", akid.KeyIdentifier.GetValueOrDefault().ByteArrayToHex()); } @@ -128,10 +128,10 @@ public static void CreateIssuerAndSerialFromCertificate() Assert.False(akid.KeyIdentifier.HasValue, "akid.KeyIdentifier.HasValue"); const string ExpectedHex = - "3072A15EA45C305A310B300906035504061302494531123010060355040A1309" + - "42616C74696D6F726531133011060355040B130A437962657254727573743122" + - "30200603550403131942616C74696D6F7265204379626572547275737420526F" + - "6F7482100F14965F202069994FD5C7AC788941E2"; + "3079A165A4633061310B300906035504061302555331153013060355040A130C" + + "446967694365727420496E6331193017060355040B13107777772E6469676963" + + "6572742E636F6D3120301E06035504031317446967694365727420476C6F6261" + + "6C20526F6F7420473282100EFB7E547EDF0FF1069AEE57696D7BA0"; Assert.Equal(ExpectedHex, akid.RawData.ByteArrayToHex()); } @@ -162,15 +162,15 @@ public static void CreateFullFromCertificate() Assert.True(akid.KeyIdentifier.HasValue, "akid.KeyIdentifier.HasValue"); Assert.Equal( - "B5760C3011CEC792424D4CC75C2CC8A90CE80B64", + "F67E2FBD80A34AB2705BEBDF9A1FD8EDCA618007", akid.KeyIdentifier.GetValueOrDefault().ByteArrayToHex()); const string ExpectedHex = - "3081888014B5760C3011CEC792424D4CC75C2CC8A90CE80B64A15EA45C305A31" + - "0B300906035504061302494531123010060355040A130942616C74696D6F7265" + - "31133011060355040B130A437962657254727573743122302006035504031319" + - "42616C74696D6F7265204379626572547275737420526F6F7482100F14965F20" + - "2069994FD5C7AC788941E2"; + "30818F8014F67E2FBD80A34AB2705BEBDF9A1FD8EDCA618007A165A463306131" + + "0B300906035504061302555331153013060355040A130C446967694365727420" + + "496E6331193017060355040B13107777772E64696769636572742E636F6D3120" + + "301E06035504031317446967694365727420476C6F62616C20526F6F74204732" + + "82100EFB7E547EDF0FF1069AEE57696D7BA0"; Assert.Equal(ExpectedHex, akid.RawData.ByteArrayToHex()); } @@ -517,10 +517,10 @@ public static void CreateIssuerAndSerial(bool fromArray) Assert.False(akid.KeyIdentifier.HasValue, "akid.KeyIdentifier.HasValue"); const string ExpectedHex = - "3072A15EA45C305A310B300906035504061302494531123010060355040A1309" + - "42616C74696D6F726531133011060355040B130A437962657254727573743122" + - "30200603550403131942616C74696D6F7265204379626572547275737420526F" + - "6F7482100F14965F202069994FD5C7AC788941E2"; + "3079A165A4633061310B300906035504061302555331153013060355040A130C" + + "446967694365727420496E6331193017060355040B13107777772E6469676963" + + "6572742E636F6D3120301E06035504031317446967694365727420476C6F6261" + + "6C20526F6F7420473282100EFB7E547EDF0FF1069AEE57696D7BA0"; Assert.Equal(ExpectedHex, akid.RawData.ByteArrayToHex()); } diff --git a/src/libraries/System.Security.Cryptography/tests/X509Certificates/MatchesHostnameTests.cs b/src/libraries/System.Security.Cryptography/tests/X509Certificates/MatchesHostnameTests.cs index aeccf2c9db7629..8e8a70025e4230 100644 --- a/src/libraries/System.Security.Cryptography/tests/X509Certificates/MatchesHostnameTests.cs +++ b/src/libraries/System.Security.Cryptography/tests/X509Certificates/MatchesHostnameTests.cs @@ -15,17 +15,17 @@ public static class MatchesHostnameTests [InlineData("fruit.example", false)] [InlineData("127.0.0.1", false)] [InlineData("microsoft.com", true)] - [InlineData("www.microsoft.com", true)] - [InlineData("wwwqa.microsoft.com", true)] + [InlineData("www.microsoft.com.au", true)] + [InlineData("copilot.ai", true)] [InlineData("wwwqa2.microsoft.com", false)] - [InlineData("staticview.microsoft.com", true)] - [InlineData("c.s-microsoft.com", true)] - [InlineData("i.s-microsoft.com", true)] - [InlineData("j.s-microsoft.com", false)] + [InlineData("yarp.dot.net", true)] + [InlineData("explore-smb.microsoft.com", true)] + [InlineData("real-stories.microsoft.com", true)] + [InlineData("ghost-stories.microsoft.com", false)] [InlineData("s-microsoft.com", false)] - [InlineData("privacy.microsoft.com", true)] - [InlineData("more.privacy.microsoft.com", false)] - [InlineData("moreprivacy.microsoft.com", false)] + [InlineData("discover.copilot.com", true)] + [InlineData("more.discover.copilot.com", false)] + [InlineData("morediscover.copilot.com", false)] public static void MicrosoftDotComSslMatchesHostname(string candidate, bool expected) { using (X509Certificate2 cert = new X509Certificate2(TestData.MicrosoftDotComSslCertBytes)) diff --git a/src/libraries/System.Security.Cryptography/tests/X509Certificates/TestData.cs b/src/libraries/System.Security.Cryptography/tests/X509Certificates/TestData.cs index 0e0295ecf7f6e7..320a3bdb375430 100644 --- a/src/libraries/System.Security.Cryptography/tests/X509Certificates/TestData.cs +++ b/src/libraries/System.Security.Cryptography/tests/X509Certificates/TestData.cs @@ -1641,159 +1641,296 @@ public static SecureString CreatePfxDataPasswordSecureString() "09D7E3D4317079AF0CD0A8A49251AB129157F9894A036487").HexToByteArray(); internal static readonly byte[] MicrosoftDotComSslCertBytes = ( - "3082087930820661a00302010202136b000003f4e3a67a2348550c330000" + - "000003f4300d06092a864886f70d01010b0500304f310b30090603550406" + + "3082181a30821602a00302010202133302610d241f61f27343ab6aab0000" + + "02610d24300d06092a864886f70d01010c0500305d310b30090603550406" + "13025553311e301c060355040a13154d6963726f736f667420436f72706f" + - "726174696f6e3120301e060355040313174d6963726f736f667420525341" + - "20544c53204341203031301e170d3230303832383232313730325a170d32" + - "31303832383232313730325a308188310b3009060355040613025553310b" + - "30090603550408130257413110300e060355040713075265646d6f6e6431" + - "1e301c060355040a13154d6963726f736f667420436f72706f726174696f" + - "6e311e301c060355040b13154d6963726f736f667420436f72706f726174" + - "696f6e311a3018060355040313117777772e6d6963726f736f66742e636f" + - "6d30820122300d06092a864886f70d01010105000382010f003082010a02" + - "82010100c69ea6351173387784f57cd1af5de2b7e7752f954fc2fc66d045" + - "66be4922566ded721fdda0e23d6e542c4d5b663546a9410dc27818fbef40" + - "c2ceff2e3c9a6944fdcd5e62228a7e12b9a2beb6b52118d24e176991f1b0" + - "4465789607cb06cb2315cc1698ef140bb8962f0139854e21ea2ac0610723" + - "4034594aae4cf6e63d3f3c039a6f9e535721fce2347c055579ef73d04d12" + - "7c8f8c69c4889be5674a85aec9fe631fe9836aee734f21b0bdf88c16b462" + - "8ad735052849d98b497f4997733477827de4584ea01bca09572b40dcbc34" + - "ccd42af6c42214b8c6c3b5a708d8d40c8916bfec4e1d8da184de4342b40d" + - "8134189587b381c707d42719de822de64ff277c10203010001a382041230" + - "82040e30820104060a2b06010401d6790204020481f50481f200f0007600" + - "f65c942fd1773022145418083094568ee34d131933bfdf0c2f200bcc4ef1" + - "64e300000174372e743d0000040300473045022100930438131ebc6c1a6d" + - "b83517ebbfcfecb5dd5d4899edc83d5539a79f59382005022024609430a9" + - "cf09344c0f88b848adf62cbfd421ffe756b076f7263f2ff0cb00ed007600" + - "4494652eb0eeceafc44007d8a8fe28c0dae682bed8cb31b53fd33396b5b6" + - "81a800000174372e745000000403004730450221009bd86214f6f66215b8" + - "ca63e61f87dd1cf443af22dbeecec5ab2c6c16fc40b0ad0220267015da53" + - "5c1b557e8c8f9119a8c896d557a31277d9a87e9aee2ce6fdae979f302706" + - "092b060104018237150a041a3018300a06082b06010505070302300a0608" + - "2b06010505070301303d06092b06010401823715070430302e06262b0601" + - "04018237150887da867583eed90182c9851b81b59e6185f4eb60815db9f8" + - "108691d07802016402012330818706082b06010505070101047b30793053" + - "06082b060105050730028647687474703a2f2f7777772e6d6963726f736f" + - "66742e636f6d2f706b692f6d73636f72702f4d6963726f736f6674253230" + - "525341253230544c53253230434125323030312e637274302206082b0601" + - "05050730018616687474703a2f2f6f6373702e6d736f6373702e636f6d30" + - "1d0603551d0e041604148c75c331eb0496672786a7168161398fbc17bb38" + - "300b0603551d0f0404030204b03081990603551d1104819130818e821377" + - "777771612e6d6963726f736f66742e636f6d82117777772e6d6963726f73" + - "6f66742e636f6d8218737461746963766965772e6d6963726f736f66742e" + - "636f6d8211692e732d6d6963726f736f66742e636f6d820d6d6963726f73" + - "6f66742e636f6d8211632e732d6d6963726f736f66742e636f6d82157072" + - "69766163792e6d6963726f736f66742e636f6d3081b00603551d1f0481a8" + - "3081a53081a2a0819fa0819c864d687474703a2f2f6d7363726c2e6d6963" + - "726f736f66742e636f6d2f706b692f6d73636f72702f63726c2f4d696372" + - "6f736f6674253230525341253230544c53253230434125323030312e6372" + - "6c864b687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b" + - "692f6d73636f72702f63726c2f4d6963726f736f66742532305253412532" + - "30544c53253230434125323030312e63726c30570603551d200450304e30" + - "4206092b0601040182372a013035303306082b0601050507020116276874" + - "74703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f6d7363" + - "6f72702f6370733008060667810c010202301f0603551d23041830168014" + - "b5760c3011cec792424d4cc75c2cc8a90ce80b64301d0603551d25041630" + - "1406082b0601050507030206082b06010505070301300d06092a864886f7" + - "0d01010b050003820201004a69de19b185c500841e607746e90c40e37298" + - "e16ea7c6d6f5517c2efbac51f7f5789213fcb61ba98093bfb17a73e47d78" + - "273e21c8fd47dbe992065ea83971b6704766dd561f530d15d58acde25d91" + - "13322a3ca2b1d6bcf454879738a5c350f675e019dd5f67637d0c9265279e" + - "d528d2e532f5f131f80133251ab58e3bcb018bdd75ba608f348a53a27931" + - "2e68ae08aa26cc521f9db5b30743d94c7eb49c10563a07379a9cb0d8f48c" + - "c5efc960bf331d0a9ba43e059f07cfdeb2c3a09e9ef2c0611c5dd6b7af7c" + - "ecfa99942291d1971eac307fa598570e150d3d2aa07e2e66303d6c1c52e1" + - "d8dc08b4b1f79898f442ea41e520b1240ecad11eef25fcc4e7a8f76bb2b4" + - "6c1bf084f14d3ab84c5ee27b5623280ccceb086d700f07139b792202cfca" + - "76da55075097d7b1e4011a1008fec3f48750d15b06290da418c9b7460fd8" + - "0e0e2ca0b8b360ba60f411512ecc38a301d2943b48c193cc25cf160007ad" + - "1c30c7cd98a4571ca68295727a3bf95ab76e1020c45ee16e661530c88bf5" + - "26e56b4d038eb8882940d78e82038484a3ea581c86bd0d7959d10e185174" + - "ec060030f3ad6541c4797a301aed40d42cd30fd21d7f0d58b6801e383c19" + - "0fd4bf9263f72c1ed260370b1add02cf6489898b8c3ae078cb04712d1d07" + - "3e84756b54b0281649eb9a05e05ef1e939184f9a9244471277b2dd11385d" + - "af125671c3331768048c27aed2").HexToByteArray(); + "726174696f6e312e302c060355040313254d6963726f736f667420417a75" + + "72652052534120544c532049737375696e67204341203038301e170d3235" + + "313030313035313731345a170d3236303333303035313731345a3064310b" + + "3009060355040613025553310b30090603550408130257413110300e0603" + + "55040713075265646d6f6e64311e301c060355040a13154d6963726f736f" + + "667420436f72706f726174696f6e311630140603550403130d6d6963726f" + + "736f66742e636f6d30820122300d06092a864886f70d0101010500038201" + + "0f003082010a0282010100c5b136196b05affe46996b6639b7c6b62e39ec" + + "11ba950e947686dad6fe29a3e16ff15aa33345631d6e85ea7e01bc5e12d7" + + "6f2c0eac51fb3f44eb35904629398563888d4709cbec93010b22b2d97589" + + "e5393f474e460b6693ea2036bbbc1d50e300c1a1b5ccdfc30896f2e9d13b" + + "6f232f17c793537594ca4ce7008b9c08d30944e6b4699919e7d079f5adb0" + + "bde4b069c0c9be99c85b8843a45b287bef5658074bcbfb158475740ba44c" + + "cbe11cf646c386d7c6f2ff038d64a7267197846655bd8838930dcd5fddbe" + + "ca136414b84ec0a2532f8b68997e434cfe054068c4ae9b4a103f7680d3a1" + + "a718a40390d70be44c5eb1ed2bc7c626519c103ada4fead6ff5941020301" + + "0001a38213ca308213c63082017d060a2b06010401d6790204020482016d" + + "0482016901670076000e5794bcf3aea93e331b2c9907b3f790df9bc23d71" + + "3225dd21a925ac61c54e21000001999e3d3ed70000040300473045022063" + + "b8d9723c1019aaf04cf81db9f49990fc99326ae57fc7f22a1ab1b696dc84" + + "a40221009eef31b6d42182c5572b189e8e87f960b43cae66a1226ae9beec" + + "e9964a7dee7e0076006411c46ca412eca7891ca2022e00bcab4f2807d41e" + + "3527abeafed503c97dcdf0000001999e3d3f830000040300473045022014" + + "46af1d4037f0b8af665985c46b2c01c69eb05da359749963b05636057c35" + + "40022100852b0e08ae544b61cef8fbf7c917cf668433a38cdd09f8310aff" + + "84e40246a8bf007500969764bf555897adf743876837084277e9f03ad5f6" + + "a4f3366e46a43f0fcaa9c6000001999e3d3f3b000004030046304402206c" + + "7d1e193f0a4d81007fc8db44713bc6d1c04f870a2b90afba0b2ad5f9bf66" + + "77022055864f0d8eda1c57a7d367c20e2854fb3f3cb66fb3d8cc145e9158" + + "53d546bc5f302706092b060104018237150a041a3018300a06082b060105" + + "05070302300a06082b06010505070301303c06092b060104018237150704" + + "2f302d06252b060104018237150887bdd71b81e7eb4682819d2e8ed00c87" + + "f0da1d5d82abe73087edf11f02016402012d3081b406082b060105050701" + + "010481a73081a4307306082b060105050730028667687474703a2f2f7777" + + "772e6d6963726f736f66742e636f6d2f706b696f70732f63657274732f4d" + + "6963726f736f6674253230417a757265253230525341253230544c532532" + + "3049737375696e67253230434125323030382532302d253230787369676e" + + "2e637274302d06082b060105050730018621687474703a2f2f6f6e656f63" + + "73702e6d6963726f736f66742e636f6d2f6f637370301d0603551d0e0416" + + "04148e3d858c25c1e2b3f8972699653b96021d7f3a0a300e0603551d0f01" + + "01ff0404030205a030820fd20603551d1104820fc930820fc5820d6d6963" + + "726f736f66742e636f6d820f732e6d6963726f736f66742e636f6d821067" + + "612e6d6963726f736f66742e636f6d82116165702e6d6963726f736f6674" + + "2e636f6d82116165722e6d6963726f736f66742e636f6d82116772762e6d" + + "6963726f736f66742e636f6d82116875702e6d6963726f736f66742e636f" + + "6d82116d61632e6d6963726f736f66742e636f6d82116d6b622e6d696372" + + "6f736f66742e636f6d8211706d652e6d6963726f736f66742e636f6d8211" + + "706d692e6d6963726f736f66742e636f6d82117273732e6d6963726f736f" + + "66742e636f6d82117361722e6d6963726f736f66742e636f6d821174636f" + + "2e6d6963726f736f66742e636f6d8212667573652e6d6963726f736f6674" + + "2e636f6d82126965616b2e6d6963726f736f66742e636f6d82126d616332" + + "2e6d6963726f736f66742e636f6d82126d6373702e6d6963726f736f6674" + + "2e636f6d82126f70656e2e6d6963726f736f66742e636f6d821273686f70" + + "2e6d6963726f736f66742e636f6d8212737075722e6d6963726f736f6674" + + "2e636f6d8213697470726f2e6d6963726f736f66742e636f6d82136d616e" + + "676f2e6d6963726f736f66742e636f6d82136d757369632e6d6963726f73" + + "6f66742e636f6d821370796d65732e6d6963726f736f66742e636f6d8213" + + "73746f72652e6d6963726f736f66742e636f6d82146165746865722e6d69" + + "63726f736f66742e636f6d8214616c657274732e6d6963726f736f66742e" + + "636f6d821464657369676e2e6d6963726f736f66742e636f6d8214676172" + + "6167652e6d6963726f736f66742e636f6d82146769676a616d2e6d696372" + + "6f736f66742e636f6d82146d73637465632e6d6963726f736f66742e636f" + + "6d82146f6e6c696e652e6d6963726f736f66742e636f6d82147374726561" + + "6d2e6d6963726f736f66742e636f6d82156166666c696e6b2e6d6963726f" + + "736f66742e636f6d8215636f6e6e6563742e6d6963726f736f66742e636f" + + "6d8215646576656c6f702e6d6963726f736f66742e636f6d8215646f6d61" + + "696e732e6d6963726f736f66742e636f6d82156578616d706c652e6d6963" + + "726f736f66742e636f6d82156d6164656972612e6d6963726f736f66742e" + + "636f6d82156d73646e6973762e6d6963726f736f66742e636f6d82156d73" + + "70726573732e6d6963726f736f66742e636f6d82157777772e6165702e6d" + + "6963726f736f66742e636f6d82157777772e6165722e6d6963726f736f66" + + "742e636f6d8215777777626574612e6d6963726f736f66742e636f6d8216" + + "627573696e6573732e6d6963726f736f66742e636f6d8216656d70726573" + + "61732e6d6963726f736f66742e636f6d82166c6561726e696e672e6d6963" + + "726f736f66742e636f6d82166d73646e77696b692e6d6963726f736f6674" + + "2e636f6d82166f70656e6e6573732e6d6963726f736f66742e636f6d8216" + + "70696e706f696e742e6d6963726f736f66742e636f6d8216736e61636b62" + + "6f782e6d6963726f736f66742e636f6d821673706f6e736f72732e6d6963" + + "726f736f66742e636f6d821673746174696f6e712e6d6963726f736f6674" + + "2e636f6d8217616973746f726965732e6d6963726f736f66742e636f6d82" + + "17636f6d6d756e6974792e6d6963726f736f66742e636f6d821763726177" + + "6c6d73646e2e6d6963726f736f66742e636f6d8217696f747363686f6f6c" + + "2e6d6963726f736f66742e636f6d82176d657373656e6765722e6d696372" + + "6f736f66742e636f6d82176d696e6563726166742e6d6963726f736f6674" + + "2e636f6d82186261636b6f66666963652e6d6963726f736f66742e636f6d" + + "8218656e74657270726973652e6d6963726f736f66742e636f6d8218696f" + + "7463656e7472616c2e6d6963726f736f66742e636f6d821870696e756e62" + + "6c6f636b2e6d6963726f736f66742e636f6d82187265726f757465343433" + + "2e6d6963726f736f66742e636f6d8219636f6d6d756e69746965732e6d69" + + "63726f736f66742e636f6d82196578706c6f72652d736d622e6d6963726f" + + "736f66742e636f6d821965787072657373696f6e732e6d6963726f736f66" + + "742e636f6d82196f6e6465726e656d6572732e6d6963726f736f66742e63" + + "6f6d82197465636861636164656d792e6d6963726f736f66742e636f6d82" + + "1974657272617365727665722e6d6963726f736f66742e636f6d821a636f" + + "6d6d756e6974696573322e6d6963726f736f66742e636f6d821a636f6e6e" + + "6563746576656e742e6d6963726f736f66742e636f6d821a64617461706c" + + "6174666f726d2e6d6963726f736f66742e636f6d821a656e747265707265" + + "6e6575722e6d6963726f736f66742e636f6d821a6878642e726573656172" + + "63682e6d6963726f736f66742e636f6d821a6d73706172746e6572697261" + + "2e6d6963726f736f66742e636f6d821a6d79646174616865616c74682e6d" + + "6963726f736f66742e636f6d821a6f656d636f6d6d756e6974792e6d6963" + + "726f736f66742e636f6d821a7265616c2d73746f726965732e6d6963726f" + + "736f66742e636f6d821a7777772e666f726d7370726f2e6d6963726f736f" + + "66742e636f6d821b6675747572656465636f6465642e6d6963726f736f66" + + "742e636f6d821b7570677261646563656e7465722e6d6963726f736f6674" + + "2e636f6d821c6c6561726e616e616c79746963732e6d6963726f736f6674" + + "2e636f6d821c6f6e6c696e656c6561726e696e672e6d6963726f736f6674" + + "2e636f6d821d627573696e65737363656e7472616c2e6d6963726f736f66" + + "742e636f6d821d636c6f75642d696d6d657273696f6e2e6d6963726f736f" + + "66742e636f6d821d73747564656e74706172746e6572732e6d6963726f73" + + "6f66742e636f6d821e616e616c7974696373706172746e65722e6d696372" + + "6f736f66742e636f6d821e627573696e657373706c6174666f726d2e6d69" + + "63726f736f66742e636f6d821e6578706c6f72652d73656375726974792e" + + "6d6963726f736f66742e636f6d821e6b6c65696e756e7465726e65686d65" + + "6e2e6d6963726f736f66742e636f6d821e706172746e6572636f6d6d756e" + + "6974792e6d6963726f736f66742e636f6d821f6578706c6f72652d6d6172" + + "6b6574696e672e6d6963726f736f66742e636f6d821f696e6e6f76617469" + + "6f6e636f6e746573742e6d6963726f736f66742e636f6d821f706172746e" + + "6572696e63656e74697665732e6d6963726f736f66742e636f6d821f7068" + + "6f656e6978636174616c6f677561742e6d6963726f736f66742e636f6d82" + + "1f737a6b6f6c7970727a79737a6c6f7363692e6d6963726f736f66742e63" + + "6f6d821f7777772e706f7765726175746f6d6174652e6d6963726f736f66" + + "742e636f6d822073756363657373696f6e706c616e6e696e672e6d696372" + + "6f736f66742e636f6d82226c756d6961636f6e766572736174696f6e7375" + + "6b2e6d6963726f736f66742e636f6d822373756363657373696f6e706c61" + + "6e6e696e677561742e6d6963726f736f66742e636f6d8224627573696e65" + + "73736d6f62696c69747963656e7465722e6d6963726f736f66742e636f6d" + + "8225736b797065616e647465616d732e66617374747261636b2e6d696372" + + "6f736f66742e636f6d82277777772e6d6963726f736f6674646c61706172" + + "746e65726f772e6d6963726f736f66742e636f6d8228636f6d6d65726369" + + "616c61707063657274696669636174696f6e2e6d6963726f736f66742e63" + + "6f6d82297777772e736b797065616e647465616d732e6661737474726163" + + "6b2e6d6963726f736f66742e636f6d822263656f636f6e6e656374696f6e" + + "732e6576656e742e6d6963726f736f66742e636f6d821862697a34616672" + + "696b612e6d6963726f736f66742e636f6d8216636173686261636b2e6d69" + + "63726f736f66742e636f6d821a7777772e636173686261636b2e6d696372" + + "6f736f66742e636f6d8213766973696f2e6d6963726f736f66742e636f6d" + + "8217696e736964656d73722e6d6963726f736f66742e636f6d821f646576" + + "656c6f70657276656c6f636974796173736573736d656e742e636f6d8223" + + "7777772e646576656c6f70657276656c6f636974796173736573736d656e" + + "742e636f6d820a6765617273352e636f6d820e7777772e6765617273352e" + + "636f6d82147777772e6765617273746163746963732e636f6d8210676561" + + "7273746163746963732e636f6d82116d31322e6d6963726f736f66742e63" + + "6f6d820c736565696e6761692e636f6d8218796f757263686f6963652e6d" + + "6963726f736f66742e636f6d82196d7674642e6576656e74732e6d696372" + + "6f736f66742e636f6d8215696d6167696e652e6d6963726f736f66742e63" + + "6f6d82106d6963726f736f66742e636f6d2e617582147777772e6d696372" + + "6f736f66742e636f6d2e6175821664796e616d6963732e6d6963726f736f" + + "66742e636f6d821b706f776572706c6174666f726d2e6d6963726f736f66" + + "742e636f6d8217706f776572617070732e6d6963726f736f66742e636f6d" + + "821b706f7765726175746f6d6174652e6d6963726f736f66742e636f6d82" + + "20706f7765727669727475616c6167656e74732e6d6963726f736f66742e" + + "636f6d8218706f77657270616765732e6d6963726f736f66742e636f6d82" + + "1f746573742e69646561732e6661627269632e6d6963726f736f66742e63" + + "6f6d82117364732e6d6963726f736f66742e636f6d82157070652e736473" + + "2e6d6963726f736f66742e636f6d821b7777772e6d6963726f736f667433" + + "3635636f70696c6f742e636f6d82107777772e6a636c61726974792e636f" + + "6d821b74656368696e6e6f7661746f727373706f746c696768742e636f6d" + + "821f7777772e74656368696e6e6f7661746f727373706f746c696768742e" + + "636f6d820a636f70696c6f742e616982156765746c6963656e73696e6772" + + "656164792e636f6d82197777772e6765746c6963656e73696e6772656164" + + "792e636f6d82146a706e2e64656c76652e6f66666963652e636f6d821461" + + "75732e64656c76652e6f66666963652e636f6d8214696e642e64656c7665" + + "2e6f66666963652e636f6d82146b6f722e64656c76652e6f66666963652e" + + "636f6d8216636f6272612e6d652e6d6963726f736f66742e636f6d821777" + + "77772e627573696e65737363656e7472616c2e636f6d8213627573696e65" + + "737363656e7472616c2e636f6d821c6d7361696461746173747564696f2e" + + "6f66666963657070652e6e6574821a69646561732e6661627269632e6d69" + + "63726f736f66742e636f6d820c7777772e6370742e6c696e6b8208637074" + + "2e6c696e6b820c796172702e646f742e6e657482136d6963726f736f6674" + + "73747265616d2e636f6d82177777772e6d6963726f736f66747374726561" + + "6d2e636f6d82177765622e6d6963726f736f667473747265616d2e636f6d" + + "8213646973636f7665722e636f70696c6f742e6169820b636f70696c6f74" + + "2e636f6d820f7777772e636f70696c6f742e636f6d8214646973636f7665" + + "722e636f70696c6f742e636f6d821b7265736561726368666f72756d2e6d" + + "6963726f736f66742e636f6d300c0603551d130101ff04023000306a0603" + + "551d1f04633061305fa05da05b8659687474703a2f2f7777772e6d696372" + + "6f736f66742e636f6d2f706b696f70732f63726c2f4d6963726f736f6674" + + "253230417a757265253230525341253230544c5325323049737375696e67" + + "253230434125323030382e63726c30660603551d20045f305d3051060c2b" + + "0601040182374c837d01013041303f06082b060105050702011633687474" + + "703a2f2f7777772e6d6963726f736f66742e636f6d2f706b696f70732f44" + + "6f63732f5265706f7369746f72792e68746d3008060667810c010202301f" + + "0603551d23041830168014f67e2fbd80a34ab2705bebdf9a1fd8edca6180" + + "07301d0603551d250416301406082b0601050507030206082b0601050507" + + "0301300d06092a864886f70d01010c050003820201005fc651b8586fc73c" + + "d99453a8bdb56ee14cb64a5c31e9e2a9df2d81e13c0a96b2d707845d0d8f" + + "54ac8847769a22bc9abdbe68b29e85831ae2acc1e1b2b9563fa26bccb6f7" + + "92b83cd5f15e5160e75f4880c889dae43f6204082574871c8725e05ebe09" + + "28e548a071976e6b6b5ed8be7739bfee62f0b62bcf9adee028fac306316f" + + "f0ea3597db75565bf52946baefa23bfe34823ee831328282302907f42d06" + + "0dd5d54d3464dbf49270b836d612ac5085aea50f08d750b977dd2a127ae2" + + "fb54cde54277496847d40872767a012a8884c02522b48b8c547ddde9c210" + + "0eeea8b8eb97b70448d306bbae97e8f8ce311344cffa85b5f9efd0a82b10" + + "c835ab2275725ee3981ebae7479e52a7c5d544da5021a4e407cfcfedcbf0" + + "a87002b0c5fdec304214b5c0fcf91d2e3a93c54095508caf6fcbcd94ebe9" + + "463d8671c4720345a6aa890e82d0da6bd91dfe7b2017db28a2f8805d2058" + + "01c24ba79b1b7fae8a39370499db2a001390638d52642d446628bdfe0ecf" + + "ac9768af2ee74d938c5867231ad1102ab7c142dde30caa8ed4d878dbd1e5" + + "a50443053bc032fc740a794cf0d8f08427e8fd50199ebb24b91554bbb2e6" + + "a22d919df822440cd9e8a9cd7e063c2c30a17a93fd58a2ff24ae1b409a4b" + + "84a2d14f7fc197db879bd98938ca1a02c5fa09ba78ea7abd4e09263a8175" + + "c3c3aa6eb10f8c7155e6be3c6e7395a5e7cde7451adaa587").HexToByteArray(); internal static readonly byte[] MicrosoftDotComIssuerBytes = ( - "3082055a30820442a00302010202100f14965f202069994fd5c7ac788941" + - "e2300d06092a864886f70d01010b0500305a310b30090603550406130249" + - "4531123010060355040a130942616c74696d6f726531133011060355040b" + - "130a43796265725472757374312230200603550403131942616c74696d6f" + - "7265204379626572547275737420526f6f74301e170d3230303732313233" + - "303030305a170d3234313030383037303030305a304f310b300906035504" + - "0613025553311e301c060355040a13154d6963726f736f667420436f7270" + - "6f726174696f6e3120301e060355040313174d6963726f736f6674205253" + - "4120544c5320434120303130820222300d06092a864886f70d0101010500" + - "0382020f003082020a0282020100aa6277cf9a63b20684f39036f499f314" + - "51abea950a3b4606fd11411ffe5b0658c9386e08fc4f4448cd3aa4f7bd1e" + - "a2e295b8be5120c5bfb270635d780c43c029cd64490996daafcefd055f2b" + - "2a91e8016e2e189b2c9cd0017f69f5ee3f53885cba056cbe2215671482f2" + - "2cd2be5b6337ccaf6085e8966b6b8008a86ebe009c6b9570fce41812b11d" + - "1bb2c11331673334e625c9625b58827576f2fef23f3b16dfaa4283e3326d" + - "9b8e4326f0bd0e1fa1a73aaf2cc88ae6ea3ff9a5d2258f92aa1a08129cfe" + - "ac4ac7c3eb8094ab8716d12349e7a4bbc791dfe679343f414aa73a26d2ea" + - "6f46e33873e6e5d491ae0b789e78a5ef96e373d8f79565e905bf4f5cff52" + - "a7f9cf08afa74d0999c071a3527aa53bd79b015403e3b662b05a279c3026" + - "8eb64d56a117177a7b95a107ac5331b6d62e0fcd4174ecf101b2fd45bffc" + - "31e146423136431eb9aa055f847f91b18bae0fd754c3fdf064086ad39c8e" + - "ea7934ec033d73e01b36d46811c75970b0877cc0dc6e45ca36ce43267702" + - "a9700de8b857544442c3fbac1b632608c2d2231f7f930b7c6f08549a2b4e" + - "5dce9fa53ed2985bd102dbf183ce3052483863f1b1fbed23d33e92b5278d" + - "d04273d79d236871ba595e0752a6964dbf7c4e6f742205c0538016d8604e" + - "97314f894e4863d8edf9e5c2d90eb20bf6694cbd4b01c9cbdd06bf3a02eb" + - "1cdd308b0d4a1460f9d5644f4344a1ed0203010001a38201253082012130" + - "1d0603551d0e04160414b5760c3011cec792424d4cc75c2cc8a90ce80b64" + - "301f0603551d23041830168014e59d5930824758ccacfa085436867b3ab5" + - "044df0300e0603551d0f0101ff040403020186301d0603551d2504163014" + - "06082b0601050507030106082b0601050507030230120603551d130101ff" + - "040830060101ff020100303406082b060105050701010428302630240608" + - "2b060105050730018618687474703a2f2f6f6373702e6469676963657274" + - "2e636f6d303a0603551d1f04333031302fa02da02b8629687474703a2f2f" + - "63726c332e64696769636572742e636f6d2f4f6d6e69726f6f7432303235" + - "2e63726c302a0603551d20042330213008060667810c0102013008060667" + - "810c010202300b06092b0601040182372a01300d06092a864886f70d0101" + - "0b050003820101009f2bbe92675bda7b8aade8ff9d4d050eedb60d1541d1" + - "e615dc0360f9f422569c48f99daeda2b3ca8c0abd0ba95b8c8c1fd7c6371" + - "b6c87a889b3046a38e7d9602e3f82204efe036c06fc2bf2e0d6eedd67628" + - "0d81873e9be7a7108cda661f4051eae7bebf4e6798bb5459636f42e30f31" + - "601964000f260c97d184c0a67a193b70de4526dc96463d9c663fe13a8238" + - "e53603042857a4e94b64a218886d60898d7abe10918bace63f3130bfeb64" + - "d79e8de9c192566e388d343faecd6c6b4252623cd46989e0a057590b839f" + - "c6722442f5080384ce1663f334f105763719b206de133e137061d304f2b8" + - "476f05e38a88302b47455e7954c5f9ddebfa3f785175d25b").HexToByteArray(); + "308205ac30820494a00302010202100efb7e547edf0ff1069aee57696d7b" + + "a0300d06092a864886f70d01010c05003061310b30090603550406130255" + + "5331153013060355040a130c446967694365727420496e63311930170603" + + "55040b13107777772e64696769636572742e636f6d3120301e0603550403" + + "1317446967694365727420476c6f62616c20526f6f74204732301e170d32" + + "33303630383030303030305a170d3236303832353233353935395a305d31" + + "0b3009060355040613025553311e301c060355040a13154d6963726f736f" + + "667420436f72706f726174696f6e312e302c060355040313254d6963726f" + + "736f667420417a7572652052534120544c532049737375696e6720434120" + + "303830820222300d06092a864886f70d01010105000382020f003082020a" + + "0282020100b2ee8205cdc0d56556e899666d4b0ac05fc2e2297b1b09cc2e" + + "14bec51e40f99baee896639d4ee78e2a1344479ca416cfe678a1b57f0cdd" + + "df9ffe435f8a4f1715f3d2085e612bb52b23f045aeeeb74401562760c15b" + + "b2dab090854d128cf838833cda19fe379a79ef390718fa20cc5e9338f454" + + "38af3263208f7aa9c7be85691396f49192f8413f1b7728524506d4b14892" + + "68eb85e72dde67d55cf766da0e4858ec21591364e12cbbf93d0d16c732e8" + + "b77b75f1ddaf40fe71dbd2349fa345b23dfb27677f107fd9e9afe5840573" + + "2a37d896819c43520fc831081a1f606099cc2c566251b9bf1819a5a4a56b" + + "f0cd37396282474b6145b7e753a528b24af01ab1020279e88c5114c3e8fc" + + "8ba8052c13565ed04eb58be097c48708254a514525e1839f479cc5e0e90a" + + "8ab26e51b3a607600e98b8d824871a6c3bf131c9abca14229e883effe8e0" + + "1c99d8eb6a29812b6475a22630fcf22c1ed9696567c6945db4528ed59bc6" + + "91979136f6cf014291da435e927ba1dcdb45bf3d9d637c4fec07e1c8b13f" + + "b7cbd6ef69c0ce544acfef8bef40a00af8ffc9e39b3f06803c3776b19d28" + + "8f6bbf37e93a7a01aad387be1815be418092a09e5e018dfa8a5d1fbbb758" + + "487603a3b441e5a3d32ea9f26e9f3031e01ab5c6a073c53d38ce3682110b" + + "4da585011bb2a029a0a91ef2f1f014f4d8e172aae6ebed17ceffefccc7e1" + + "2f8525a5fd46ef0203010001a38201623082015e30120603551d130101ff" + + "040830060101ff020100301d0603551d0e04160414f67e2fbd80a34ab270" + + "5bebdf9a1fd8edca618007301f0603551d230418301680144e2254201895" + + "e6e36ee60ffafab912ed06178f39300e0603551d0f0101ff040403020186" + + "301d0603551d250416301406082b0601050507030106082b060105050703" + + "02307606082b06010505070101046a3068302406082b0601050507300186" + + "18687474703a2f2f6f6373702e64696769636572742e636f6d304006082b" + + "060105050730028634687474703a2f2f636163657274732e646967696365" + + "72742e636f6d2f4469676943657274476c6f62616c526f6f7447322e6372" + + "7430420603551d1f043b30393037a035a0338631687474703a2f2f63726c" + + "332e64696769636572742e636f6d2f4469676943657274476c6f62616c52" + + "6f6f7447322e63726c301d0603551d20041630143008060667810c010201" + + "3008060667810c010202300d06092a864886f70d01010c05000382010100" + + "968001701f7809e1fa0d62b06b8e79d014f32f19531d536c79027949eb67" + + "3e906e3cd2cf80e2def58ed9327e192ba9a17de2bb4623336a7e1417d083" + + "e6b1774dc09ebe8dc8c6b755f987c1c2f95b198bfee89997de600c95a51b" + + "db7636a4e3688b114910e70030a291e799920b95b89d0ea30dfa7b432ff9" + + "d38310a5d8c97e593dd111ec21919754fc3f25d6c1a74c3aa436f8a390aa" + + "c9d999a9932b12f6c6935a7c91e8059017a4a7fe5655f77ce81747db1b3e" + + "18a3b7872880f2206b0421897eaae28db467666eeae7ec9d5c5de38490c9" + + "59fc56e4405864126b533fdafbc2bfefc063c08f33d95609a46e2deabe28" + + "b4e181e6c1320cf0f0ab1d34468baef2").HexToByteArray(); internal static readonly byte[] MicrosoftDotComRootBytes = ( - "308203773082025fa0030201020204020000b9300d06092a864886f70d01" + - "01050500305a310b300906035504061302494531123010060355040a1309" + - "42616c74696d6f726531133011060355040b130a43796265725472757374" + - "312230200603550403131942616c74696d6f726520437962657254727573" + - "7420526f6f74301e170d3030303531323138343630305a170d3235303531" + - "323233353930305a305a310b300906035504061302494531123010060355" + - "040a130942616c74696d6f726531133011060355040b130a437962657254" + - "72757374312230200603550403131942616c74696d6f7265204379626572" + - "547275737420526f6f7430820122300d06092a864886f70d010101050003" + - "82010f003082010a0282010100a304bb22ab983d57e826729ab579d429e2" + - "e1e89580b1b0e35b8e2b299a64dfa15dedb009056ddb282ece62a262feb4" + - "88da12eb38eb219dc0412b01527b8877d31c8fc7bab988b56a09e773e811" + - "40a7d1ccca628d2de58f0ba650d2a850c328eaf5ab25878a9a961ca967b8" + - "3f0cd5f7f952132fc21bd57070f08fc012ca06cb9ae1d9ca337a77d6f8ec" + - "b9f16844424813d2c0c2a4ae5e60feb6a605fcb4dd075902d459189863f5" + - "a563e0900c7d5db2067af385eaebd403ae5e843e5fff15ed69bcf9393672" + - "75cf77524df3c9902cb93de5c923533f1f2498215c079929bdc63aece76e" + - "863a6b97746333bd681831f0788d76bffc9e8e5d2a86a74d90dc271a3902" + - "03010001a3453043301d0603551d0e04160414e59d5930824758ccacfa08" + - "5436867b3ab5044df030120603551d130101ff040830060101ff02010330" + - "0e0603551d0f0101ff040403020106300d06092a864886f70d0101050500" + - "0382010100850c5d8ee46f51684205a0ddbb4f27258403bdf764fd2dd730" + - "e3a41017ebda2929b6793f76f6191323b8100af958a4d46170bd04616a12" + - "8a17d50abdc5bc307cd6e90c258d86404feccca37e38c637114feddd6831" + - "8e4cd2b30174eebe755e07481a7f70ff165c84c07985b805fd7fbe6511a3" + - "0fc002b4f852373904d5a9317a18bfa02af41299f7a34582e33c5ef59d9e" + - "b5c89e7c2ec8a49e4e08144b6dfd706d6b1a63bd64e61fb7cef0f29f2ebb" + - "1bb7f250887392c2e2e3168d9a3202ab8e18dde91011ee7e35ab90af3e30" + - "947ad0333da7650ff5fc8e9e62cf47442c015dbb1db532d247d2382ed0fe" + - "81dc326a1eb5ee3cd5fce7811d19c32442ea6339a9").HexToByteArray(); + "3082038e30820276a0030201020210033af1e6a711a9a0bb2864b11d09fa" + + "e5300d06092a864886f70d01010b05003061310b30090603550406130255" + + "5331153013060355040a130c446967694365727420496e63311930170603" + + "55040b13107777772e64696769636572742e636f6d3120301e0603550403" + + "1317446967694365727420476c6f62616c20526f6f74204732301e170d31" + + "33303830313132303030305a170d3338303131353132303030305a306131" + + "0b300906035504061302555331153013060355040a130c44696769436572" + + "7420496e6331193017060355040b13107777772e64696769636572742e63" + + "6f6d3120301e06035504031317446967694365727420476c6f62616c2052" + + "6f6f7420473230820122300d06092a864886f70d01010105000382010f00" + + "3082010a0282010100bb37cd34dc7b6bc9b26890ad4a75ff46ba210a088d" + + "f51954c9fb88dbf3aef23a89913c7ae6ab061a6bcfac2de85e092444ba62" + + "9a7ed6a3a87ee054752005ac50b79c631a6c30dcda1f19b1d71edefdd7e0" + + "cb948337aeec1f434edd7b2cd2bd2ea52fe4a9b8ad3ad499a4b625e99b6b" + + "00609260ff4f214918f76790ab61069c8ff2bae9b4e992326bb5f357e85d" + + "1bcd8c1dab95049549f3352d96e3496ddd77e3fb494bb4ac5507a98f95b3" + + "b423bb4c6d45f0f6a9b29530b4fd4c558c274a57147c829dcd7392d3164a" + + "060c8c50d18f1e09be17a1e621cafd83e510bc83a50ac46728f67314143d" + + "4676c387148921344daf0f450ca649a1babb9cc5b1338329850203010001" + + "a3423040300f0603551d130101ff040530030101ff300e0603551d0f0101" + + "ff040403020186301d0603551d0e041604144e2254201895e6e36ee60ffa" + + "fab912ed06178f39300d06092a864886f70d01010b050003820101006067" + + "28946f0e4863eb31ddea6718d5897d3cc58b4a7fe9bedb2b17dfb05f7377" + + "2a3213398167428423f2456735ec88bff88fb0610c34a4ae204c84c6dbf8" + + "35e176d9dfa642bbc74408867f3674245ada6c0d145935bdf249ddb61fc9" + + "b30d472a3d992fbb5cbbb5d420e1995f534615db689bf0f330d53e31e28d" + + "849ee38adada963e3513a55ff0f970507047411157194ec08fae06c49513" + + "172f1b259f75f2b18e99a16f13b14171fe882ac84f102055d7f31445e5e0" + + "44f4ea879532930efe5346fa2c9dff8b22b94bd90945a4dea4b89a58dd1b" + + "7d529f8e59438881a49e26d56faddd0dc6377ded03921be5775f76ee3c8d" + + "c45d565ba2d9666eb33537e532b6").HexToByteArray(); internal static readonly byte[] Rsa384CertificatePemBytes = ByteUtils.AsciiBytes( @"-----BEGIN CERTIFICATE----- diff --git a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs index 9633d22701cf0d..680d2efd5c5cbc 100644 --- a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs @@ -603,7 +603,6 @@ public static int Main() private static IHostRunner GetHostRunnerFromRunHost(RunHost host) => host switch { RunHost.V8 => new V8HostRunner(), - RunHost.NodeJS => new NodeJSHostRunner(), _ => new BrowserHostRunner(), }; } diff --git a/src/mono/wasm/Wasm.Build.Tests/Common/RunHost.cs b/src/mono/wasm/Wasm.Build.Tests/Common/RunHost.cs index 137316ebb546c5..0aa1ae14ea8120 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Common/RunHost.cs +++ b/src/mono/wasm/Wasm.Build.Tests/Common/RunHost.cs @@ -13,8 +13,7 @@ public enum RunHost Chrome = 2, Safari = 4, Firefox = 8, - NodeJS = 16, - All = V8 | NodeJS | Chrome//| Firefox//Safari + All = V8 | Chrome//| Firefox//Safari } } diff --git a/src/mono/wasm/Wasm.Build.Tests/HostRunner/NodeJSHostRunner.cs b/src/mono/wasm/Wasm.Build.Tests/HostRunner/NodeJSHostRunner.cs deleted file mode 100644 index cf311557c27f2e..00000000000000 --- a/src/mono/wasm/Wasm.Build.Tests/HostRunner/NodeJSHostRunner.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -#nullable enable - -namespace Wasm.Build.Tests; - -public class NodeJSHostRunner : IHostRunner -{ - public string GetTestCommand() => "wasm test"; - public string GetXharnessArgsWindowsOS(XHarnessArgsOptions options) => $"--js-file={options.jsRelativePath} --engine=NodeJS -v trace"; - public string GetXharnessArgsOtherOS(XHarnessArgsOptions options) => $"--js-file={options.jsRelativePath} --engine=NodeJS -v trace --locale={options.environmentLocale}"; - public bool UseWasmConsoleOutput() => true; - public bool CanRunWBT() => true; -} diff --git a/src/mono/wasm/Wasm.Build.Tests/IcuShardingTests.cs b/src/mono/wasm/Wasm.Build.Tests/IcuShardingTests.cs index dbaeba4bb1165b..eb05d5bfc81416 100644 --- a/src/mono/wasm/Wasm.Build.Tests/IcuShardingTests.cs +++ b/src/mono/wasm/Wasm.Build.Tests/IcuShardingTests.cs @@ -35,8 +35,8 @@ public IcuShardingTests(ITestOutputHelper output, SharedBuildPerTestClassFixture .UnwrapItemsAsArrays(); [Theory] - [MemberData(nameof(IcuExpectedAndMissingCustomShardTestData), parameters: new object[] { false, RunHost.NodeJS | RunHost.Chrome })] - [MemberData(nameof(IcuExpectedAndMissingCustomShardTestData), parameters: new object[] { true, RunHost.NodeJS | RunHost.Chrome })] + [MemberData(nameof(IcuExpectedAndMissingCustomShardTestData), parameters: new object[] { false, RunHost.Chrome })] + [MemberData(nameof(IcuExpectedAndMissingCustomShardTestData), parameters: new object[] { true, RunHost.Chrome })] public void CustomIcuShard(BuildArgs buildArgs, string shardName, string testedLocales, bool onlyPredefinedCultures, RunHost host, string id) => TestIcuShards(buildArgs, shardName, testedLocales, host, id, onlyPredefinedCultures); diff --git a/src/mono/wasm/Wasm.Build.Tests/IcuShardingTests2.cs b/src/mono/wasm/Wasm.Build.Tests/IcuShardingTests2.cs index c04d5c1114dc00..221850f27a188d 100644 --- a/src/mono/wasm/Wasm.Build.Tests/IcuShardingTests2.cs +++ b/src/mono/wasm/Wasm.Build.Tests/IcuShardingTests2.cs @@ -32,8 +32,8 @@ public IcuShardingTests2(ITestOutputHelper output, SharedBuildPerTestClassFixtur [Theory] - [MemberData(nameof(IcuExpectedAndMissingShardFromRuntimePackTestData), parameters: new object[] { false, RunHost.NodeJS | RunHost.Chrome })] - [MemberData(nameof(IcuExpectedAndMissingShardFromRuntimePackTestData), parameters: new object[] { true, RunHost.NodeJS | RunHost.Chrome })] + [MemberData(nameof(IcuExpectedAndMissingShardFromRuntimePackTestData), parameters: new object[] { false, RunHost.Chrome })] + [MemberData(nameof(IcuExpectedAndMissingShardFromRuntimePackTestData), parameters: new object[] { true, RunHost.Chrome })] public void DefaultAvailableIcuShardsFromRuntimePack(BuildArgs buildArgs, string shardName, string testedLocales, RunHost host, string id) => TestIcuShards(buildArgs, shardName, testedLocales, host, id); } \ No newline at end of file diff --git a/src/mono/wasm/Wasm.Build.Tests/IcuTests.cs b/src/mono/wasm/Wasm.Build.Tests/IcuTests.cs index 0f58d24ac9f3d0..5137de3c096a2b 100644 --- a/src/mono/wasm/Wasm.Build.Tests/IcuTests.cs +++ b/src/mono/wasm/Wasm.Build.Tests/IcuTests.cs @@ -37,8 +37,8 @@ public IcuTests(ITestOutputHelper output, SharedBuildPerTestClassFixture buildCo .UnwrapItemsAsArrays(); [Theory] - [MemberData(nameof(FullIcuWithInvariantTestData), parameters: new object[] { false, RunHost.NodeJS | RunHost.Chrome })] - [MemberData(nameof(FullIcuWithInvariantTestData), parameters: new object[] { true, RunHost.NodeJS | RunHost.Chrome })] + [MemberData(nameof(FullIcuWithInvariantTestData), parameters: new object[] { false, RunHost.Chrome })] + [MemberData(nameof(FullIcuWithInvariantTestData), parameters: new object[] { true, RunHost.Chrome })] public void FullIcuFromRuntimePackWithInvariant(BuildArgs buildArgs, bool invariant, bool fullIcu, string testedLocales, RunHost host, string id) { string projectName = $"fullIcuInvariant_{fullIcu}_{invariant}_{buildArgs.Config}_{buildArgs.AOT}"; @@ -60,8 +60,8 @@ public void FullIcuFromRuntimePackWithInvariant(BuildArgs buildArgs, bool invari } [Theory] - [MemberData(nameof(FullIcuWithICustomIcuTestData), parameters: new object[] { false, RunHost.NodeJS | RunHost.Chrome })] - [MemberData(nameof(FullIcuWithICustomIcuTestData), parameters: new object[] { true, RunHost.NodeJS | RunHost.Chrome })] + [MemberData(nameof(FullIcuWithICustomIcuTestData), parameters: new object[] { false, RunHost.Chrome })] + [MemberData(nameof(FullIcuWithICustomIcuTestData), parameters: new object[] { true, RunHost.Chrome })] public void FullIcuFromRuntimePackWithCustomIcu(BuildArgs buildArgs, bool fullIcu, RunHost host, string id) { string projectName = $"fullIcuCustom_{fullIcu}_{buildArgs.Config}_{buildArgs.AOT}"; diff --git a/src/mono/wasm/Wasm.Build.Tests/MainWithArgsTests.cs b/src/mono/wasm/Wasm.Build.Tests/MainWithArgsTests.cs index eb9829438f75d4..57fce4790ec70c 100644 --- a/src/mono/wasm/Wasm.Build.Tests/MainWithArgsTests.cs +++ b/src/mono/wasm/Wasm.Build.Tests/MainWithArgsTests.cs @@ -38,14 +38,6 @@ public static async System.Threading.Tasks.Task Main(string[] args) }", buildArgs, args, host, id); - [Theory] - [MemberData(nameof(MainWithArgsTestData), parameters: new object[] { /*aot*/ false, RunHost.All })] - [MemberData(nameof(MainWithArgsTestData), parameters: new object[] { /*aot*/ true, RunHost.All })] - public void TopLevelWithArgs(BuildArgs buildArgs, string[] args, RunHost host, string id) - => TestMainWithArgs("top_level_args", - @"##CODE## return await System.Threading.Tasks.Task.FromResult(42 + count);", - buildArgs, args, host, id); - [Theory] [MemberData(nameof(MainWithArgsTestData), parameters: new object[] { /*aot*/ false, RunHost.All })] [MemberData(nameof(MainWithArgsTestData), parameters: new object[] { /*aot*/ true, RunHost.All })] diff --git a/src/mono/wasm/features.md b/src/mono/wasm/features.md index d3d85f2e570a9e..46d3f5b702cb71 100644 --- a/src/mono/wasm/features.md +++ b/src/mono/wasm/features.md @@ -40,15 +40,11 @@ It can be enabled with `true` and disabled with For more information on this feature, see [SIMD.md](https://github.com/WebAssembly/simd/blob/master/proposals/simd/SIMD.md). -Older versions of NodeJS hosts may need `--experimental-wasm-simd` command line option. - ### EH - Exception handling WebAssembly exception handling provides higher performance for code containing `try` blocks by allowing exceptions to be caught and thrown natively without the use of JavaScript. It is currently enabled by default and can be disabled via `false`. For more information on this feature, see [Exceptions.md](https://github.com/WebAssembly/exception-handling/blob/master/proposals/exception-handling/Exceptions.md) -Older versions of NodeJS hosts may need `--experimental-wasm-eh` command line option. - ### BigInt Passing Int64 and UInt64 values between JavaScript and C# requires support for the JavaScript `BigInt` type. See [JS-BigInt](https://github.com/WebAssembly/JS-BigInt-integration) for more information on this API. @@ -59,15 +55,11 @@ Because web browsers do not expose direct access to sockets, we are unable to pr A prominent limitation is that your application must obey `Cross-Origin Resource Sharing` (CORS) rules in order to perform network requests successfully - see [CORS on MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) for more information. -For your application to be able to perform HTTP requests in a NodeJS host, you need to install the `node-fetch` and `node-abort-controller` npm packages. - ### WebSocket Applications using the [WebSocketClient](https://learn.microsoft.com/en-us/dotnet/api/system.net.websockets.clientwebsocket) managed API will require the browser to support the [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) API. As with HTTP and HttpClient, we are unable to ship a custom implementation of this feature, so its behavior will depend on the browser being used to run the application. -WebSocket support in NodeJS hosts requires the `ws` npm package. - ### Initial Memory Size By default the .NET runtime will reserve a small amount of memory at startup, and as your application allocates more objects the runtime will attempt to "grow" this memory. This growth operation takes time and could fail if your device's memory is limited, which would result in an application error or "tab crash". @@ -289,26 +281,8 @@ Mobile browsers typically have strict limits on the amount of memory they can us A WebAssembly application that works well on desktop PCs browser may take minutes to download or run out of memory before it is able to start on a mobile device, and the same is true for .NET. -### Shell environments - NodeJS & V8 -While our primary target is web browsers, we have partial support for Node.JS v14 sufficient to pass most of our automated tests. We also have partial support for the D8 command-line shell, version 11 or higher, sufficient to pass most of our automated tests. Both of these environments may lack support for features that are available in the browser. - -#### NodeJS < 20 -Until node version 20, you may need to pass these arguments when running the application `--experimental-wasm-simd --experimental-wasm-eh`. When you run the application using `dotnet run`, you can add these to the runtimeconfig template - -```json -"wasmHostProperties": { - "perHostConfig": [ - { - "name": "node", - ... - "host-args": [ - "--experimental-wasm-simd", // 👈 Enable SIMD support - "--experimental-wasm-eh" // 👈 Enable exception handling support - ] - } - ] -} -``` +### Shell environments - V8 +While our primary target is web browsers, we have partial support for D8/V8 command-line shell, version 11 or higher, sufficient to pass most of our automated tests. Both of these environments may lack support for features that are available in the browser. ## Choosing the right platform target Every end user has different needs, so the right platform for every application may differ. diff --git a/src/mono/wasm/testassets/Blazor_net50/App.razor b/src/mono/wasm/testassets/Blazor_net50/App.razor deleted file mode 100644 index b941644e298f13..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/App.razor +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - -

Sorry, there's nothing at this address.

-
-
-
diff --git a/src/mono/wasm/testassets/Blazor_net50/Blazor_net50.csproj b/src/mono/wasm/testassets/Blazor_net50/Blazor_net50.csproj deleted file mode 100644 index 533c04800b235a..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/Blazor_net50.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - net5.0 - - - - - - - - - diff --git a/src/mono/wasm/testassets/Blazor_net50/Pages/Counter.razor b/src/mono/wasm/testassets/Blazor_net50/Pages/Counter.razor deleted file mode 100644 index 8641f781999a93..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/Pages/Counter.razor +++ /dev/null @@ -1,16 +0,0 @@ -@page "/counter" - -

Counter

- -

Current count: @currentCount

- - - -@code { - private int currentCount = 0; - - private void IncrementCount() - { - currentCount++; - } -} diff --git a/src/mono/wasm/testassets/Blazor_net50/Pages/FetchData.razor b/src/mono/wasm/testassets/Blazor_net50/Pages/FetchData.razor deleted file mode 100644 index 4432ee5d90174c..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/Pages/FetchData.razor +++ /dev/null @@ -1,55 +0,0 @@ -@page "/fetchdata" -@inject HttpClient Http - -

Weather forecast

- -

This component demonstrates fetching data from the server.

- -@if (forecasts == null) -{ -

Loading...

-} -else -{ - - - - - - - - - - - @foreach (var forecast in forecasts) - { - - - - - - - } - -
DateTemp. (C)Temp. (F)Summary
@forecast.Date.ToShortDateString()@forecast.TemperatureC@forecast.TemperatureF@forecast.Summary
-} - -@code { - private WeatherForecast[] forecasts; - - protected override async Task OnInitializedAsync() - { - forecasts = await Http.GetFromJsonAsync("sample-data/weather.json"); - } - - public class WeatherForecast - { - public DateTime Date { get; set; } - - public int TemperatureC { get; set; } - - public string Summary { get; set; } - - public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); - } -} diff --git a/src/mono/wasm/testassets/Blazor_net50/Pages/Index.razor b/src/mono/wasm/testassets/Blazor_net50/Pages/Index.razor deleted file mode 100644 index e54d914390e1d8..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/Pages/Index.razor +++ /dev/null @@ -1,7 +0,0 @@ -@page "/" - -

Hello, world!

- -Welcome to your new app. - - diff --git a/src/mono/wasm/testassets/Blazor_net50/Program.cs b/src/mono/wasm/testassets/Blazor_net50/Program.cs deleted file mode 100644 index b1926ec328b4e2..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/Program.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Net.Http; -using System.Collections.Generic; -using System.Threading.Tasks; -using System.Text; -using Microsoft.AspNetCore.Components.WebAssembly.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; - -namespace Blazor_net50 -{ - public class Program - { - public static async Task Main(string[] args) - { - var builder = WebAssemblyHostBuilder.CreateDefault(args); - builder.RootComponents.Add("#app"); - - builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); - - await builder.Build().RunAsync(); - } - } -} diff --git a/src/mono/wasm/testassets/Blazor_net50/Shared/MainLayout.razor b/src/mono/wasm/testassets/Blazor_net50/Shared/MainLayout.razor deleted file mode 100644 index b416cb95698cc1..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/Shared/MainLayout.razor +++ /dev/null @@ -1,17 +0,0 @@ -@inherits LayoutComponentBase - -
- - -
-
- About -
- -
- @Body -
-
-
diff --git a/src/mono/wasm/testassets/Blazor_net50/Shared/MainLayout.razor.css b/src/mono/wasm/testassets/Blazor_net50/Shared/MainLayout.razor.css deleted file mode 100644 index 43c355a47ac73a..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/Shared/MainLayout.razor.css +++ /dev/null @@ -1,70 +0,0 @@ -.page { - position: relative; - display: flex; - flex-direction: column; -} - -.main { - flex: 1; -} - -.sidebar { - background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); -} - -.top-row { - background-color: #f7f7f7; - border-bottom: 1px solid #d6d5d5; - justify-content: flex-end; - height: 3.5rem; - display: flex; - align-items: center; -} - - .top-row ::deep a, .top-row .btn-link { - white-space: nowrap; - margin-left: 1.5rem; - } - - .top-row a:first-child { - overflow: hidden; - text-overflow: ellipsis; - } - -@media (max-width: 640.98px) { - .top-row:not(.auth) { - display: none; - } - - .top-row.auth { - justify-content: space-between; - } - - .top-row a, .top-row .btn-link { - margin-left: 0; - } -} - -@media (min-width: 641px) { - .page { - flex-direction: row; - } - - .sidebar { - width: 250px; - height: 100vh; - position: sticky; - top: 0; - } - - .top-row { - position: sticky; - top: 0; - z-index: 1; - } - - .main > div { - padding-left: 2rem !important; - padding-right: 1.5rem !important; - } -} diff --git a/src/mono/wasm/testassets/Blazor_net50/Shared/NavMenu.razor b/src/mono/wasm/testassets/Blazor_net50/Shared/NavMenu.razor deleted file mode 100644 index d2f6197a2433da..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/Shared/NavMenu.razor +++ /dev/null @@ -1,37 +0,0 @@ - - -
- -
- -@code { - private bool collapseNavMenu = true; - - private string NavMenuCssClass => collapseNavMenu ? "collapse" : null; - - private void ToggleNavMenu() - { - collapseNavMenu = !collapseNavMenu; - } -} diff --git a/src/mono/wasm/testassets/Blazor_net50/Shared/NavMenu.razor.css b/src/mono/wasm/testassets/Blazor_net50/Shared/NavMenu.razor.css deleted file mode 100644 index acc5f9f8191976..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/Shared/NavMenu.razor.css +++ /dev/null @@ -1,62 +0,0 @@ -.navbar-toggler { - background-color: rgba(255, 255, 255, 0.1); -} - -.top-row { - height: 3.5rem; - background-color: rgba(0,0,0,0.4); -} - -.navbar-brand { - font-size: 1.1rem; -} - -.oi { - width: 2rem; - font-size: 1.1rem; - vertical-align: text-top; - top: -2px; -} - -.nav-item { - font-size: 0.9rem; - padding-bottom: 0.5rem; -} - - .nav-item:first-of-type { - padding-top: 1rem; - } - - .nav-item:last-of-type { - padding-bottom: 1rem; - } - - .nav-item ::deep a { - color: #d7d7d7; - border-radius: 4px; - height: 3rem; - display: flex; - align-items: center; - line-height: 3rem; - } - -.nav-item ::deep a.active { - background-color: rgba(255,255,255,0.25); - color: white; -} - -.nav-item ::deep a:hover { - background-color: rgba(255,255,255,0.1); - color: white; -} - -@media (min-width: 641px) { - .navbar-toggler { - display: none; - } - - .collapse { - /* Never collapse the sidebar for wide screens */ - display: block; - } -} diff --git a/src/mono/wasm/testassets/Blazor_net50/Shared/SurveyPrompt.razor b/src/mono/wasm/testassets/Blazor_net50/Shared/SurveyPrompt.razor deleted file mode 100644 index 67828b574bb9df..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/Shared/SurveyPrompt.razor +++ /dev/null @@ -1,16 +0,0 @@ - - -@code { - // Demonstrates how a parent component can supply parameters - [Parameter] - public string Title { get; set; } -} diff --git a/src/mono/wasm/testassets/Blazor_net50/_Imports.razor b/src/mono/wasm/testassets/Blazor_net50/_Imports.razor deleted file mode 100644 index d6b66f28b94f7d..00000000000000 --- a/src/mono/wasm/testassets/Blazor_net50/_Imports.razor +++ /dev/null @@ -1,10 +0,0 @@ -@using System.Net.Http -@using System.Net.Http.Json -@using Microsoft.AspNetCore.Components.Forms -@using Microsoft.AspNetCore.Components.Routing -@using Microsoft.AspNetCore.Components.Web -@using Microsoft.AspNetCore.Components.Web.Virtualization -@using Microsoft.AspNetCore.Components.WebAssembly.Http -@using Microsoft.JSInterop -@using Blazor_net50 -@using Blazor_net50.Shared