Skip to content

Commit 457c6b7

Browse files
authored
[wasm][coreclr] Enable working parts of the interpreter test (#120668)
And annotate rest with the active issue comments
1 parent b2ad423 commit 457c6b7

File tree

1 file changed

+76
-47
lines changed

1 file changed

+76
-47
lines changed

src/tests/JIT/interpreter/Interpreter.cs

Lines changed: 76 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -723,13 +723,6 @@ static void EnsureCallingConventionTestTargetMethodsAreJitted()
723723

724724
static int Main(string[] args)
725725
{
726-
// WASM-TODO this is just hello world for now
727-
if (RuntimeInformation.ProcessArchitecture == Architecture.Wasm)
728-
{
729-
Console.WriteLine("WASM-TODO: Interpreter tests");
730-
return 100;
731-
}
732-
733726
jitField1 = 42;
734727
jitField2 = 43;
735728

@@ -950,9 +943,13 @@ public static void RunInterpreterTests()
950943
if (!TestCalli())
951944
Environment.FailFast(null);
952945

953-
Console.WriteLine("TestStaticVirtualGeneric_CodePointerCase");
954-
if (!TestStaticVirtualGeneric_CodePointerCase())
955-
Environment.FailFast(null);
946+
// active issue https://github.com/dotnet/runtime/issues/120319
947+
if (RuntimeInformation.ProcessArchitecture != Architecture.Wasm)
948+
{
949+
Console.WriteLine("TestStaticVirtualGeneric_CodePointerCase");
950+
if (!TestStaticVirtualGeneric_CodePointerCase())
951+
Environment.FailFast(null);
952+
}
956953

957954
Console.WriteLine("TestPreciseInitCctors");
958955
if (!TestPreciseInitCctors())
@@ -972,7 +969,11 @@ public static void RunInterpreterTests()
972969

973970
Console.WriteLine("Empty string length: {0}", string.Empty.Length);
974971

975-
Console.WriteLine("BitConverter.IsLittleEndian: {0}", BitConverter.IsLittleEndian);
972+
// active issue https://github.com/dotnet/runtime/issues/120319
973+
if (RuntimeInformation.ProcessArchitecture != Architecture.Wasm)
974+
{
975+
Console.WriteLine("BitConverter.IsLittleEndian: {0}", BitConverter.IsLittleEndian);
976+
}
976977

977978
Console.WriteLine("IntPtr.Zero: {0}, UIntPtr.Zero: {1}", IntPtr.Zero, UIntPtr.Zero);
978979

@@ -1963,21 +1964,29 @@ public static bool TestVirtual()
19631964
retType = bc.GenericVirtualMethod<int>(out isBase);
19641965
if (retType != typeof(int) || isBase)
19651966
return false;
1966-
Console.WriteLine("bc.GenericVirtualMethod<string>");
1967-
retType = bc.GenericVirtualMethod<string>(out isBase);
1968-
if (retType != typeof(string) || isBase)
1969-
return false;
1967+
// active issue https://github.com/dotnet/runtime/issues/120319
1968+
if (RuntimeInformation.ProcessArchitecture != Architecture.Wasm)
1969+
{
1970+
Console.WriteLine("bc.GenericVirtualMethod<string>");
1971+
retType = bc.GenericVirtualMethod<string>(out isBase);
1972+
if (retType != typeof(string) || isBase)
1973+
return false;
1974+
}
19701975
Console.WriteLine("itest.VirtualMethod");
19711976
if (itest.VirtualMethod() != 0xdede)
19721977
return false;
19731978
Console.WriteLine("itest.GenericVirtualMethod<int>");
19741979
retType = itest.GenericVirtualMethod<int>(out isBase);
19751980
if (retType != typeof(int) || isBase)
19761981
return false;
1977-
Console.WriteLine("itest.GenericVirtualMethod<string>");
1978-
retType = itest.GenericVirtualMethod<string>(out isBase);
1979-
if (retType != typeof(string) || isBase)
1980-
return false;
1982+
// active issue https://github.com/dotnet/runtime/issues/120319
1983+
if (RuntimeInformation.ProcessArchitecture != Architecture.Wasm)
1984+
{
1985+
Console.WriteLine("itest.GenericVirtualMethod<string>");
1986+
retType = itest.GenericVirtualMethod<string>(out isBase);
1987+
if (retType != typeof(string) || isBase)
1988+
return false;
1989+
}
19811990

19821991
bc = new BaseClass();
19831992
itest = bc;
@@ -1991,21 +2000,29 @@ public static bool TestVirtual()
19912000
retType = bc.GenericVirtualMethod<int>(out isBase);
19922001
if (retType != typeof(int) || !isBase)
19932002
return false;
1994-
Console.WriteLine("bc.GenericVirtualMethod<string>");
1995-
retType = bc.GenericVirtualMethod<string>(out isBase);
1996-
if (retType != typeof(string) || !isBase)
1997-
return false;
2003+
// active issue https://github.com/dotnet/runtime/issues/120319
2004+
if (RuntimeInformation.ProcessArchitecture != Architecture.Wasm)
2005+
{
2006+
Console.WriteLine("bc.GenericVirtualMethod<string>");
2007+
retType = bc.GenericVirtualMethod<string>(out isBase);
2008+
if (retType != typeof(string) || !isBase)
2009+
return false;
2010+
}
19982011
Console.WriteLine("itest.VirtualMethod");
19992012
if (itest.VirtualMethod() != 0xbebe)
20002013
return false;
20012014
Console.WriteLine("itest.GenericVirtualMethod<int>");
20022015
retType = itest.GenericVirtualMethod<int>(out isBase);
20032016
if (retType != typeof(int) || !isBase)
20042017
return false;
2005-
Console.WriteLine("itest.GenericVirtualMethod<string>");
2006-
retType = itest.GenericVirtualMethod<string>(out isBase);
2007-
if (retType != typeof(string) || !isBase)
2008-
return false;
2018+
// active issue https://github.com/dotnet/runtime/issues/120319
2019+
if (RuntimeInformation.ProcessArchitecture != Architecture.Wasm)
2020+
{
2021+
Console.WriteLine("itest.GenericVirtualMethod<string>");
2022+
retType = itest.GenericVirtualMethod<string>(out isBase);
2023+
if (retType != typeof(string) || !isBase)
2024+
return false;
2025+
}
20092026
return true;
20102027
}
20112028

@@ -2500,12 +2517,16 @@ public static bool TestArray()
25002517
if (!ArrayUInt32(32, uint.MinValue)) return false;
25012518
if (!ArrayUInt32(32, uint.MaxValue)) return false;
25022519

2503-
// // long
2504-
if (!ArrayInt64(0, 0)) return false;
2505-
if (!ArrayInt64(1, 1)) return false;
2506-
if (!ArrayInt64(32, 32)) return false;
2507-
if (!ArrayInt64(32, Int64.MinValue)) return false;
2508-
if (!ArrayInt64(32, Int64.MaxValue)) return false;
2520+
// active issue https://github.com/dotnet/runtime/issues/120659
2521+
if (RuntimeInformation.ProcessArchitecture != Architecture.Wasm)
2522+
{
2523+
// // long
2524+
if (!ArrayInt64(0, 0)) return false;
2525+
if (!ArrayInt64(1, 1)) return false;
2526+
if (!ArrayInt64(32, 32)) return false;
2527+
if (!ArrayInt64(32, Int64.MinValue)) return false;
2528+
if (!ArrayInt64(32, Int64.MaxValue)) return false;
2529+
}
25092530

25102531
// float
25112532
if (!ArrayFloat(0, 0)) return false;
@@ -2514,10 +2535,14 @@ public static bool TestArray()
25142535
if (!ArrayFloat(32, float.MinValue)) return false;
25152536
if (!ArrayFloat(32, float.MaxValue)) return false;
25162537

2517-
// double
2518-
if (!ArrayDouble(0, 0)) return false;
2519-
if (!ArrayDouble(1, 1)) return false;
2520-
if (!ArrayDouble(32, 32)) return false;
2538+
// active issue https://github.com/dotnet/runtime/issues/120659
2539+
if (RuntimeInformation.ProcessArchitecture != Architecture.Wasm)
2540+
{
2541+
// double
2542+
if (!ArrayDouble(0, 0)) return false;
2543+
if (!ArrayDouble(1, 1)) return false;
2544+
if (!ArrayDouble(32, 32)) return false;
2545+
}
25212546

25222547
// ref and value types
25232548
if (!TestObjectArray()) return false;
@@ -2941,18 +2966,22 @@ public unsafe static bool TestCalli()
29412966
}
29422967

29432968

2944-
GetCalliGeneric<object>()();
2945-
if (_typeFromFill != typeof(object))
2969+
// active issue https://github.com/dotnet/runtime/issues/120319
2970+
if (RuntimeInformation.ProcessArchitecture != Architecture.Wasm)
29462971
{
2947-
Console.WriteLine("Calli generic test failed: expected object, got " + _typeFromFill);
2948-
return false;
2949-
}
2972+
GetCalliGeneric<object>()();
2973+
if (_typeFromFill != typeof(object))
2974+
{
2975+
Console.WriteLine("Calli generic test failed: expected object, got " + _typeFromFill);
2976+
return false;
2977+
}
29502978

2951-
GetCalliGeneric<string>()();
2952-
if (_typeFromFill != typeof(string))
2953-
{
2954-
Console.WriteLine("Calli generic test failed: expected string, got " + _typeFromFill);
2955-
return false;
2979+
GetCalliGeneric<string>()();
2980+
if (_typeFromFill != typeof(string))
2981+
{
2982+
Console.WriteLine("Calli generic test failed: expected string, got " + _typeFromFill);
2983+
return false;
2984+
}
29562985
}
29572986
return true;
29582987
}

0 commit comments

Comments
 (0)