diff --git a/Directory.Build.props b/Directory.Build.props index be3d42e18ba93..9d024eef3d5c3 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -70,6 +70,7 @@ $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AndroidAppBuilder', 'Debug', '$(NetCoreAppToolCurrent)', 'publish')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmAppBuilder', 'Debug', '$(NetCoreAppToolCurrent)', 'publish')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmBuildTasks', 'Debug', '$(NetCoreAppToolCurrent)', 'publish')) + $([MSBuild]::NormalizeDirectory('src', 'mono', 'wasm', 'build')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'MonoAOTCompiler', 'Debug', '$(NetCoreAppToolCurrent)')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'RuntimeConfigParser', 'Debug', '$(NetCoreAppToolCurrent)', 'publish')) diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 000d1dcecdfda..b8eb5b253438d 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -194,7 +194,7 @@ jobs: targetRid: browser-wasm platform: Browser_wasm container: - image: ubuntu-18.04-webassembly-20210223133559-4800846 + image: ubuntu-18.04-webassembly-20210309143118-005aab4 registry: mcr jobParameters: runtimeFlavor: ${{ parameters.runtimeFlavor }} diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index 0197670b07218..720cbfe86267e 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -205,8 +205,47 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_AOT - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:RunAOTCompilation=true - timeoutInMinutes: 120 + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildWasmAOTTestsOnHelix=true /p:RunAOTCompilation=true + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true + scenarios: + - normal + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - Browser_wasm + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_EAT + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildWasmAOTTestsOnHelix=true /p:RunAOTCompilation=false + timeoutInMinutes: 180 condition: >- or( eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), @@ -218,6 +257,7 @@ jobs: extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true scenarios: - normal condition: >- diff --git a/eng/testing/ILLink.Descriptor.TestUtilities.xml b/eng/testing/ILLink.Descriptor.TestUtilities.xml new file mode 100644 index 0000000000000..ac7e328c9038e --- /dev/null +++ b/eng/testing/ILLink.Descriptor.TestUtilities.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/eng/testing/ILLink.Descriptor.xunit.xml b/eng/testing/ILLink.Descriptor.xunit.xml index 4ddd4e09d883d..eb99fc4d0039b 100644 --- a/eng/testing/ILLink.Descriptor.xunit.xml +++ b/eng/testing/ILLink.Descriptor.xunit.xml @@ -9,7 +9,7 @@ - - - + + + diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index 81246339652ca..4095d6390912c 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -13,15 +13,31 @@ true - + + helix + helix + local + + + + dotnet msbuild publish/aot-build.proj /p:WasmBuildSupportDir=$HELIX_CORRELATION_PAYLOAD/build /bl:$XHARNESS_OUT/AOTBuild.binlog + $(RunScriptCommand) /p:RunAOTCompilation=$(RunAOTCompilation) + + $(RunScriptCommand) && cd AppBundle && + + + - $HARNESS_RUNNER wasm $XHARNESS_COMMAND --app=. --engine=$(JSEngine) $(JSEngineArgs) --js-file=runtime.js --output-directory=$XHARNESS_OUT -- $(RunTestsJSArguments) --run WasmTestRunner.dll $(AssemblyName).dll - $HARNESS_RUNNER wasm $XHARNESS_COMMAND --app=. --engine=$(JSEngine) $(JSEngineArgs) --js-file=runtime.js --output-directory=$XHARNESS_OUT --expected-exit-code=$(ExpectedExitCode) -- $(RunTestsJSArguments) --run $(AssemblyName).dll --testing + $(RunScriptCommand) $HARNESS_RUNNER wasm $XHARNESS_COMMAND --app=. --engine=$(JSEngine) $(JSEngineArgs) --js-file=runtime.js --output-directory=$XHARNESS_OUT -- $(RunTestsJSArguments) --run WasmTestRunner.dll $(AssemblyName).dll + $(RunScriptCommand) $HARNESS_RUNNER wasm $XHARNESS_COMMAND --app=. --engine=$(JSEngine) $(JSEngineArgs) --js-file=runtime.js --output-directory=$XHARNESS_OUT --expected-exit-code=$(ExpectedExitCode) -- $(RunTestsJSArguments) --run $(AssemblyName).dll --testing + + + false - true + false false false - false + true @@ -163,7 +179,7 @@ - @@ -240,31 +256,53 @@ + - - - + + + + PrepareForWasmBuildApp;$(WasmBuildAppDependsOn) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'wasm', 'emsdk')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'wasm', 'emsdk')) + + WasmBuildApp + StageEmSdkForHelix + + $(BundleTestWasmAppDependsOn);_BundleAOTTestWasmAppForHelix - + + + + + + + + + + + + + + - - + + - - + + @@ -286,10 +324,16 @@ - + + <_CopyLocalPaths Include="@(ReferenceCopyLocalPaths)" Condition="'%(ReferenceCopyLocalPaths.BuildReference)' == 'true' and !$([System.String]::new('%(ReferenceCopyLocalPaths.Identity)').EndsWith('.resources.dll'))" /> + <_CopyLocalPaths TargetPath="%(_CopyLocalPaths.RelativePath)" Condition="'%(_CopyLocalPaths.RelativePath)' != ''" /> + <_CopyLocalPaths TargetPath="%(FileName)%(Extension)" Condition="'%(_CopyLocalPaths.RelativePath)' == ''" /> + + + - + diff --git a/src/libraries/sendtohelix.proj b/src/libraries/sendtohelix.proj index 4d113c917f7b5..22d2f24fad15e 100644 --- a/src/libraries/sendtohelix.proj +++ b/src/libraries/sendtohelix.proj @@ -63,6 +63,7 @@ <_ProjectsToBuild Include="$(PerScenarioProjectFile)"> $(_PropertiesToPass);Scenario=%(_Scenarios.Identity);TestArchiveRuntimeFile=$(TestArchiveRuntimeFile) + %(_ProjectsToBuild.AdditionalProperties);NeedsToBuildWasmAppsOnHelix=$(NeedsToBuildWasmAppsOnHelix) diff --git a/src/libraries/sendtohelixhelp.proj b/src/libraries/sendtohelixhelp.proj index d9c2f5571237e..d326ebfae5310 100644 --- a/src/libraries/sendtohelixhelp.proj +++ b/src/libraries/sendtohelixhelp.proj @@ -50,6 +50,7 @@ $(TestRunNamePrefix)$(Scenario)- $(WaitForWorkItemCompletion) + true @@ -104,7 +105,7 @@ - + true true sdk @@ -255,6 +256,8 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'wasm', 'build')) + + $(HelixPostCommands); @@ -266,7 +269,7 @@ - + diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 2ba7345fa1e23..007d4f1614ec0 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -205,101 +205,88 @@ - - - - + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - + + + + - - + + - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + - - + + - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - + + + + + + + + + + @@ -404,7 +391,8 @@ Exclude="@(ProjectExclusions)" BuildInParallel="false" /> - + + + + $(HELIX_CORRELATION_PAYLOAD)\build\ + + <_WasmTargetsDir Condition="'$(RuntimeSrcDir)' != ''">$(RuntimeSrcDir)\src\mono\wasm\build\ + <_WasmTargetsDir Condition="'$(WasmBuildSupportDir)' != ''">$(WasmBuildSupportDir)\wasm\ + $(WasmBuildSupportDir)\emsdk\ + + + + PrepareForWasmBuild;$(WasmBuildAppDependsOn) + + diff --git a/src/mono/wasm/data/aot-tests/Directory.Build.targets b/src/mono/wasm/data/aot-tests/Directory.Build.targets new file mode 100644 index 0000000000000..5f8bd42de2250 --- /dev/null +++ b/src/mono/wasm/data/aot-tests/Directory.Build.targets @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + diff --git a/src/mono/wasm/data/aot-tests/aot-build.proj b/src/mono/wasm/data/aot-tests/aot-build.proj new file mode 100644 index 0000000000000..b0b428dfa9619 --- /dev/null +++ b/src/mono/wasm/data/aot-tests/aot-build.proj @@ -0,0 +1,42 @@ + + + + true + $(HELIX_WORKITEM_ROOT)\ + $(TestRootDir)AppBundle\ + $(HELIX_WORKITEM_ROOT)\obj + false + false + true + false + + PrepareForWasmBuildApp;$(WasmBuildAppDependsOn) + + + + + + + $(BundleDir) + $(TestRootDir)\publish\WasmTestRunner.dll + $(TestRootDir)\publish\runtime-test.js + true + true + + + + + + $([System.IO.Directory]::GetParent('%(Identity)').Name) + + + + + + <_ExtraFiles Include="$(TestRootDir)\extraFiles\**\*" /> + + + + +