diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 67ac0d5578a08b..7713fe079f79f5 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -15,7 +15,7 @@
]
},
"microsoft.dotnet.xharness.cli": {
- "version": "8.0.0-prerelease.25516.2",
+ "version": "11.0.0-prerelease.26180.1",
"commands": [
"xharness"
]
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index b7fe7558d31c1c..edf5e94e8d76c4 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -322,17 +322,17 @@
https://github.com/dotnet/runtime
edbd5c769a19798b6955050baccf99e6797d3208
-
+
https://github.com/dotnet/xharness
- 402df9c4f5abe6ee8519181dfb5481e04099fab0
+ 28f5ed3a089ff1a179f523da0c910348e9010414
-
+
https://github.com/dotnet/xharness
- 402df9c4f5abe6ee8519181dfb5481e04099fab0
+ 28f5ed3a089ff1a179f523da0c910348e9010414
-
+
https://github.com/dotnet/xharness
- 402df9c4f5abe6ee8519181dfb5481e04099fab0
+ 28f5ed3a089ff1a179f523da0c910348e9010414
https://github.com/dotnet/arcade
diff --git a/eng/Versions.props b/eng/Versions.props
index 04e6df21208ca4..0a8ee2bf9b53c0 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -197,9 +197,9 @@
1.1.0
17.4.0-preview-20220707-01
- 8.0.0-prerelease.25516.2
- 8.0.0-prerelease.25516.2
- 8.0.0-prerelease.25516.2
+ 11.0.0-prerelease.26180.1
+ 11.0.0-prerelease.26180.1
+ 11.0.0-prerelease.26180.1
8.0.0-alpha.0.26116.3
2.4.2
1.0.0
diff --git a/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs b/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs
index 1307a18a9eb51d..89bd958b8d9055 100644
--- a/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs
+++ b/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs
@@ -49,6 +49,9 @@ public static async Task Main(string[] args)
includedMethods.Add (args[i + 1]);
i++;
break;
+ case "-verbosity":
+ i++;
+ break;
default:
throw new ArgumentException($"Invalid argument '{option}'.");
}
diff --git a/src/libraries/sendtohelixhelp.proj b/src/libraries/sendtohelixhelp.proj
index 6c04a4365065f1..9d564164923760 100644
--- a/src/libraries/sendtohelixhelp.proj
+++ b/src/libraries/sendtohelixhelp.proj
@@ -74,6 +74,8 @@
true
+ net8.0
+ true
false
@@ -91,6 +93,8 @@
false
true
+ net8.0
+ true
true
diff --git a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs
index 680d2efd5c5cbc..813c691c228fc9 100644
--- a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs
+++ b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs
@@ -227,7 +227,6 @@ protected string RunAndTestWasmApp(BuildArgs buildArgs,
useWasmConsoleOutput: useWasmConsoleOutput
);
- TestUtils.AssertSubstring("AOT: image 'System.Private.CoreLib' found.", output, contains: buildArgs.AOT);
TestUtils.AssertSubstring($"AOT: image '{buildArgs.ProjectName}' found.", output, contains: buildArgs.AOT);
if (test != null)
diff --git a/src/mono/wasm/Wasm.Build.Tests/data/test-main-7.0.js b/src/mono/wasm/Wasm.Build.Tests/data/test-main-7.0.js
index 3b32add2f39e57..7759c0168ad38d 100644
--- a/src/mono/wasm/Wasm.Build.Tests/data/test-main-7.0.js
+++ b/src/mono/wasm/Wasm.Build.Tests/data/test-main-7.0.js
@@ -162,6 +162,15 @@ function processArguments(incomingArguments) {
}
runArgs.applicationArguments = incomingArguments;
+
+ // xharness appends its own control arguments here; keep them from reaching Main(string[] args).
+ for (let i = 0; i < runArgs.applicationArguments.length; i++) {
+ if (runArgs.applicationArguments[i] === "-verbosity") {
+ runArgs.applicationArguments.splice(i, 2);
+ i--;
+ }
+ }
+
// cheap way to let the testing infrastructure know we're running in a browser context (or not)
runArgs.environmentVariables["IsBrowserDomSupported"] = is_browser.toString().toLowerCase();
runArgs.environmentVariables["IsNodeJS"] = is_node.toString().toLowerCase();
@@ -352,4 +361,4 @@ async function run() {
}
}
-run();
\ No newline at end of file
+run();
diff --git a/src/mono/wasm/runtime/loader/run.ts b/src/mono/wasm/runtime/loader/run.ts
index 112d66edab945d..681051b716bdbf 100644
--- a/src/mono/wasm/runtime/loader/run.ts
+++ b/src/mono/wasm/runtime/loader/run.ts
@@ -310,6 +310,15 @@ export class HostBuilder implements DotnetHostBuilder {
const params = new URLSearchParams(window.location.search);
const values = params.getAll("arg");
+
+ // xharness appends its own control arguments here; keep them from reaching Main(string[] args).
+ for (let i = 0; i < values.length; i++) {
+ if (values[i] === "-verbosity") {
+ values.splice(i, 2);
+ i--;
+ }
+ }
+
return this.withApplicationArguments(...values);
} catch (err) {
mono_exit(1, err);
diff --git a/src/mono/wasm/symbolicator/WasmSymbolicator.csproj b/src/mono/wasm/symbolicator/WasmSymbolicator.csproj
index a21bb42d0506af..1da5a237fcb9c4 100644
--- a/src/mono/wasm/symbolicator/WasmSymbolicator.csproj
+++ b/src/mono/wasm/symbolicator/WasmSymbolicator.csproj
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/src/mono/wasm/test-main.js b/src/mono/wasm/test-main.js
index d3468882139f6d..f99df8c85c1c31 100644
--- a/src/mono/wasm/test-main.js
+++ b/src/mono/wasm/test-main.js
@@ -84,8 +84,12 @@ async function getArgs() {
console.debug(`could not load /runArgs.json: ${response.status}. Ignoring`);
}
}
- if (!runArgsJson)
- runArgsJson = initRunArgs({});
+ if (!runArgsJson) {
+ // Older xharness/browser test paths on release/8.0 don't always emit
+ // runArgs.json. Keep the memory snapshot dry-run opt-in on that fallback
+ // path to avoid the relink/native hangs seen in CI.
+ runArgsJson = initRunArgs({ memorySnapshot: false });
+ }
return processArguments(queryArguments, runArgsJson);
}
@@ -164,6 +168,15 @@ function processArguments(incomingArguments, runArgs) {
}
runArgs.applicationArguments = incomingArguments;
+
+ // xharness appends its own control arguments here; keep them from reaching Main(string[] args).
+ for (let i = 0; i < runArgs.applicationArguments.length; i++) {
+ if (runArgs.applicationArguments[i] === "-verbosity") {
+ runArgs.applicationArguments.splice(i, 2);
+ i--;
+ }
+ }
+
// cheap way to let the testing infrastructure know we're running in a browser context (or not)
runArgs.environmentVariables["IsBrowserDomSupported"] = is_browser.toString().toLowerCase();
runArgs.environmentVariables["IsNodeJS"] = is_node.toString().toLowerCase();
diff --git a/src/tests/Common/XHarnessRunnerLibrary/GeneratedTestRunner.cs b/src/tests/Common/XHarnessRunnerLibrary/GeneratedTestRunner.cs
index c30c99f7e33061..b442eee448fadd 100644
--- a/src/tests/Common/XHarnessRunnerLibrary/GeneratedTestRunner.cs
+++ b/src/tests/Common/XHarnessRunnerLibrary/GeneratedTestRunner.cs
@@ -48,14 +48,14 @@ public override Task Run(IEnumerable testAssemblies)
return Task.CompletedTask;
}
- public override string WriteResultsToFile(XmlResultJargon xmlResultJargon)
+ public override Task WriteResultsToFile(XmlResultJargon xmlResultJargon)
{
Debug.Assert(xmlResultJargon == XmlResultJargon.xUnit);
File.WriteAllText(ResultsFileName, LastTestRun.GetTestResultOutput(_assemblyName));
- return ResultsFileName;
+ return Task.FromResult(ResultsFileName);
}
- public override void WriteResultsToFile(TextWriter writer, XmlResultJargon jargon)
+ public override Task WriteResultsToFile(TextWriter writer, XmlResultJargon jargon)
{
Debug.Assert(jargon == XmlResultJargon.xUnit);
string lastTestResults = LastTestRun.GetTestResultOutput(_assemblyName);
@@ -69,6 +69,7 @@ public override void WriteResultsToFile(TextWriter writer, XmlResultJargon jargo
{
writer.WriteLine(lastTestResults);
}
+ return Task.CompletedTask;
}
public override void SkipTests(IEnumerable tests)
diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj
index a439693adf2136..f431b04e8a9225 100644
--- a/src/tests/Common/helixpublishwitharcade.proj
+++ b/src/tests/Common/helixpublishwitharcade.proj
@@ -197,6 +197,7 @@
true
+ net8.0
true