Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[wasm] Run browser tests on helix/windows #52699

Merged
merged 42 commits into from
Jul 19, 2021
Merged
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
32d502e
[wasm] Run browser tests on helix/windows
radekdoulik May 13, 2021
ef7ea1c
Build just wasm/browsertests on helix/windows
radekdoulik May 13, 2021
1040f14
Use $(ChromiumRevision) in windows links
radekdoulik May 13, 2021
8260ac9
Fix conditions
radekdoulik May 13, 2021
6a16b7f
Set PATH differently
radekdoulik May 13, 2021
e8002c7
Use backslash in PATH on windows
radekdoulik May 13, 2021
f72017b
Try different version of chromium
radekdoulik May 13, 2021
1191034
Pass scenario and browser host to build
radekdoulik May 14, 2021
8a91f71
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-windo…
radekdoulik May 14, 2021
8807434
Try to get more info from the helix workitems
radekdoulik May 14, 2021
a43618d
Fix dir separator, add broser path
radekdoulik May 17, 2021
e553c38
Create WasmBuildSupportDir
radekdoulik May 17, 2021
7c4b59a
Revert "Try to get more info from the helix workitems"
radekdoulik May 17, 2021
4ae67fc
Put the dir cmds back, fix mkdir call
radekdoulik May 17, 2021
0fe6a6d
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-windo…
radekdoulik Jun 24, 2021
a638cef
More debug info
radekdoulik Jun 25, 2021
92ebb95
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-windo…
radekdoulik Jun 29, 2021
1fb8b71
Bump xharness
radekdoulik Jun 29, 2021
adabbcc
Bump xharness again
radekdoulik Jun 29, 2021
33aa88b
StressLogAnalyzer didn't print the number of messages correctly if it…
PeterSolMS Jun 29, 2021
2830247
Found a race condition where the LOH flag on a segment is set too lat…
PeterSolMS Jun 29, 2021
d961ecd
Try to show the chrome logs
radekdoulik Jun 29, 2021
7d32664
Use different path for chrome logs
radekdoulik Jun 29, 2021
e025629
Use newer image with font for chrome
radekdoulik Jul 2, 2021
cc5cf69
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-windo…
radekdoulik Jul 2, 2021
337f4a2
Increase timeouts
radekdoulik Jul 2, 2021
12b3a23
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-windo…
radekdoulik Jul 9, 2021
50e9a60
Disable tests which timeout
radekdoulik Jul 9, 2021
c520baa
Remove debug calls
radekdoulik Jul 9, 2021
214fbf6
Put back normal scenario
radekdoulik Jul 9, 2021
008ae74
Do not set scenario in build args
radekdoulik Jul 12, 2021
92bfe6a
Add browser sample exclusion
radekdoulik Jul 13, 2021
6fe63ed
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-windo…
radekdoulik Jul 14, 2021
01570ca
Restore the platform matrix
radekdoulik Jul 14, 2021
c833f5d
Remove the wasm build test changes
radekdoulik Jul 14, 2021
60f0f19
Remove duplicate exclusion
radekdoulik Jul 14, 2021
085bd3b
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-windo…
radekdoulik Jul 14, 2021
e4894ef
Suggested property name change
radekdoulik Jul 14, 2021
30a8f09
Fix last merge
radekdoulik Jul 14, 2021
ed966b7
Simplify condition
radekdoulik Jul 15, 2021
f600943
Include chrome and chromedriver in the payload
radekdoulik Jul 15, 2021
17d47d0
Merge remote-tracking branch 'remotes/origin/main' into pr-wasm-windo…
radekdoulik Jul 16, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion eng/pipelines/libraries/helix-queues-setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,6 @@ jobs:

# WebAssembly windows
- ${{ if eq(parameters.platform, 'Browser_wasm_win') }}:
- (Windows.Server.Core.1909.Amd64.Open)windows.10.amd64.server20h1.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-2004-helix-webassembly-amd64-20210531091615-f5c7a43
- (Windows.Server.Core.1909.Amd64.Open)windows.10.amd64.server20h1.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-2004-helix-webassembly-amd64-20210702131541-6837048

${{ insert }}: ${{ parameters.jobParameters }}
5 changes: 3 additions & 2 deletions eng/pipelines/runtime-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ jobs:
timeoutInMinutes: 90

