From fe01440723937ae0fe95ee44ad54998670ede8be Mon Sep 17 00:00:00 2001
From: vsadov <8218165+VSadov@users.noreply.github.com>
Date: Fri, 17 Oct 2025 17:43:23 -0700
Subject: [PATCH 1/8] Enable async feature/tests
---
src/coreclr/inc/clrconfigvalues.h | 2 +-
src/tests/async/Directory.Build.targets | 5 -----
2 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/src/coreclr/inc/clrconfigvalues.h b/src/coreclr/inc/clrconfigvalues.h
index b3d2d580cdf652..c1c492d1501106 100644
--- a/src/coreclr/inc/clrconfigvalues.h
+++ b/src/coreclr/inc/clrconfigvalues.h
@@ -710,7 +710,7 @@ RETAIL_CONFIG_DWORD_INFO(EXTERNAL_EnableRiscV64Zbb, W("EnableRiscV64
#endif
// Runtime-async
-RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_RuntimeAsync, W("RuntimeAsync"), 0, "Enables runtime async method support")
+RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_RuntimeAsync, W("RuntimeAsync"), 1, "Enables runtime async method support")
///
/// Uncategorized
diff --git a/src/tests/async/Directory.Build.targets b/src/tests/async/Directory.Build.targets
index f4b2b948dfd68c..01f1cf7eaa0eff 100644
--- a/src/tests/async/Directory.Build.targets
+++ b/src/tests/async/Directory.Build.targets
@@ -12,10 +12,5 @@
true
-
-
- true
-
-
From 0c22f4194035a4ca042eec7f7ce994ab676da6a9 Mon Sep 17 00:00:00 2001
From: vsadov <8218165+VSadov@users.noreply.github.com>
Date: Tue, 25 Nov 2025 19:48:01 -0800
Subject: [PATCH 2/8] add a test
---
.../valuetask-source/valuetask-source-stub.cs | 58 +++++++++++++++++++
.../valuetask-source-stub.csproj | 13 +++++
2 files changed, 71 insertions(+)
create mode 100644 src/tests/async/valuetask-source/valuetask-source-stub.cs
create mode 100644 src/tests/async/valuetask-source/valuetask-source-stub.csproj
diff --git a/src/tests/async/valuetask-source/valuetask-source-stub.cs b/src/tests/async/valuetask-source/valuetask-source-stub.cs
new file mode 100644
index 00000000000000..7945d0b29b8fa7
--- /dev/null
+++ b/src/tests/async/valuetask-source/valuetask-source-stub.cs
@@ -0,0 +1,58 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Threading.Tasks.Sources;
+using Xunit;
+
+public class ValueTaskSourceAndStubs
+{
+ [Fact]
+ public static void EntryPoint()
+ {
+ SynchronizationContext.SetSynchronizationContext(new MySyncContext());
+ new ValueTaskSourceAndStubs().TestAsync(new C()).GetAwaiter().GetResult();
+ }
+
+ private async Task TestAsync(IFace i)
+ {
+ await i.Foo(0, 1, 2, 3, 4, 5, 6, 7, "value");
+ }
+
+ private struct C : IFace
+ {
+ public ValueTask Foo(int a0, int a1, int a2, int a3, int a4, int a5, int a6, int a7, T value)
+ {
+ return new ValueTask(new Source(), 0);
+ }
+
+ private class Source : IValueTaskSource
+ {
+ public void GetResult(short token)
+ {
+ }
+
+ public ValueTaskSourceStatus GetStatus(short token)
+ {
+ return ValueTaskSourceStatus.Pending;
+ }
+
+ public void OnCompleted(Action