diff --git a/eng/testing/FindWasmHostExecutable.cmd b/eng/testing/FindWasmHostExecutable.cmd
index e2df828aceee..3d162bb760db 100644
--- a/eng/testing/FindWasmHostExecutable.cmd
+++ b/eng/testing/FindWasmHostExecutable.cmd
@@ -27,7 +27,7 @@ if exist "%__WasmBinaryPathWithoutExtension%.js" (
if "%__WasmBinaryExtension%" == ".wasm" (
:: Assume wasmtime is in PATH.
- set WASM_HOST_EXECUTABLE=wasmtime run -S http
+ set WASM_HOST_EXECUTABLE=wasmtime run -S http --dir=.
) else (
if "%NODEJS_EXECUTABLE%" == "" (
:: When running tests locally, assume NodeJS is in PATH.
diff --git a/eng/testing/FindWasmHostExecutable.sh b/eng/testing/FindWasmHostExecutable.sh
index 393e90263e08..271740216afc 100755
--- a/eng/testing/FindWasmHostExecutable.sh
+++ b/eng/testing/FindWasmHostExecutable.sh
@@ -21,6 +21,6 @@ elif [ -e "${dirname}/main.mjs" ]; then
WASM_HOST_EXECUTABLE=$node
WASM_BINARY_TO_EXECUTE="${dirname}/main.mjs"
elif [ -e "${dirname}/${exename}.wasm" ]; then
- WASM_HOST_EXECUTABLE="wasmtime run -S http"
+ WASM_HOST_EXECUTABLE="wasmtime run -S http --dir=."
WASM_BINARY_TO_EXECUTE="${dirname}/${exename}.wasm"
fi
diff --git a/eng/testing/tests.singlefile.targets b/eng/testing/tests.singlefile.targets
index e6e578aa2494..40539dd1e97c 100644
--- a/eng/testing/tests.singlefile.targets
+++ b/eng/testing/tests.singlefile.targets
@@ -45,6 +45,7 @@
$(DefineConstants);SINGLE_FILE_TEST_RUNNER
+ $(DefineConstants);TARGET_WASI
diff --git a/src/libraries/Common/tests/Tests/System/StringTests.cs b/src/libraries/Common/tests/Tests/System/StringTests.cs
index caa4383c3ce0..6252ad0cc1cb 100644
--- a/src/libraries/Common/tests/Tests/System/StringTests.cs
+++ b/src/libraries/Common/tests/Tests/System/StringTests.cs
@@ -7719,8 +7719,8 @@ public static void InternTestCanReturnNull()
Assert.False(s.IsNormalized(NormalizationForm.FormC), "String should be not normalized when checking with FormC");
Assert.False(s.IsNormalized(NormalizationForm.FormD), "String should be not normalized when checking with FormD");
- // Browser's, iOS's, MacCatalyst's, and tvOS's ICU do not support FormKC and FormKD
- bool supportsKCKD = !PlatformDetection.IsBrowser && !PlatformDetection.IsiOS && !PlatformDetection.IsMacCatalyst && !PlatformDetection.IstvOS;
+ // Some platforms' ICUs do not support FormKC and FormKD
+ bool supportsKCKD = !PlatformDetection.IsBrowser && !PlatformDetection.IsWasi && !PlatformDetection.IsiOS && !PlatformDetection.IsMacCatalyst && !PlatformDetection.IstvOS;
if (supportsKCKD)
{
diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System.Runtime.Tests.csproj b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System.Runtime.Tests.csproj
index 2fc2204ab958..8d6c7df26391 100644
--- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System.Runtime.Tests.csproj
+++ b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System.Runtime.Tests.csproj
@@ -1,6 +1,6 @@
- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-unix;$(NetCoreAppCurrent)-browser
+ $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-unix;$(NetCoreAppCurrent)-browser;$(NetCoreAppCurrent)-wasi
$(DefineConstants);TARGET_BROWSER
true
diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/ArgIteratorTests.cs b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/ArgIteratorTests.cs
index e194f4db7e04..ba0d88859daa 100644
--- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/ArgIteratorTests.cs
+++ b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/ArgIteratorTests.cs
@@ -9,7 +9,7 @@ namespace System.Tests
{
public static class ArgIteratorTests
{
- [ActiveIssue("https://github.com/dotnet/runtime/issues/39343", TestPlatforms.Browser)]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/39343", TestPlatforms.Browser | TestPlatforms.Wasi)]
[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsArgIteratorSupported))]
public static void ArgIterator_GetRemainingCount_GetNextArg()
{
diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Threading/PeriodicTimerTests.cs b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Threading/PeriodicTimerTests.cs
index 320b335a0c77..57c05670325b 100644
--- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Threading/PeriodicTimerTests.cs
+++ b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Threading/PeriodicTimerTests.cs
@@ -7,7 +7,7 @@
namespace System.Threading.Tests
{
- [ActiveIssue("https://github.com/dotnet/runtimelab/issues/2505", typeof(PlatformDetection), nameof(PlatformDetection.IsNativeAot), nameof(PlatformDetection.IsWasm))]
+ [ActiveIssue("https://github.com/dotnet/runtimelab/issues/2505", typeof(PlatformDetection), nameof(PlatformDetection.IsNativeAot), nameof(PlatformDetection.IsBrowser))]
public class PeriodicTimerTests
{
[Fact]
diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/TimeZoneInfoTests.cs b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/TimeZoneInfoTests.cs
index 10a63e0e2bf5..1020d102f8ac 100644
--- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/TimeZoneInfoTests.cs
+++ b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/TimeZoneInfoTests.cs
@@ -57,7 +57,7 @@ static TimeZoneInfoTests()
// Name abbreviations, if available, are used instead
public static IEnumerable