diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index d706d96a00e0d7..05c59ac350c79e 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -15,7 +15,7 @@ ] }, "microsoft.dotnet.xharness.cli": { - "version": "1.0.0-prerelease.20530.4", + "version": "1.0.0-prerelease.20555.2", "commands": [ "xharness" ] diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a769f55ebd2b0e..3199d701c9bd4b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -190,13 +190,13 @@ https://github.com/mono/linker 57974c1f5790e6fb33f5fce161707be5cd86c4d3 - + https://github.com/dotnet/xharness - bdad61dfc3d09ae826ba940d92e43a7441ec83b0 + ab2eee629494e7a17592feda257b4ede4ff2fc82 - + https://github.com/dotnet/xharness - bdad61dfc3d09ae826ba940d92e43a7441ec83b0 + ab2eee629494e7a17592feda257b4ede4ff2fc82 diff --git a/eng/Versions.props b/eng/Versions.props index bbe08d36868e74..54546638de19a9 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -137,8 +137,8 @@ 4.9.4 16.8.0-release-20201022-02 - 1.0.0-prerelease.20530.4 - 1.0.0-prerelease.20530.4 + 1.0.0-prerelease.20555.2 + 1.0.0-prerelease.20555.2 2.4.1 2.4.2 1.3.0 diff --git a/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs b/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs index 1a88e4881021ac..46a942a0f9cde1 100644 --- a/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs +++ b/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs @@ -3,12 +3,13 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using Microsoft.DotNet.XHarness.TestRunners.Xunit; public class SimpleWasmTestRunner : WasmApplicationEntryPoint { - public static int Main(string[] args) + public static async Task Main(string[] args) { var testAssembly = args[0]; var excludedTraits = new List(); @@ -57,6 +58,6 @@ public static int Main(string[] args) IncludedMethods = includedMethods }; - return runner.Run(); + return await runner.Run(); } } diff --git a/src/libraries/System.Private.Runtime.InteropServices.JavaScript/tests/System/Runtime/InteropServices/JavaScript/Http/HttpRequestMessageTest.cs b/src/libraries/System.Private.Runtime.InteropServices.JavaScript/tests/System/Runtime/InteropServices/JavaScript/Http/HttpRequestMessageTest.cs index d3794eda8af152..42e34d74156dd3 100644 --- a/src/libraries/System.Private.Runtime.InteropServices.JavaScript/tests/System/Runtime/InteropServices/JavaScript/Http/HttpRequestMessageTest.cs +++ b/src/libraries/System.Private.Runtime.InteropServices.JavaScript/tests/System/Runtime/InteropServices/JavaScript/Http/HttpRequestMessageTest.cs @@ -383,6 +383,32 @@ public void ToString_NonDefaultInstanceWithCustomHeaders_DumpAllFields(string ur "}", rm.ToString()); } + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsBrowserDomSupported))] + public async Task BlobUri_Marshal_CorrectValues_Browser() + { + Runtime.InvokeJS(@" + function typedArrayToURL(typedArray, mimeType) { + return URL.createObjectURL(new Blob([typedArray.buffer], {type: mimeType})) + } + const bytes = new Uint8Array(59); + for(let i = 0; i < 59; i++) { + bytes[i] = 32 + i; + } + const url = typedArrayToURL(bytes, 'text/plain'); + // Calls method with string that will be marshaled as valid URI + App.call_test_method (""InvokeString"", [ url ]); + "); + + var client = new HttpClient (); + Assert.StartsWith ("blob:", HelperMarshal._stringResource); + + HttpRequestMessage rm = new HttpRequestMessage(HttpMethod.Get, new Uri (HelperMarshal._stringResource)); + HttpResponseMessage resp = await client.SendAsync (rm); + Assert.NotNull (resp.Content); + string content = await resp.Content.ReadAsStringAsync(); + Assert.Equal (59, content.Length); + } + [Fact] public void BlobStringUri_Marshal_CorrectValues() { diff --git a/src/mono/mono/mini/mini-wasm.c b/src/mono/mono/mini/mini-wasm.c index e60d77f492506b..8c4ff8a7660c76 100644 --- a/src/mono/mono/mini/mini-wasm.c +++ b/src/mono/mono/mini/mini-wasm.c @@ -395,7 +395,6 @@ extern void mono_set_timeout (int t, int d); extern void mono_wasm_queue_tp_cb (void); G_END_DECLS -extern void mono_wasm_pump_threadpool (void); void mono_background_exec (void); #endif // HOST_WASM @@ -623,21 +622,12 @@ mono_wasm_queue_tp_cb (void) #endif } -void -mono_wasm_pump_threadpool (void) -{ -#ifdef HOST_WASM - mono_background_exec (); -#endif -} - void mono_arch_register_icall (void) { #ifdef ENABLE_NETCORE mono_add_internal_call_internal ("System.Threading.TimerQueue::SetTimeout", mono_wasm_set_timeout); mono_add_internal_call_internal ("System.Threading.ThreadPool::QueueCallback", mono_wasm_queue_tp_cb); - mono_add_internal_call_internal ("System.Threading.ThreadPool::PumpThreadPool", mono_wasm_pump_threadpool); #else mono_add_internal_call_internal ("System.Threading.WasmRuntime::SetTimeout", mono_wasm_set_timeout); #endif diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/ThreadPool.Browser.Mono.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/ThreadPool.Browser.Mono.cs index 99415e512c7077..df6112fa3696c3 100644 --- a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/ThreadPool.Browser.Mono.cs +++ b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/ThreadPool.Browser.Mono.cs @@ -104,13 +104,9 @@ private static RegisteredWaitHandle RegisterWaitForSingleObject( } [DynamicDependency("Callback")] - [DynamicDependency("PumpThreadPool")] [MethodImplAttribute(MethodImplOptions.InternalCall)] private static extern void QueueCallback(); - [MethodImplAttribute(MethodImplOptions.InternalCall)] - private static extern void PumpThreadPool(); // NOTE: this method is called via reflection by test code - private static void Callback() { _callbackQueued = false; diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/TimerQueue.Browser.Mono.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/TimerQueue.Browser.Mono.cs index 475f0c8af1eddb..5ad4ea2e23cead 100644 --- a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/TimerQueue.Browser.Mono.cs +++ b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/TimerQueue.Browser.Mono.cs @@ -58,7 +58,7 @@ private bool SetTimer(uint actualDuration) return true; } - private static int PumpTimerQueue() // NOTE: this method is called via reflection by test code + private static int PumpTimerQueue() { if (s_scheduledTimersToFire == null) {