#
# Build Browser_wasm, on windows
# Build Browser_wasm, on windows, run console and browser tests
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
Expand All @@ -374,7 +374,7 @@ jobs:
testGroup: innerloop
nameSuffix: Browser_wasm_Windows
buildArgs: -subset mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=windows
timeoutInMinutes: 120
timeoutInMinutes: 180
condition: >-
or(
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
Expand All @@ -389,6 +389,7 @@ jobs:
extraHelixArguments: /p:BrowserHost=windows
scenarios:
- normal
- wasmtestonbrowser
condition: >-
or(
eq(variables['librariesContainsChange'], true),
Expand Down
1 change: 1 addition & 0 deletions eng/testing/tests.wasm.targets
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
<_XHarnessArgs Condition="'$(OS)' == 'Windows_NT'">wasm %XHARNESS_COMMAND% --app=. --output-directory=%XHARNESS_OUT%</_XHarnessArgs>

<_XHarnessArgs Condition="'$(Scenario)' != 'WasmTestOnBrowser'">$(_XHarnessArgs) --engine=$(JSEngine) $(JSEngineArgs) --js-file=runtime.js</_XHarnessArgs>
<_XHarnessArgs Condition="'$(Scenario)' == 'WasmTestOnBrowser' and '$(BrowserHost)' == 'windows'">$(_XHarnessArgs) --browser=chrome --browser-path=%HELIX_CORRELATION_PAYLOAD%\chrome-win\chrome.exe</_XHarnessArgs>
<_XHarnessArgs Condition="'$(IsFunctionalTest)' == 'true'" >$(_XHarnessArgs) --expected-exit-code=$(ExpectedExitCode)</_XHarnessArgs>
<_XHarnessArgs Condition="'$(WasmXHarnessArgs)' != ''" >$(_XHarnessArgs) $(WasmXHarnessArgs)</_XHarnessArgs>

Expand Down
25 changes: 19 additions & 6 deletions src/libraries/sendtohelixhelp.proj
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
<_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == '' and '$(Outerloop)' == 'true'">00:20:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == ''">00:15:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' != '' and '$(_workItemTimeout)' == ''">00:30:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' == 'wasmtestonbrowser' and '$(BrowserHost)' == 'windows'">00:45:00</_workItemTimeout>

<!-- The Helix runtime payload and the tests to run -->
<!-- TestArchiveRuntimeFile will be passed as a property by the calling project -->
Expand Down Expand Up @@ -110,6 +111,10 @@
<HelixPreCommand Include="export PATH=$HELIX_CORRELATION_PAYLOAD/chromedriver_linux64:$PATH" />
<HelixPreCommand Include="export PATH=$HELIX_CORRELATION_PAYLOAD/chrome-linux:$PATH" />
</ItemGroup>
<ItemGroup Condition="'$(NeedsToRunOnBrowser)' == 'true' and '$(WindowsShell)' == 'true'">
<HelixPreCommand Include="set PATH=%HELIX_CORRELATION_PAYLOAD%\chromedriver_win32%3B%PATH%" />
<HelixPreCommand Include="set PATH=%HELIX_CORRELATION_PAYLOAD%\chrome-win%3B%PATH%" />
</ItemGroup>

<Choose>
<When Condition="'$(NeedsWorkload)' == 'true'">
Expand Down Expand Up @@ -308,18 +313,25 @@
</ItemGroup>

<PropertyGroup Condition="'$(TargetOS)' == 'Browser'">
<!-- Version number to revision number mapping from http://omahaproxy.appspot.com/ -->
<!-- 84.0.4147.105 is 768962 for example -->
<ChromiumRevision>768968</ChromiumRevision>
<ChromiumUrl>https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/$(ChromiumRevision)/chrome-linux.zip</ChromiumUrl>
<ChromeDriverUrl>https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/$(ChromiumRevision)/chromedriver_linux64.zip</ChromeDriverUrl>
<EmSdkDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'wasm', 'emsdk'))</EmSdkDir>
<WasmBuildTargetsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'wasm', 'build'))</WasmBuildTargetsDir>
<TestEchoMiddleware>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'bin', 'NetCoreServer', '$(NetCoreAppCurrent)-$(Configuration)'))</TestEchoMiddleware>
<RemoteLoopMiddleware>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'bin', 'RemoteLoopServer', '$(NetCoreAppCurrent)-$(Configuration)'))</RemoteLoopMiddleware>
<WorkItemPrefix Condition="'$(Scenario)' == 'BuildWasmApps' and '$(TestUsingWorkloads)' == 'true'">Workloads/</WorkItemPrefix>
<WorkItemPrefix Condition="'$(Scenario)' == 'BuildWasmApps' and '$(TestUsingWorkloads)' != 'true'">EMSDK/</WorkItemPrefix>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetOS)' == 'Browser' and '$(BrowserHost)' != 'windows'">
<!-- Version number to revision number mapping from http://omahaproxy.appspot.com/ -->
<!-- 84.0.4147.105 is 768962 for example -->
<ChromiumRevision>768968</ChromiumRevision>
<ChromiumUrl>https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/$(ChromiumRevision)/chrome-linux.zip</ChromiumUrl>
<ChromeDriverUrl>https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/$(ChromiumRevision)/chromedriver_linux64.zip</ChromeDriverUrl>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetOS)' == 'Browser' and '$(BrowserHost)' == 'windows'">
<ChromiumRevision>768983</ChromiumRevision>
<ChromiumUrl>https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/$(ChromiumRevision)/chrome-win.zip</ChromiumUrl>
<ChromeDriverUrl>https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/$(ChromiumRevision)/chromedriver_win32.zip</SeleniumUrl>
</PropertyGroup>

