diff --git a/eng/pipelines/common/evaluate-default-paths.yml b/eng/pipelines/common/evaluate-default-paths.yml
index 35c95b86ef151..57f5746ce2e26 100644
--- a/eng/pipelines/common/evaluate-default-paths.yml
+++ b/eng/pipelines/common/evaluate-default-paths.yml
@@ -273,6 +273,10 @@ jobs:
- src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/*
- ${{ parameters._const_paths._always_exclude }}
+ - subset: wasm_chrome
+ include:
+ - ${{ parameters._const_paths._wasm_chrome }}
+
# anything other than mono, or wasm specific paths
- subset: non_mono_and_wasm
exclude:
diff --git a/eng/pipelines/common/templates/wasm-library-tests.yml b/eng/pipelines/common/templates/wasm-library-tests.yml
index 4260e56ba2cb4..87fe49c793939 100644
--- a/eng/pipelines/common/templates/wasm-library-tests.yml
+++ b/eng/pipelines/common/templates/wasm-library-tests.yml
@@ -36,6 +36,7 @@ jobs:
eq(variables['wasmDarcDependenciesChanged'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_chrome.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true))
]
- name: _wasmRunSmokeTestsOnlyArg
@@ -45,12 +46,17 @@ jobs:
value: /p:InstallChromeForTests=true
${{ else }}:
value: ''
+ - name: v8InstallArg
+ ${{ if containsValue(parameters.scenarios, 'normal') }}:
+ value: /p:InstallV8ForTests=true
+ ${{ else }}:
+ value: ''
jobParameters:
isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
testGroup: innerloop
nameSuffix: LibraryTests${{ parameters.nameSuffix }}
- buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=$(_hostedOs) $(_wasmRunSmokeTestsOnlyArg) $(chromeInstallArg) ${{ parameters.extraBuildArgs }}
+ buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=$(_hostedOs) $(_wasmRunSmokeTestsOnlyArg) $(chromeInstallArg) $(v8InstallArg) ${{ parameters.extraBuildArgs }}
timeoutInMinutes: 240
# if !alwaysRun, then:
# if this is runtime-wasm (isWasmOnlyBuild):
diff --git a/eng/pipelines/common/templates/wasm-runtime-tests.yml b/eng/pipelines/common/templates/wasm-runtime-tests.yml
index 2b006bb2db3cc..d8a4b76b54b59 100644
--- a/eng/pipelines/common/templates/wasm-runtime-tests.yml
+++ b/eng/pipelines/common/templates/wasm-runtime-tests.yml
@@ -36,7 +36,7 @@ jobs:
isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
nameSuffix: AllSubsets_Mono_RuntimeTests
runtimeVariant: monointerpreter
- buildArgs: -s mono+libs -c $(_BuildConfig) ${{ parameters.extraBuildArgs }}
+ buildArgs: -s mono+libs -c $(_BuildConfig) /p:InstallV8ForTests=false ${{ parameters.extraBuildArgs }}
timeoutInMinutes: 180
condition: >-
or(
@@ -47,5 +47,6 @@ jobs:
parameters:
creator: dotnet-bot
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ testBuildArgs: /p:InstallV8ForTests=false
extraVariablesTemplates:
- template: /eng/pipelines/common/templates/runtimes/test-variables.yml
diff --git a/eng/testing/WasmRunnerAOTTemplate.sh b/eng/testing/WasmRunnerAOTTemplate.sh
index 856fb7ebbea1b..24b23c501f211 100644
--- a/eng/testing/WasmRunnerAOTTemplate.sh
+++ b/eng/testing/WasmRunnerAOTTemplate.sh
@@ -34,14 +34,6 @@ if [[ -z "$XHARNESS_COMMAND" ]]; then
fi
if [[ "$XHARNESS_COMMAND" == "test" ]]; then
- if [[ -z "$JS_ENGINE" ]]; then
- if [[ "$SCENARIO" == "WasmTestOnNodeJS" || "$SCENARIO" == "wasmtestonnodejs" ]]; then
- JS_ENGINE="--engine=NodeJS"
- else
- JS_ENGINE="--engine=V8"
- fi
- fi
-
if [[ -z "$JS_ENGINE_ARGS" ]]; then
JS_ENGINE_ARGS="--engine-arg=--stack-trace-limit=1000"
if [[ "$SCENARIO" != "WasmTestOnNodeJS" && "$SCENARIO" != "wasmtestonnodejs" ]]; then
@@ -55,6 +47,17 @@ if [[ "$XHARNESS_COMMAND" == "test" ]]; then
if [[ -z "$MAIN_JS" ]]; then
MAIN_JS="--js-file=test-main.js"
fi
+
+ if [[ -z "$JS_ENGINE" ]]; then
+ if [[ "$SCENARIO" == "WasmTestOnNodeJS" || "$SCENARIO" == "wasmtestonnodejs" ]]; then
+ JS_ENGINE="--engine=NodeJS"
+ else
+ 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
+ fi
+ fi
fi
if [[ -z "$XHARNESS_ARGS" ]]; then
@@ -123,4 +126,4 @@ echo ----- end $(date) ----- exit code $_exitCode ------------------------------
echo "XHarness artifacts: $XHARNESS_OUT"
-exit $_exitCode
\ No newline at end of file
+exit $_exitCode
diff --git a/eng/testing/WasmRunnerTemplate.sh b/eng/testing/WasmRunnerTemplate.sh
index 8b4e9adb10c2e..71347666cde80 100644
--- a/eng/testing/WasmRunnerTemplate.sh
+++ b/eng/testing/WasmRunnerTemplate.sh
@@ -34,14 +34,6 @@ if [[ -z "$XHARNESS_COMMAND" ]]; then
fi
if [[ "$XHARNESS_COMMAND" == "test" ]]; then
- if [[ -z "$JS_ENGINE" ]]; then
- if [[ "$SCENARIO" == "WasmTestOnNodeJS" || "$SCENARIO" == "wasmtestonnodejs" ]]; then
- JS_ENGINE="--engine=NodeJS"
- else
- JS_ENGINE="--engine=V8"
- fi
- fi
-
if [[ -z "$MAIN_JS" ]]; then
MAIN_JS="--js-file=test-main.js"
fi
@@ -55,6 +47,17 @@ if [[ "$XHARNESS_COMMAND" == "test" ]]; then
JS_ENGINE_ARGS="$JS_ENGINE_ARGS --engine-arg=--experimental-wasm-eh"
fi
fi
+
+ if [[ -z "$JS_ENGINE" ]]; then
+ if [[ "$SCENARIO" == "WasmTestOnNodeJS" || "$SCENARIO" == "wasmtestonnodejs" ]]; then
+ JS_ENGINE="--engine=NodeJS"
+ else
+ 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
+ fi
+ fi
fi
if [[ -z "$XHARNESS_ARGS" ]]; then
diff --git a/eng/testing/tests.browser.targets b/eng/testing/tests.browser.targets
index 4f10b931f7975..b4c2dbefc0973 100644
--- a/eng/testing/tests.browser.targets
+++ b/eng/testing/tests.browser.targets
@@ -24,9 +24,13 @@
false
_GetWorkloadsToInstall;$(GetWorkloadInputsDependsOn)
+
true
+ true
_GetRuntimePackNuGetsToBuild;_GetNugetsForAOT;$(GetNuGetsToBuildForWorkloadTestingDependsOn)
<_BundleAOTTestWasmAppForHelixDependsOn>$(_BundleAOTTestWasmAppForHelixDependsOn);PrepareForWasmBuildApp;_PrepareForAOTOnHelix
@@ -59,11 +63,14 @@
+ Condition="'$(ContinuousIntegrationBuild)' != 'true' or '$(IsBrowserWasmProject)' != 'true'" />
<_WasmBrowserPathForTests Condition="'$(BROWSER_PATH_FOR_TESTS)' != ''">$(BROWSER_PATH_FOR_TESTS)
<_WasmBrowserPathForTests Condition="'$(_WasmBrowserPathForTests)' == '' and '$(InstallChromeForTests)' == 'true'">$(ChromeBinaryPath)
+
+ <_WasmJSEnginePathForTests Condition="'$(V8_PATH_FOR_TESTS)' != ''">$(V8_PATH_FOR_TESTS)
+ <_WasmJSEnginePathForTests Condition="'$(_WasmJSEnginePathForTests)' == '' and '$(InstallV8ForTests)' == 'true'">$(V8BinaryPath)
diff --git a/eng/testing/wasm-provisioning.targets b/eng/testing/wasm-provisioning.targets
index d1c9bda6653fe..4852fd5ecc2ec 100644
--- a/eng/testing/wasm-provisioning.targets
+++ b/eng/testing/wasm-provisioning.targets
@@ -11,10 +11,13 @@
false
+ false
$(ArtifactsBinDir)firefox\
$([MSBuild]::NormalizePath($(FirefoxDir), '.install-firefox-$(FirefoxRevision).stamp'))
<_BrowserStampDir>$(ArtifactsBinDir)\
+
+ Build
@@ -38,6 +41,11 @@
$(linux_ChromeBaseSnapshotUrl)/chrome-linux.zip
$(linux_ChromeBaseSnapshotUrl)/chromedriver_linux64.zip
+
+ $(linux_V8Version)
+ v8-$(linux_V8Version)
+ $(V8DirName).sh
+ <_V8PlatformId>linux64
@@ -53,6 +61,11 @@
$(win_ChromeBaseSnapshotUrl)/chrome-win.zip
$(win_ChromeBaseSnapshotUrl)/chromedriver_win32.zip
+
+ $(win_V8Version)
+ v8-$(win_V8Version)
+ $(V8DirName).cmd
+ <_V8PlatformId>win32
@@ -65,6 +78,12 @@
$([MSBuild]::NormalizePath($(ChromeDriverDir), $(ChromeDriverDirName), $(ChromeDriverBinaryName)))
+
+ $(ArtifactsBinDir)$(V8DirName)\
+ $([MSBuild]::NormalizePath('$(V8Dir)', '.install-$(V8Version).stamp'))
+ $([MSBuild]::NormalizePath($(V8Dir), $(V8BinaryName)))
+
+
108.0.1
https://ftp.mozilla.org/pub/firefox/releases/$(FirefoxRevision)/linux-x86_64/en-US/firefox-$(FirefoxRevision).tar.bz2
@@ -72,9 +91,11 @@
+
@@ -87,6 +108,7 @@
+
@@ -97,9 +119,11 @@
+
@@ -121,8 +145,41 @@
+
+
+
+
+
+
+
+ <_V8SnapshotUrl>https://storage.googleapis.com/chromium-v8/official/canary/v8-$(_V8PlatformId)-rel-$(V8Version).zip
+
+ <_V8Script Condition="$([MSBuild]::IsOSPlatform('linux'))">#!/usr/bin/env bash
+export __SCRIPT_DIR=%24( cd -- "%24( dirname -- "%24{BASH_SOURCE[0]}" )" &> /dev/null && pwd )
+"$__SCRIPT_DIR/d8" --snapshot_blob="$__SCRIPT_DIR/snapshot_blob.bin" "$@"
+
+ <_V8Script Condition="$([MSBuild]::IsOSPlatform('windows'))">@echo off
+"%~dp0\d8.exe --snapshot_blob="%~dp0\snapshot_blob.bin" %*
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<_StampFile Include="$(_BrowserStampDir).install-firefox*.stamp" />
diff --git a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs
index 431bc77820d0b..5baf88cd19b0d 100644
--- a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs
+++ b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs
@@ -428,6 +428,7 @@ private static bool GetIsInContainer()
return Registry.GetValue(key, "ContainerType", defaultValue: null) != null;
}
+ // '/.dockerenv' - is to check if this is running in a codespace
return (IsLinux && File.Exists("/.dockerenv"));
}
diff --git a/src/libraries/sendtohelix-wasm.targets b/src/libraries/sendtohelix-wasm.targets
index 89326207f9401..636177ae9d87a 100644
--- a/src/libraries/sendtohelix-wasm.targets
+++ b/src/libraries/sendtohelix-wasm.targets
@@ -59,6 +59,7 @@
true
false
true
+ true
true
true
@@ -101,6 +102,8 @@
+
+
@@ -114,6 +117,8 @@
+
+
@@ -187,6 +192,8 @@
Text="Could not find chrome at $(ChromeDir)" />
+
@@ -197,6 +204,10 @@
+
+
+
+
diff --git a/src/mono/wasm/Makefile b/src/mono/wasm/Makefile
index 5d6f4e5308587..1355fcaa1a477 100644
--- a/src/mono/wasm/Makefile
+++ b/src/mono/wasm/Makefile
@@ -111,7 +111,7 @@ run-browser-tests-%:
PATH="$(GECKODRIVER):$(CHROMEDRIVER):$(PATH)" XHARNESS_COMMAND="test-browser --browser=$(XHARNESS_BROWSER)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
build-runtime-tests:
- $(TOP)/src/tests/build.sh -mono os browser wasm $(CONFIG)
+ $(TOP)/src/tests/build.sh -mono os browser wasm $(CONFIG) $(MSBUILD_ARGS)
build-debugger-tests-helix:
$(DOTNET) build -restore -bl:$(LOG_PATH)/Wasm.Debugger.Tests.binlog \
diff --git a/src/mono/wasm/README.md b/src/mono/wasm/README.md
index cdace086f5603..79b2671bf3fc7 100644
--- a/src/mono/wasm/README.md
+++ b/src/mono/wasm/README.md
@@ -323,7 +323,6 @@ npm update --lockfile-version=1
| Wasm.Build.Tests | linux+windows | none | linux+windows |
| Debugger tests | linux+windows | none | linux+windows |
| Runtime tests | linux | none | linux |
-| Perftrace | linux: all tests | linux: all tests | none |
| Multi-thread | linux: all tests | linux: all tests | none |
* `runtime-extra-platforms` does not run any wasm jobs on PRs
@@ -346,14 +345,28 @@ npm update --lockfile-version=1
| Wasm.Build.Tests | linux+windows | none |
| Debugger tests | linux+windows | none |
| Runtime tests | linux | none |
-| Perftrace | linux: build only | none |
| Multi-thread | linux: build only | none |
* `high resource aot` runs a few specific library tests with AOT, that require more memory to AOT.
+## Test setup on CI
+
+Tests are run with V8, Chrome, node, and wasmtime for the various jobs.
+
+- V8: the version used is from `eng/testing/ChromeVersions.props`. This is used for all the library tests, and WBT, but *not* runtime tests.
+- Chrome: Same as V8.
+- Node: fixed version from emsdk
+- wasmtime - fixed version in `src/mono/wasi/wasi-sdk-version.txt`.
+
+### `eng/testing/ChromeVersions.props`
+
+This file is updated once a week by a github action `.github/workflows/bump-chrome-version.yml`, and the version is obtained by `src/tasks/WasmBuildTasks/GetChromeVersions.cs` task.
+
# Perf pipeline
+- V8 version used to run the microbenchmarks is from `eng/testing/ChromeVersions.props`
+
TBD
## Updates needed
diff --git a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs
index f5d480316ea60..a4d0470ef17e2 100644
--- a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs
+++ b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs
@@ -262,16 +262,10 @@ protected static string RunWithXHarness(string testCommand, string testLogPath,
args.Append($" --expected-exit-code={expectedAppExitCode}");
args.Append($" {extraXHarnessArgs ?? string.Empty}");
+ // `/.dockerenv` - is to check if this is running in a codespace
if (File.Exists("/.dockerenv"))
args.Append(" --browser-arg=--no-sandbox");
- if (!string.IsNullOrEmpty(EnvironmentVariables.BrowserPathForTests))
- {
- if (!File.Exists(EnvironmentVariables.BrowserPathForTests))
- throw new Exception($"Cannot find BROWSER_PATH_FOR_TESTS={EnvironmentVariables.BrowserPathForTests}");
- args.Append($" --browser-path=\"{EnvironmentVariables.BrowserPathForTests}\"");
- }
-
args.Append(" -- ");
if (extraXHarnessMonoArgs != null)
{
diff --git a/src/mono/wasm/Wasm.Build.Tests/Common/EnvironmentVariables.cs b/src/mono/wasm/Wasm.Build.Tests/Common/EnvironmentVariables.cs
index 80a1c67f9249e..841aa6a9b3456 100644
--- a/src/mono/wasm/Wasm.Build.Tests/Common/EnvironmentVariables.cs
+++ b/src/mono/wasm/Wasm.Build.Tests/Common/EnvironmentVariables.cs
@@ -17,6 +17,7 @@ internal static class EnvironmentVariables
internal static readonly string? XHarnessCliPath = Environment.GetEnvironmentVariable("XHARNESS_CLI_PATH");
internal static readonly string? BuiltNuGetsPath = Environment.GetEnvironmentVariable("BUILT_NUGETS_PATH");
internal static readonly string? BrowserPathForTests = Environment.GetEnvironmentVariable("BROWSER_PATH_FOR_TESTS");
+ internal static readonly string? V8PathForTests = Environment.GetEnvironmentVariable("V8_PATH_FOR_TESTS");
internal static readonly bool ShowBuildOutput = Environment.GetEnvironmentVariable("SHOW_BUILD_OUTPUT") is not null;
internal static readonly bool UseWebcil = Environment.GetEnvironmentVariable("USE_WEBCIL_FOR_TESTS") is "true";
internal static readonly string? SdkDirName = Environment.GetEnvironmentVariable("SDK_DIR_NAME");
diff --git a/src/mono/wasm/Wasm.Build.Tests/HostRunner/BrowserHostRunner.cs b/src/mono/wasm/Wasm.Build.Tests/HostRunner/BrowserHostRunner.cs
index 288048616f6d7..f9a215652c584 100644
--- a/src/mono/wasm/Wasm.Build.Tests/HostRunner/BrowserHostRunner.cs
+++ b/src/mono/wasm/Wasm.Build.Tests/HostRunner/BrowserHostRunner.cs
@@ -5,11 +5,37 @@
namespace Wasm.Build.Tests;
+using System;
+using System.IO;
+
public class BrowserHostRunner : IHostRunner
{
+ private static string? s_binaryPathArg;
+ private static string BinaryPathArg
+ {
+ get
+ {
+ if (s_binaryPathArg is null)
+ {
+ if (!string.IsNullOrEmpty(EnvironmentVariables.BrowserPathForTests))
+ {
+ if (!File.Exists(EnvironmentVariables.BrowserPathForTests))
+ throw new Exception($"Cannot find BROWSER_PATH_FOR_TESTS={EnvironmentVariables.BrowserPathForTests}");
+ s_binaryPathArg = $" --browser-path=\"{EnvironmentVariables.BrowserPathForTests}\"";
+ }
+ else
+ {
+ s_binaryPathArg = "";
+ }
+ }
+ return s_binaryPathArg;
+ }
+ }
+
+
public string GetTestCommand() => "wasm test-browser";
- public string GetXharnessArgsWindowsOS(XHarnessArgsOptions options) => $"-v trace -b {options.host} --browser-arg=--lang={options.environmentLocale} --web-server-use-cop"; // Windows: chrome.exe --lang=locale
- public string GetXharnessArgsOtherOS(XHarnessArgsOptions options) => $"-v trace -b {options.host} --locale={options.environmentLocale} --web-server-use-cop"; // Linux: LANGUAGE=locale ./chrome
+ public string GetXharnessArgsWindowsOS(XHarnessArgsOptions options) => $"-v trace -b {options.host} --browser-arg=--lang={options.environmentLocale} --web-server-use-cop {BinaryPathArg}"; // Windows: chrome.exe --lang=locale
+ public string GetXharnessArgsOtherOS(XHarnessArgsOptions options) => $"-v trace -b {options.host} --locale={options.environmentLocale} --web-server-use-cop {BinaryPathArg}"; // Linux: LANGUAGE=locale ./chrome
public bool UseWasmConsoleOutput() => false;
public bool CanRunWBT() => true;
}
diff --git a/src/mono/wasm/Wasm.Build.Tests/HostRunner/V8HostRunner.cs b/src/mono/wasm/Wasm.Build.Tests/HostRunner/V8HostRunner.cs
index 8a797ef570576..95349d7209003 100644
--- a/src/mono/wasm/Wasm.Build.Tests/HostRunner/V8HostRunner.cs
+++ b/src/mono/wasm/Wasm.Build.Tests/HostRunner/V8HostRunner.cs
@@ -5,11 +5,35 @@
namespace Wasm.Build.Tests;
+using System;
+using System.IO;
using System.Runtime.InteropServices;
public class V8HostRunner : IHostRunner
{
- private string GetXharnessArgs(string jsRelativePath) => $"--js-file={jsRelativePath} --engine=V8 -v trace --engine-arg=--experimental-wasm-simd --engine-arg=--module";
+ private static string? s_binaryPathArg;
+ private static string BinaryPathArg
+ {
+ get
+ {
+ if (s_binaryPathArg is null)
+ {
+ if (!string.IsNullOrEmpty(EnvironmentVariables.V8PathForTests))
+ {
+ if (!File.Exists(EnvironmentVariables.V8PathForTests))
+ throw new Exception($"Cannot find V8_PATH_FOR_TESTS={EnvironmentVariables.V8PathForTests}");
+ s_binaryPathArg += $" --js-engine-path=\"{EnvironmentVariables.V8PathForTests}\"";
+ }
+ else
+ {
+ s_binaryPathArg = "";
+ }
+ }
+ return s_binaryPathArg;
+ }
+ }
+
+ private string GetXharnessArgs(string jsRelativePath) => $"--js-file={jsRelativePath} --engine=V8 -v trace --engine-arg=--experimental-wasm-simd --engine-arg=--module {BinaryPathArg}";
public string GetTestCommand() => "wasm test";
public string GetXharnessArgsWindowsOS(XHarnessArgsOptions options) => GetXharnessArgs(options.jsRelativePath);
diff --git a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj
index d5059f1d5f432..fb3359df0b929 100644
--- a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj
+++ b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj
@@ -15,7 +15,9 @@
false
true
+
true
+ true
false
@@ -94,6 +96,9 @@
+
+
+
diff --git a/src/mono/wasm/build/WasmApp.targets b/src/mono/wasm/build/WasmApp.targets
index 14131231fda4a..57763bab47ab6 100644
--- a/src/mono/wasm/build/WasmApp.targets
+++ b/src/mono/wasm/build/WasmApp.targets
@@ -475,7 +475,7 @@
-
+
ExtractConnUrl (string str, ILogger logger)
private static string GetInitParms(int port, string lang="en-US")
{
string str = $"--headless --disable-gpu --lang={lang} --incognito --remote-debugging-port={port}";
+ // `/.dockerenv` - is to check if this is running in a codespace
if (File.Exists("/.dockerenv"))
{
Console.WriteLine ("Detected a container, disabling sandboxing for debugger tests.");
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestSuite.csproj b/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestSuite.csproj
index a23373483041b..2f1bbba894b2e 100644
--- a/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestSuite.csproj
+++ b/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestSuite.csproj
@@ -8,6 +8,7 @@
$(DefineConstants);RUN_IN_CHROME
$(DefineConstants);RELEASE_RUNTIME
windows
+
<_ProvisionBrowser Condition="'$(ContinuousIntegrationBuild)' == 'true' or Exists('/.dockerenv')">true
true
true
diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props
index 9dbee315a5910..fbd2172408146 100644
--- a/src/tests/Directory.Build.props
+++ b/src/tests/Directory.Build.props
@@ -4,6 +4,7 @@
Release
true
+ false