From 3f2a694c0081eccb57c04fe34a9c15548489fa0a Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 15 Sep 2022 13:53:41 -0400 Subject: [PATCH 1/7] Make mono desktop runs use global build template. --- eng/native/gen-buildsys.sh | 7 ++ eng/pipelines/common/global-build-job.yml | 23 +++- .../build-runtime-tests-and-send-to-helix.yml | 113 +++++++++++++++++ .../wasm-runtime-and-send-to-helix.yml | 78 ------------ .../common/templates/wasm-runtime-tests.yml | 2 +- eng/pipelines/runtime.yml | 116 ++++++++++++------ src/tests/Common/helixpublishwitharcade.proj | 2 + src/tests/Directory.Build.props | 2 + src/tests/Directory.Build.targets | 1 + src/tests/issues.targets | 90 ++++++++++++++ 10 files changed, 313 insertions(+), 121 deletions(-) create mode 100644 eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml delete mode 100644 eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml diff --git a/eng/native/gen-buildsys.sh b/eng/native/gen-buildsys.sh index 9f5b777b04b3ec..208cd3409baedd 100755 --- a/eng/native/gen-buildsys.sh +++ b/eng/native/gen-buildsys.sh @@ -59,6 +59,8 @@ for i in "${@:6}"; do esac done +echo "!!!naricc_debug!!! host_arch: $host_arch CROSSCOMPILE: $CROSSCOMPILE" + cmake_extra_defines= if [[ "$CROSSCOMPILE" == "1" ]]; then platform="$(uname)" @@ -71,6 +73,7 @@ if [[ "$CROSSCOMPILE" == "1" ]]; then TARGET_BUILD_ARCH="$host_arch" export TARGET_BUILD_ARCH + cmake_extra_defines="$cmake_extra_defines -C $scriptroot/tryrun.cmake" if [[ "$platform" == "Darwin" ]]; then @@ -80,6 +83,10 @@ if [[ "$CROSSCOMPILE" == "1" ]]; then fi fi + +echo "!!!naricc_debug!!! host_arch: $host_arch TARGET_BUILD_ARCH: $TARGET_BUILD_ARCH" + + if [[ "$host_arch" == "armel" ]]; then cmake_extra_defines="$cmake_extra_defines -DARM_SOFTFP=1" fi diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 82e413d936e92a..3a6bfd15d8ce07 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -37,18 +37,18 @@ parameters: jobs: - template: /eng/common/templates/job/job.yml parameters: - ${{ if eq(parameters.hostedOs, '') }}: + ${{ if eq(parameters.hostedOs, '') }}: name: ${{ format('build_{0}{1}_{2}_{3}_{4}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.nameSuffix) }} - displayName: ${{ format('Build {0}{1} {2} {3} {4}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.nameSuffix) }} + displayName: ${{ format('Build {0}{1} {2} {3} {4} {5}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.nameSuffix, parameters.runtimeVariant) }} ${{ if ne(parameters.hostedOs, '') }}: name: ${{ format('build_{0}{1}_{2}_{3}_{4}_{5}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.hostedOs, parameters.buildConfig, parameters.nameSuffix) }} - displayName: ${{ format('Build {0}{1} {2} {3} {4} {5}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.hostedOs, parameters.buildConfig, parameters.nameSuffix) }} + displayName: ${{ format('Build {0}{1} {2} {3} {4} {5} {6}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.hostedOs, parameters.buildConfig, parameters.nameSuffix, parameters.runtimeVariant) }} pool: ${{ parameters.pool }} container: ${{ parameters.container }} condition: and(succeeded(), ${{ parameters.condition }}) timeoutInMinutes: ${{ parameters.timeoutInMinutes }} enablePublishTestResults: ${{ parameters.enablePublishTestResults }} - testResultsFormat: ${{ parameters.testResultsFormat }} + testResultsFormat: ${{ parameters.testResultsFormat }}} # Component governance does not work on musl machines ${{ if eq(parameters.osSubGroup, '_musl') }}: @@ -119,6 +119,21 @@ jobs: ${{ if ne(parameters.isSourceBuild, true) }}: value: '' + - name: _monoAotBuildshCommand + value: '' + + - ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}: + - name: _monoAotBuildshCommand + value: 'mono_aot' + + - ${{ if eq(parameters.runtimeVariant, 'llvmfullaot') }}: + - name: _monoAotBuildshCommand + value: 'mono_fullaot' + + - ${{ if eq(parameters.archType, 'arm64') }}: + - name: _monoAotCrossCompileArg + value: 'cross' + - ${{ each variable in parameters.variables }}: - ${{ variable }} diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml new file mode 100644 index 00000000000000..89235fbd244d9b --- /dev/null +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -0,0 +1,113 @@ +parameters: + buildConfig: '' + archType: 'wasm' + osGroup: 'Browser' + osSubgroup: '' + container: '' + testGroup: '' + crossBuild: false + readyToRun: false + liveLibrariesBuildConfig: '' + compositeBuildMode: false + helixQueues: '' + stagedBuild: false + displayNameArgs: '' + runInUnloadableContext: false + runtimeVariant: 'monointerpreter' + variables: {} + pool: '' + dependsOn: [] + #arcade-specific parameters + condition: always() + continueOnError: false + displayName: '' + timeoutInMinutes: '' + enableMicrobuild: '' + gatherAssetManifests: false + shouldContinueOnError: false + +steps: + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:RuntimeVariant=${{ parameters.runtimeVariant }} /p:LibrariesConfiguration=${{ parameters.buildConfig }} -mono -ci os ${{ parameters.osGroup }} ${{ parameters.archType }} $(buildConfigUpper) + displayName: Build Tests + + + # Build a Mono LLVM AOT cross-compiler for non-amd64 targets (in this case, just arm64) + - ${{ if and(eq(parameters.runtimeFlavor, 'mono'), or(eq(parameters.runtimeVariant, 'llvmaot'), eq(parameters.runtimeVariant, 'llvmfullaot'))) }}: + - ${{ if eq(parameters.archType, 'arm64') }}: + - script: ./build.sh + -subset mono + -c ${{ parameters.buildConfig }} + -arch ${{ parameters.archType }} + /p:BuildMonoAotCrossCompiler=true + /p:BuildMonoAotCrossCompilerOnly=true + /p:MonoLibClang="/usr/lib/llvm-9/lib/libclang-9.so.1" + /p:MonoAOTEnableLLVM=true + /p:MonoAOTLLVMUseCxx11Abi=true + /p:CrossBuild=true + displayName: "Build Mono LLVM AOT cross compiler" + + - ${{ if and(eq(parameters.runtimeFlavor, 'mono'), or(eq(parameters.runtimeVariant, 'llvmaot'), eq(parameters.runtimeVariant, 'llvmfullaot'))) }}: + - ${{ if eq(parameters.archType, 'x64') }}: + - ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}: + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_aot ${{ parameters.buildConfig }} ${{ parameters.archType }} + displayName: "LLVM AOT compile CoreCLR tests" + - ${{ if eq(parameters.runtimeVariant, 'llvmfullaot') }}: + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_fullaot ${{ parameters.buildConfig }} ${{ parameters.archType }} + displayName: "LLVM AOT compile CoreCLR tests" + - ${{ if eq(parameters.archType, 'arm64') }}: + - ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}: + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_aot ${{ parameters.buildConfig }} ${{ parameters.archType }} $(_monoAotCrossCompileArg) /p:RuntimeVariant=llvmfullaot -maxcpucount:2 + displayName: "LLVM AOT cross-compile CoreCLR tests" + env: + __MonoToolPrefix: aarch64-linux-gnu- + - ${{ if eq(parameters.runtimeVariant, 'llvmfullaot') }}: + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_fullaot ${{ parameters.buildConfig }} ${{ parameters.archType }} $(_monoAotCrossCompileArg) /p:RuntimeVariant=llvmfullaot -maxcpucount:2 + displayName: "LLVM AOT cross-compile CoreCLR tests" + env: + __MonoToolPrefix: aarch64-linux-gnu- + + # Send tests to Helix + - template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml + parameters: + displayName: Send tests to Helix + buildConfig: $(buildConfigUpper) + archType: ${{ parameters.archType }} + osGroup: ${{ parameters.osGroup }} + osSubgroup: ${{ parameters.osSubgroup}} + coreClrRepoRoot: $(Build.SourcesDirectory)/src/coreclr + shouldContinueOnError: ${{ parameters.shouldContinueOnError }} + runtimeFlavor: ${{ parameters.runtimeFlavor }} + runtimeVariant: ${{ parameters.runtimeVariant }} + + ${{ if eq(variables['System.TeamProject'], 'public') }}: + creator: $(Build.DefinitionName) + + helixBuild: $(Build.BuildNumber) + helixSource: $(_HelixSource) + + ${{ if ne(parameters.readyToRun, true) }}: + helixType: 'test/functional/cli/' + + helixQueues: ${{ parameters.helixQueues }} + + # This tests whether an array is empty + ${{ if eq(join('', parameters.helixQueues), '') }}: + condition: false + + publishTestResults: true + + timeoutPerTestInMinutes: $(timeoutPerTestInMinutes) + timeoutPerTestCollectionInMinutes: $(timeoutPerTestCollectionInMinutes) + + runCrossGen2: ${{ eq(parameters.readyToRun, true) }} + compositeBuildMode: ${{ parameters.compositeBuildMode }} + runInUnloadableContext: ${{ parameters.runInUnloadableContext }} + + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + # Access token variable for internal project from the + # DotNet-HelixApi-Access variable group + helixAccessToken: $(HelixApiAccessToken) + + helixProjectArguments: '$(Build.SourcesDirectory)/src/tests/Common/helixpublishwitharcade.proj' + + scenarios: normal diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml deleted file mode 100644 index 66a634c5f74181..00000000000000 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ /dev/null @@ -1,78 +0,0 @@ -parameters: - buildConfig: '' - archType: 'wasm' - osGroup: 'Browser' - osSubgroup: '' - container: '' - testGroup: '' - crossBuild: false - readyToRun: false - liveLibrariesBuildConfig: '' - compositeBuildMode: false - helixQueues: '' - stagedBuild: false - displayNameArgs: '' - runInUnloadableContext: false - runtimeVariant: '' - variables: {} - pool: '' - dependsOn: [] - #arcade-specific parameters - condition: always() - continueOnError: false - displayName: '' - timeoutInMinutes: '' - enableMicrobuild: '' - gatherAssetManifests: false - shouldContinueOnError: false - - -steps: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:RuntimeVariant=${{ parameters.runtimeVariant }} /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -mono os Browser wasm $(buildConfigUpper) - displayName: Build Tests - - # Send tests to Helix - - template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml - parameters: - displayName: Send tests to Helix - buildConfig: $(buildConfigUpper) - archType: ${{ parameters.archType }} - osGroup: ${{ parameters.osGroup }} - osSubgroup: ${{ parameters.osSubgroup}} - coreClrRepoRoot: $(Build.SourcesDirectory)/src/coreclr - shouldContinueOnError: ${{ parameters.shouldContinueOnError }} - runtimeFlavor: ${{ parameters.runtimeFlavor }} - runtimeVariant: ${{ parameters.runtimeVariant }} - - ${{ if eq(variables['System.TeamProject'], 'public') }}: - creator: $(Build.DefinitionName) - - helixBuild: $(Build.BuildNumber) - helixSource: $(_HelixSource) - - ${{ if ne(parameters.readyToRun, true) }}: - helixType: 'test/functional/cli/' - - helixQueues: ${{ parameters.helixQueues }} - - # This tests whether an array is empty - ${{ if eq(join('', parameters.helixQueues), '') }}: - condition: false - - publishTestResults: true - - timeoutPerTestInMinutes: $(timeoutPerTestInMinutes) - timeoutPerTestCollectionInMinutes: $(timeoutPerTestCollectionInMinutes) - - runCrossGen2: ${{ eq(parameters.readyToRun, true) }} - compositeBuildMode: ${{ parameters.compositeBuildMode }} - runInUnloadableContext: ${{ parameters.runInUnloadableContext }} - - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - # Access token variable for internal project from the - # DotNet-HelixApi-Access variable group - helixAccessToken: $(HelixApiAccessToken) - - helixProjectArguments: '$(Build.SourcesDirectory)/src/tests/Common/helixpublishwitharcade.proj' - - scenarios: normal diff --git a/eng/pipelines/common/templates/wasm-runtime-tests.yml b/eng/pipelines/common/templates/wasm-runtime-tests.yml index 8c091c165debfa..7a9aa31e48d8de 100644 --- a/eng/pipelines/common/templates/wasm-runtime-tests.yml +++ b/eng/pipelines/common/templates/wasm-runtime-tests.yml @@ -47,7 +47,7 @@ jobs: or( eq(variables['alwaysRunVar'], true), eq(variables['isDefaultPipeline'], variables['shouldRunOnDefaultPipelines'])) - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml + extraStepsTemplate: //eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 261f3058a297e3..12efc3b1243cd6 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1023,76 +1023,106 @@ extends: eq(variables['isRollingBuild'], true)) # - # Mono CoreCLR runtime Test executions using live libraries in jit mode - # Only when Mono is changed + # Build the whole product using Mono and run runtime tests + # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: release + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release runtimeFlavor: mono platforms: - - OSX_x64 - - windows_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + - OSX_x64 + - windows_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 jobParameters: testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release + nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests runtimeVariant: minijit + buildArgs: -s mono+libs+clr.hosts -c Release + timeoutInMinutes: 180 condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release # # Mono CoreCLR runtime Test executions using live libraries in interpreter mode # Only when Mono is changed + - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: release + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release runtimeFlavor: mono platforms: - - OSX_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + - OSX_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 jobParameters: testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release + nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests runtimeVariant: monointerpreter + buildArgs: -s mono+libs+clr.hosts -c Release + timeoutInMinutes: 180 condition: >- or( eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), eq(variables['isRollingBuild'], true)) + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT # Only when Mono is changed # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: release + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release runtimeFlavor: mono platforms: - - Linux_x64 - # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation - #- Linux_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + - Linux_x64 + # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation + #- Linux_arm64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 jobParameters: testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release + nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests runtimeVariant: llvmaot + buildArgs: -s mono+libs+clr.hosts -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + timeoutInMinutes: 180 + condition: >- or( eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), eq(variables['isRollingBuild'], true)) + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release # # Mono CoreCLR runtime Test executions using live libraries and LLVM Full AOT @@ -1100,24 +1130,34 @@ extends: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: release + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release runtimeFlavor: mono platforms: - - Linux_x64 - - Linux_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + - Linux_x64 + - Linux_arm64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 jobParameters: testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release + nameSuffix: AllSubsets_Mono_LLVMFullAot_RuntimeTests runtimeVariant: llvmfullaot + buildArgs: -s mono+libs+clr.hosts -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + timeoutInMinutes: 300 + condition: >- or( eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), eq(variables['isRollingBuild'], true)) + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release # # Libraries Release Test Execution against a release mono runtime. diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 57d12bab0134ec..8a0edff8334877 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -115,6 +115,7 @@ + @@ -548,6 +549,7 @@ DestinationFile="$(MergedPayloadsRootDirectory)\%(MergedPayloads.PayloadGroup).zip" /> + $(PublishTestResults) false diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props index 45d0c1ee26c874..281c43fd390f08 100644 --- a/src/tests/Directory.Build.props +++ b/src/tests/Directory.Build.props @@ -83,9 +83,11 @@ false true + llvmaot false true + llvmfullaot $(__MonoBinDir) diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets index 815d023fe212b4..7fde247fea586a 100644 --- a/src/tests/Directory.Build.targets +++ b/src/tests/Directory.Build.targets @@ -96,6 +96,7 @@ <_WillCLRTestProjectBuild Condition="'$(CLRTestBuildAllTargets)' != 'allTargets' And '$(CLRTestTargetUnsupported)' == 'true'">false <_WillCLRTestProjectBuild Condition="'$(DisableProjectBuild)' == 'true'">false <_WillCLRTestProjectBuild Condition="'$(NativeAotIncompatible)' == 'true' and '$(TestBuildMode)' == 'nativeaot'">false + <_WillCLRTestProjectBuild Condition="'$(RuntimeFlavor)' == 'mono' And '$(AlwaysUseCrossgen2)' == 'true'">false <_CopyNativeProjectBinaries Condition="'$(__CopyNativeTestBinaries)' != '1'">$(__CopyNativeProjectsAfterCombinedTestBuild) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 89b275a5427297..b42f2159ad8b0e 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -2107,6 +2107,12 @@ https://github.com/dotnet/runtime/issues/70820 + + + + Can't build clr.tools independent of coreclr + + @@ -2663,6 +2669,90 @@ https://github.com/dotnet/runtime/issues/75359 + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + + + https://github.com/dotnet/runtime/issues/75767 + From 0ae52c8085ba033ce196e05ac22b122ea9e88e8f Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 7 Nov 2022 17:04:40 -0500 Subject: [PATCH 2/7] Add iltools subset; reanble il tests. --- eng/pipelines/runtime.yml | 8 ++++---- src/tests/issues.targets | 6 ------ 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 12efc3b1243cd6..dc42224fed7a8e 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1043,7 +1043,7 @@ extends: testGroup: innerloop nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests runtimeVariant: minijit - buildArgs: -s mono+libs+clr.hosts -c Release + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release timeoutInMinutes: 180 condition: >- or( @@ -1077,7 +1077,7 @@ extends: testGroup: innerloop nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests runtimeVariant: monointerpreter - buildArgs: -s mono+libs+clr.hosts -c Release + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release timeoutInMinutes: 180 condition: >- or( @@ -1111,7 +1111,7 @@ extends: testGroup: innerloop nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests runtimeVariant: llvmaot - buildArgs: -s mono+libs+clr.hosts -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true timeoutInMinutes: 180 condition: >- @@ -1146,7 +1146,7 @@ extends: testGroup: innerloop nameSuffix: AllSubsets_Mono_LLVMFullAot_RuntimeTests runtimeVariant: llvmfullaot - buildArgs: -s mono+libs+clr.hosts -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true timeoutInMinutes: 300 condition: >- diff --git a/src/tests/issues.targets b/src/tests/issues.targets index b42f2159ad8b0e..61473afead7633 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -2107,12 +2107,6 @@ https://github.com/dotnet/runtime/issues/70820 - - - - Can't build clr.tools independent of coreclr - - From a0a8ff711b8f48df5e94352ee356fbbdc0dc4dde Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 11 Nov 2022 15:59:08 -0500 Subject: [PATCH 3/7] Make windows use old template. --- eng/pipelines/runtime.yml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index dc42224fed7a8e..bfd14f29cbaada 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1022,6 +1022,26 @@ extends: eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), eq(variables['isRollingBuild'], true)) + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - windows_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeVariant: minijit + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + # # Build the whole product using Mono and run runtime tests # @@ -1033,7 +1053,6 @@ extends: runtimeFlavor: mono platforms: - OSX_x64 - - windows_x64 variables: - name: timeoutPerTestInMinutes value: 60 From 91d584ea0d328bd840b4e3e27f4d646df6ceb174 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 16 Nov 2022 19:56:54 -0500 Subject: [PATCH 4/7] Exclude more tests. --- eng/native/gen-buildsys.sh | 7 ------ src/tests/issues.targets | 48 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 7 deletions(-) diff --git a/eng/native/gen-buildsys.sh b/eng/native/gen-buildsys.sh index 208cd3409baedd..9f5b777b04b3ec 100755 --- a/eng/native/gen-buildsys.sh +++ b/eng/native/gen-buildsys.sh @@ -59,8 +59,6 @@ for i in "${@:6}"; do esac done -echo "!!!naricc_debug!!! host_arch: $host_arch CROSSCOMPILE: $CROSSCOMPILE" - cmake_extra_defines= if [[ "$CROSSCOMPILE" == "1" ]]; then platform="$(uname)" @@ -73,7 +71,6 @@ if [[ "$CROSSCOMPILE" == "1" ]]; then TARGET_BUILD_ARCH="$host_arch" export TARGET_BUILD_ARCH - cmake_extra_defines="$cmake_extra_defines -C $scriptroot/tryrun.cmake" if [[ "$platform" == "Darwin" ]]; then @@ -83,10 +80,6 @@ if [[ "$CROSSCOMPILE" == "1" ]]; then fi fi - -echo "!!!naricc_debug!!! host_arch: $host_arch TARGET_BUILD_ARCH: $TARGET_BUILD_ARCH" - - if [[ "$host_arch" == "armel" ]]; then cmake_extra_defines="$cmake_extra_defines -DARM_SOFTFP=1" fi diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 61473afead7633..755a011de1c8c2 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -3042,6 +3042,48 @@ https://github.com/dotnet/runtime/issues/75359 + + + Needs coreclr build + + + Needs coreclr build + + + Needs coreclr build + + + Needs coreclr build + + + Needs coreclr build + + + Needs coreclr build + + + Needs coreclr build + + + Needs coreclr build + + + Needs coreclr build + + + Needs coreclr build + + + Needs coreclr build + + + Needs coreclr build + + + Needs coreclr build + + + @@ -3111,6 +3153,12 @@ Doesn't compile with LLVM AOT. + + Fails after removing patching step: https://github.com/dotnet/runtime/pull/62863 + + + Needs coreclr build + From e23ac006c952156cf7562b8758b1db8d424d3d2c Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 18 Nov 2022 14:57:48 -0500 Subject: [PATCH 5/7] Removed extra } --- eng/pipelines/common/global-build-job.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 3a6bfd15d8ce07..5818ed10d01459 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -48,7 +48,7 @@ jobs: condition: and(succeeded(), ${{ parameters.condition }}) timeoutInMinutes: ${{ parameters.timeoutInMinutes }} enablePublishTestResults: ${{ parameters.enablePublishTestResults }} - testResultsFormat: ${{ parameters.testResultsFormat }}} + testResultsFormat: ${{ parameters.testResultsFormat }} # Component governance does not work on musl machines ${{ if eq(parameters.osSubGroup, '_musl') }}: From 72844953c616bc47d9d29655d7beb8aed7f00af7 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 18 Nov 2022 15:12:33 -0500 Subject: [PATCH 6/7] Remove redundant condition. --- .../templates/runtimes/build-runtime-tests-and-send-to-helix.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index 89235fbd244d9b..ea8f45aba34f09 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -46,7 +46,6 @@ steps: /p:CrossBuild=true displayName: "Build Mono LLVM AOT cross compiler" - - ${{ if and(eq(parameters.runtimeFlavor, 'mono'), or(eq(parameters.runtimeVariant, 'llvmaot'), eq(parameters.runtimeVariant, 'llvmfullaot'))) }}: - ${{ if eq(parameters.archType, 'x64') }}: - ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}: - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_aot ${{ parameters.buildConfig }} ${{ parameters.archType }} From d683fe1842a791499891ef56437e8f2a44ceef99 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 18 Nov 2022 22:15:51 -0500 Subject: [PATCH 7/7] One more test exclusions. --- src/tests/issues.targets | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 755a011de1c8c2..3af4ee76ea214b 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -3082,7 +3082,9 @@ Needs coreclr build - + + Needs coreclr build +