<PropertyGroup Condition="'$(RuntimeFlavor)' == 'Mono'">
<_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross'))</_MonoAotCrossCompilerPath>
Expand Down Expand Up @@ -393,6 +405,7 @@
<ExecXHarnessCmd>dotnet exec %XHARNESS_CLI_PATH%</ExecXHarnessCmd>
<XHarnessOutput>%HELIX_WORKITEM_UPLOAD_ROOT%\xharness-output</XHarnessOutput>
<XHarnessCommand>%XHARNESS_COMMAND%</XHarnessCommand>
<XHarnessBrowserPath>--browser-path=%HELIX_CORRELATION_PAYLOAD%\chrome-win\chrome.exe</XHarnessBrowserPath>
radekdoulik marked this conversation as resolved.
Show resolved Hide resolved
</PropertyGroup>

<ItemGroup Condition="'$(TargetOS)' == 'Browser' and '$(Scenario)' != 'WasmTestOnBrowser' and '$(Scenario)' != 'BuildWasmApps'">
Expand All @@ -411,7 +424,7 @@
<HelixWorkItem Include="@(_RunOnlyWorkItem -> '%(FileName)')" >
<PayloadArchive>%(Identity)</PayloadArchive>
<!-- No RunTests script generated for the sample project so we just use the direct command -->
<Command>$(ExecXHarnessCmd) wasm $(XHarnessCommand) --app=. --browser=Chrome --html-file=index.html --output-directory=$(XHarnessOutput) -- %(FileName).dll --testing</Command>
<Command>$(ExecXHarnessCmd) wasm $(XHarnessCommand) --app=. --browser=Chrome $(XHarnessBrowserPath) --html-file=index.html --output-directory=$(XHarnessOutput) -- %(FileName).dll --testing</Command>
pavelsavara marked this conversation as resolved.
Show resolved Hide resolved
</HelixWorkItem>
</ItemGroup>

Expand Down
12 changes: 12 additions & 0 deletions src/libraries/tests.proj
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,18 @@
<ProjectExclusions Include="$(MSBuildThisFileDirectory)System.IO.Compression.ZipFile\tests\System.IO.Compression.ZipFile.Tests.csproj" />
<ProjectExclusions Include="$(MSBuildThisFileDirectory)System.Private.Xml\tests\Xslt\XslCompiledTransformApi\System.Xml.Xsl.XslCompiledTransformApi.Tests.csproj" />
<ProjectExclusions Include="$(MonoProjectRoot)sample\wasm\console\Wasm.Console.Sample.csproj" />
<ProjectExclusions Include="$(MonoProjectRoot)sample\wasm\browser\Wasm.Browser.Sample.csproj" />
</ItemGroup>

<ItemGroup Condition="'$(TargetOS)' == 'Browser' and '$(BrowserHost)' == 'windows' and '$(Scenario)' == 'WasmTestOnBrowser' and '$(RunDisabledWasmTestsOnWindows)' != 'true'">
<!-- Issue: https://github.com/dotnet/runtime/issues/55429 -->
<ProjectExclusions Include="$(MSBuildThisFileDirectory)Microsoft.VisualBasic.Core\tests\Microsoft.VisualBasic.Core.Tests.csproj" />
<ProjectExclusions Include="$(MSBuildThisFileDirectory)System.IO\tests\System.IO.Tests.csproj" />
<ProjectExclusions Include="$(MSBuildThisFileDirectory)System.Linq.Expressions\tests\System.Linq.Expressions.Tests.csproj" />
<ProjectExclusions Include="$(MSBuildThisFileDirectory)System.Memory\tests\System.Memory.Tests.csproj" />
<ProjectExclusions Include="$(MSBuildThisFileDirectory)System.Runtime\tests\System.Runtime.Tests.csproj" />
<ProjectExclusions Include="$(MSBuildThisFileDirectory)System.Private.Xml\tests\Writers\XmlWriterApi\System.Xml.RW.XmlWriterApi.Tests.csproj" />
<ProjectExclusions Include="$(RepoRoot)\src\tests\BuildWasmApps\Wasm.Build.Tests\Wasm.Build.Tests.csproj" />
</ItemGroup>

<ItemGroup Condition="'$(TargetOS)' == 'OSX' and '$(TargetArchitecture)' == 'arm64' and '$(RunDisabledAppleSiliconTests)' != 'true'">
Expand Down