mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-27 05:52:11 +00:00
Fixed and Added Tests
Fixed tests for Int32 and Int64, so that they actually work. Added tests for UInt32 and UInt64
This commit is contained in:
parent
7e4f4fc3bc
commit
1a930e3181
4 changed files with 89 additions and 18 deletions
|
|
@ -143,31 +143,37 @@ namespace Cosmos.Compiler.Tests.Bcl.System
|
||||||
ByRefTestMethod(ref value);
|
ByRefTestMethod(ref value);
|
||||||
Assert.IsTrue(value == 61, "Passing an Int32 by ref to a method doesn't work");
|
Assert.IsTrue(value == 61, "Passing an Int32 by ref to a method doesn't work");
|
||||||
|
|
||||||
//Test StackOverflow Exceptions
|
//Test Overflow Exceptions
|
||||||
int val3o;
|
int val3o = 10000;
|
||||||
efuse = false;
|
efuse = false;
|
||||||
val3o = 10000;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
val3o += 2147483647;
|
checked
|
||||||
|
{
|
||||||
|
val3o += 2147483647;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (OverflowException e)
|
catch (OverflowException)
|
||||||
{
|
{
|
||||||
efuse = true;
|
efuse = true;
|
||||||
}
|
}
|
||||||
Assert.IsTrue(efuse, "Add_Ovf for Int32 doesn't work");
|
Assert.IsTrue(efuse, "Add_Ovf for Int32 doesn't work: " + val3o);
|
||||||
|
|
||||||
efuse = false;
|
efuse = false;
|
||||||
val3o = -10000;
|
val3o = -10000;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
val3o -= 2147483647;
|
checked
|
||||||
|
{
|
||||||
|
val3o -= 2147483647;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (OverflowException e)
|
catch (OverflowException)
|
||||||
{
|
{
|
||||||
efuse = true;
|
efuse = true;
|
||||||
}
|
}
|
||||||
Assert.IsTrue(efuse, "Sub_Ovf for Int32 doesn't work");
|
Assert.IsTrue(efuse, "Sub_Ovf for Int32 doesn't work: " + val3o);
|
||||||
|
Console.WriteLine("Finished Int32 Tests!");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int TestMethod(int aParam)
|
public static int TestMethod(int aParam)
|
||||||
|
|
|
||||||
|
|
@ -149,31 +149,36 @@ namespace Cosmos.Compiler.Tests.Bcl.System
|
||||||
ByRefTestMethod(ref value);
|
ByRefTestMethod(ref value);
|
||||||
Assert.IsTrue(value == 61, "Passing an Int64 by ref to a method doesn't work");
|
Assert.IsTrue(value == 61, "Passing an Int64 by ref to a method doesn't work");
|
||||||
|
|
||||||
//Test StackOverflow Exceptions
|
//Test Overflow Exceptions
|
||||||
long val3o;
|
long val3o = 1000000;
|
||||||
efuse = false;
|
efuse = false;
|
||||||
val3o = 1000000;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
val3o += long.MaxValue;
|
checked
|
||||||
|
{
|
||||||
|
val3o += long.MaxValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (OverflowException e)
|
catch (OverflowException)
|
||||||
{
|
{
|
||||||
efuse = true;
|
efuse = true;
|
||||||
}
|
}
|
||||||
Assert.IsTrue(efuse, "Add_Ovf for Int16 doesn't work");
|
Assert.IsTrue(efuse, "Add_Ovf for Int64 doesn't work");
|
||||||
|
|
||||||
efuse = false;
|
efuse = false;
|
||||||
val3o = -10000;
|
val3o = -10000;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
val3o -= long.MaxValue;
|
checked
|
||||||
|
{
|
||||||
|
val3o -= long.MaxValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (OverflowException e)
|
catch (OverflowException)
|
||||||
{
|
{
|
||||||
efuse = true;
|
efuse = true;
|
||||||
}
|
}
|
||||||
Assert.IsTrue(efuse, "Sub_Ovf for Int16 doesn't work");
|
Assert.IsTrue(efuse, "Sub_Ovf for Int64 doesn't work");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static long TestMethod(long aParam)
|
public static long TestMethod(long aParam)
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,35 @@ namespace Cosmos.Compiler.Tests.Bcl.System
|
||||||
|
|
||||||
ByRefTestMethod(ref value);
|
ByRefTestMethod(ref value);
|
||||||
Assert.IsTrue(value == 61, "Passing an UInt32 by ref to a method doesn't work");
|
Assert.IsTrue(value == 61, "Passing an UInt32 by ref to a method doesn't work");
|
||||||
|
uint val3o = 10000;
|
||||||
|
bool efuse = false;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
checked
|
||||||
|
{
|
||||||
|
val3o += uint.MaxValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (OverflowException)
|
||||||
|
{
|
||||||
|
efuse = true;
|
||||||
|
}
|
||||||
|
Assert.IsTrue(efuse, "Add_Ovf for UInt32 doesn't work: " + val3o);
|
||||||
|
|
||||||
|
efuse = false;
|
||||||
|
val3o = 10000;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
checked
|
||||||
|
{
|
||||||
|
val3o -= 2147483647;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (OverflowException)
|
||||||
|
{
|
||||||
|
efuse = true;
|
||||||
|
}
|
||||||
|
Assert.IsTrue(efuse, "Sub_Ovf for UInt32 doesn't work: " + val3o);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static uint TestMethod(uint aParam)
|
public static uint TestMethod(uint aParam)
|
||||||
|
|
|
||||||
|
|
@ -147,6 +147,37 @@ namespace Cosmos.Compiler.Tests.Bcl.System
|
||||||
|
|
||||||
ByRefTestMethod(ref value);
|
ByRefTestMethod(ref value);
|
||||||
Assert.IsTrue(value == 61, "Passing an UInt64 by ref to a method doesn't work");
|
Assert.IsTrue(value == 61, "Passing an UInt64 by ref to a method doesn't work");
|
||||||
|
|
||||||
|
//Test Overflow Exceptions
|
||||||
|
ulong val3o = 10000;
|
||||||
|
bool efuse = false;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
checked
|
||||||
|
{
|
||||||
|
val3o += ulong.MaxValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (OverflowException)
|
||||||
|
{
|
||||||
|
efuse = true;
|
||||||
|
}
|
||||||
|
Assert.IsTrue(efuse, "Add_Ovf for UInt64 doesn't work: " + val3o);
|
||||||
|
|
||||||
|
efuse = false;
|
||||||
|
val3o = 10000;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
checked
|
||||||
|
{
|
||||||
|
val3o -= 2147483647;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (OverflowException)
|
||||||
|
{
|
||||||
|
efuse = true;
|
||||||
|
}
|
||||||
|
Assert.IsTrue(efuse, "Sub_Ovf for UInt64 doesn't work: " + val3o);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ulong TestMethod(ulong aParam)
|
public static ulong TestMethod(ulong aParam)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue