summaryrefslogtreecommitdiff
path: root/BCT/RegressionTests/TranslationTest
diff options
context:
space:
mode:
authorGravatar mikebarnett <unknown>2011-01-21 19:00:11 +0000
committerGravatar mikebarnett <unknown>2011-01-21 19:00:11 +0000
commit9baf6ef4653655e9893e29c0ebf4fedcbed7666a (patch)
tree6dc314df8103b47b5453e7338f4c676647b0247e /BCT/RegressionTests/TranslationTest
parent94af5d3681e1cd1af9b648ecd8e55074958415f3 (diff)
Added a better options parsing by using functionality from MemberHelper.
Added a new heap representation, TwoDBoxHeap. Made method names unique (previously, overloads all shared the same procedure name). As part of that, no longer require method references to be resolved in order to generate a name. Added a regression test for TwoDBoxHeap. Added tests for method overloads for unique name generation.
Diffstat (limited to 'BCT/RegressionTests/TranslationTest')
-rw-r--r--BCT/RegressionTests/TranslationTest/SplitFieldsHeapInput.txt189
-rw-r--r--BCT/RegressionTests/TranslationTest/TranslationTest.csproj3
-rw-r--r--BCT/RegressionTests/TranslationTest/TwoDIntHeapInput.txt189
-rw-r--r--BCT/RegressionTests/TranslationTest/UnitTest0.cs18
4 files changed, 256 insertions, 143 deletions
diff --git a/BCT/RegressionTests/TranslationTest/SplitFieldsHeapInput.txt b/BCT/RegressionTests/TranslationTest/SplitFieldsHeapInput.txt
index 6fc1bdf1..bcbdb0d5 100644
--- a/BCT/RegressionTests/TranslationTest/SplitFieldsHeapInput.txt
+++ b/BCT/RegressionTests/TranslationTest/SplitFieldsHeapInput.txt
@@ -29,11 +29,11 @@ implementation Alloc() returns (x: int)
-procedure RegressionTestInput.AsyncAttribute..ctor$System.Void(this: int);
+procedure RegressionTestInput.AsyncAttribute.#ctor(this: int);
-implementation RegressionTestInput.AsyncAttribute..ctor$System.Void(this: int)
+implementation RegressionTestInput.AsyncAttribute.#ctor(this: int)
{
return;
}
@@ -44,11 +44,11 @@ var RegressionTestInput.ClassWithBoolTypes.staticB: bool;
var RegressionTestInput.ClassWithBoolTypes.b: [int]bool;
-procedure RegressionTestInput.ClassWithBoolTypes.M$System.Boolean(x$in: int, y$in: int) returns ($result: bool);
+procedure RegressionTestInput.ClassWithBoolTypes.M$System.Int32$System.Int32(x$in: int, y$in: int) returns ($result: bool);
-implementation RegressionTestInput.ClassWithBoolTypes.M$System.Boolean(x$in: int, y$in: int) returns ($result: bool)
+implementation RegressionTestInput.ClassWithBoolTypes.M$System.Int32$System.Int32(x$in: int, y$in: int) returns ($result: bool)
{
var x: int;
var y: int;
@@ -56,30 +56,30 @@ implementation RegressionTestInput.ClassWithBoolTypes.M$System.Boolean(x$in: int
x := x$in;
y := y$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 64} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 69} true;
local_0 := x < y;
- assert {:sourceFile "Class1.cs"} {:sourceLine 65} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 70} true;
$result := local_0;
return;
}
-procedure RegressionTestInput.ClassWithBoolTypes..ctor$System.Void(this: int, z$in: bool);
+procedure RegressionTestInput.ClassWithBoolTypes.#ctor$System.Boolean(this: int, z$in: bool);
-implementation RegressionTestInput.ClassWithBoolTypes..ctor$System.Void(this: int, z$in: bool)
+implementation RegressionTestInput.ClassWithBoolTypes.#ctor$System.Boolean(this: int, z$in: bool)
{
var z: bool;
z := z$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 67} true;
- assert {:sourceFile "Class1.cs"} {:sourceLine 68} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 72} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 73} true;
RegressionTestInput.ClassWithBoolTypes.b[this] := z;
if (z)
{
- assert {:sourceFile "Class1.cs"} {:sourceLine 69} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 74} true;
RegressionTestInput.ClassWithBoolTypes.staticB := z;
}
else
@@ -91,17 +91,17 @@ implementation RegressionTestInput.ClassWithBoolTypes..ctor$System.Void(this: in
-procedure RegressionTestInput.ClassWithBoolTypes.Main$System.Void();
+procedure RegressionTestInput.ClassWithBoolTypes.Main();
-implementation RegressionTestInput.ClassWithBoolTypes.Main$System.Void()
+implementation RegressionTestInput.ClassWithBoolTypes.Main()
{
var $tmp0: bool;
- assert {:sourceFile "Class1.cs"} {:sourceLine 73} true;
- call $tmp0 := RegressionTestInput.ClassWithBoolTypes.M$System.Boolean(3, 4);
- assert {:sourceFile "Class1.cs"} {:sourceLine 74} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 78} true;
+ call $tmp0 := RegressionTestInput.ClassWithBoolTypes.M$System.Int32$System.Int32(3, 4);
+ assert {:sourceFile "Class1.cs"} {:sourceLine 79} true;
return;
}
@@ -111,97 +111,97 @@ var RegressionTestInput.ClassWithArrayTypes.s: int;
var RegressionTestInput.ClassWithArrayTypes.a: [int]int;
-procedure RegressionTestInput.ClassWithArrayTypes.Main1$System.Void();
+procedure RegressionTestInput.ClassWithArrayTypes.Main1();
-implementation RegressionTestInput.ClassWithArrayTypes.Main1$System.Void()
+implementation RegressionTestInput.ClassWithArrayTypes.Main1()
{
var local_0: int;
var $tmp1: int;
var local_1: int;
var $tmp2: int;
- assert {:sourceFile "Class1.cs"} {:sourceLine 81} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 86} true;
call $tmp1 := Alloc();
local_0 := $tmp1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 82} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 87} true;
$ArrayContents := $ArrayContents[local_0 := $ArrayContents[local_0][0 := 2]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 83} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 88} true;
assert $ArrayContents[local_0][0] == 2;
- assert {:sourceFile "Class1.cs"} {:sourceLine 85} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 90} true;
call $tmp2 := Alloc();
local_1 := $tmp2;
- assert {:sourceFile "Class1.cs"} {:sourceLine 86} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 91} true;
$ArrayContents := $ArrayContents[local_1 := $ArrayContents[local_1][0 := 1]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 87} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 92} true;
assert $ArrayContents[local_1][0] == 1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 89} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 94} true;
assert $ArrayContents[local_0][0] == 2;
- assert {:sourceFile "Class1.cs"} {:sourceLine 90} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 95} true;
return;
}
-procedure RegressionTestInput.ClassWithArrayTypes.Main2$System.Void();
+procedure RegressionTestInput.ClassWithArrayTypes.Main2();
-implementation RegressionTestInput.ClassWithArrayTypes.Main2$System.Void()
+implementation RegressionTestInput.ClassWithArrayTypes.Main2()
{
var $tmp3: int;
var local_0: int;
var $tmp4: int;
- assert {:sourceFile "Class1.cs"} {:sourceLine 95} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 100} true;
call $tmp3 := Alloc();
RegressionTestInput.ClassWithArrayTypes.s := $tmp3;
- assert {:sourceFile "Class1.cs"} {:sourceLine 96} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 101} true;
$ArrayContents := $ArrayContents[RegressionTestInput.ClassWithArrayTypes.s := $ArrayContents[RegressionTestInput.ClassWithArrayTypes.s][0 := 2]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 97} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 102} true;
assert $ArrayContents[RegressionTestInput.ClassWithArrayTypes.s][0] == 2;
- assert {:sourceFile "Class1.cs"} {:sourceLine 99} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 104} true;
call $tmp4 := Alloc();
local_0 := $tmp4;
- assert {:sourceFile "Class1.cs"} {:sourceLine 100} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 105} true;
$ArrayContents := $ArrayContents[local_0 := $ArrayContents[local_0][0 := 1]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 101} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 106} true;
assert $ArrayContents[local_0][0] == 1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 103} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 108} true;
assert $ArrayContents[RegressionTestInput.ClassWithArrayTypes.s][0] == 2;
- assert {:sourceFile "Class1.cs"} {:sourceLine 104} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 109} true;
return;
}
-procedure RegressionTestInput.ClassWithArrayTypes.Main3$System.Void(this: int, x$in: int);
+procedure RegressionTestInput.ClassWithArrayTypes.Main3$System.Int32(this: int, x$in: int);
-implementation RegressionTestInput.ClassWithArrayTypes.Main3$System.Void(this: int, x$in: int)
+implementation RegressionTestInput.ClassWithArrayTypes.Main3$System.Int32(this: int, x$in: int)
{
var x: int;
x := x$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 109} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 114} true;
$ArrayContents := $ArrayContents[RegressionTestInput.ClassWithArrayTypes.a[this] := $ArrayContents[RegressionTestInput.ClassWithArrayTypes.a[this]][x := 42]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 110} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 115} true;
$ArrayContents := $ArrayContents[RegressionTestInput.ClassWithArrayTypes.a[this] := $ArrayContents[RegressionTestInput.ClassWithArrayTypes.a[this]][x + 1 := 43]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 111} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 116} true;
assert $ArrayContents[RegressionTestInput.ClassWithArrayTypes.a[this]][x + 1] == $ArrayContents[RegressionTestInput.ClassWithArrayTypes.a[this]][x] + 1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 112} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 117} true;
return;
}
-procedure RegressionTestInput.ClassWithArrayTypes..ctor$System.Void(this: int);
+procedure RegressionTestInput.ClassWithArrayTypes.#ctor(this: int);
-implementation RegressionTestInput.ClassWithArrayTypes..ctor$System.Void(this: int)
+implementation RegressionTestInput.ClassWithArrayTypes.#ctor(this: int)
{
return;
}
@@ -229,11 +229,11 @@ implementation RegressionTestInput.Class0.StaticMethod$System.Int32(x$in: int) r
-procedure RegressionTestInput.Class0.M$System.Void(this: int, x$in: int);
+procedure RegressionTestInput.Class0.M$System.Int32(this: int, x$in: int);
-implementation RegressionTestInput.Class0.M$System.Void(this: int, x$in: int)
+implementation RegressionTestInput.Class0.M$System.Int32(this: int, x$in: int)
{
var x: int;
var __temp_1: int;
@@ -263,60 +263,107 @@ implementation RegressionTestInput.Class0.M$System.Void(this: int, x$in: int)
-procedure RegressionTestInput.Class0.NonVoid$System.Int32(this: int) returns ($result: int);
+procedure RegressionTestInput.Class0.M$System.Int32$System.Int32(this: int, x$in: int, y$in: int);
+
+
+
+implementation RegressionTestInput.Class0.M$System.Int32$System.Int32(this: int, x$in: int, y$in: int)
+{
+ var x: int;
+ var y: int;
+
+ x := x$in;
+ y := y$in;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 28} true;
+ return;
+}
+
+
+
+procedure RegressionTestInput.Class0.M$System.Boolean(this: int, b$in: bool);
+
+
+
+implementation RegressionTestInput.Class0.M$System.Boolean(this: int, b$in: bool)
+{
+ var b: bool;
+
+ b := b$in;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 29} true;
+ return;
+}
+
+
+
+procedure RegressionTestInput.Class0.M$RegressionTestInput.Class0(this: int, c$in: int);
+
+
+
+implementation RegressionTestInput.Class0.M$RegressionTestInput.Class0(this: int, c$in: int)
+{
+ var c: int;
+
+ c := c$in;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 30} true;
+ return;
+}
+
+
+
+procedure RegressionTestInput.Class0.NonVoid(this: int) returns ($result: int);
-implementation RegressionTestInput.Class0.NonVoid$System.Int32(this: int) returns ($result: int)
+implementation RegressionTestInput.Class0.NonVoid(this: int) returns ($result: int)
{
var local_0: int;
var $tmp6: int;
- assert {:sourceFile "Class1.cs"} {:sourceLine 28} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 33} true;
call $tmp6 := RegressionTestInput.Class0.StaticMethod$System.Int32(3);
local_0 := 3 + RegressionTestInput.Class0.StaticInt + $tmp6;
- assert {:sourceFile "Class1.cs"} {:sourceLine 29} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 34} true;
$result := local_0;
return;
}
-procedure RegressionTestInput.Class0.OutParam$System.Int32(this: int) returns (x$out: int, $result: int);
+procedure RegressionTestInput.Class0.OutParam$System.Int32@(this: int) returns (x$out: int, $result: int);
-implementation RegressionTestInput.Class0.OutParam$System.Int32(this: int) returns (x$out: int, $result: int)
+implementation RegressionTestInput.Class0.OutParam$System.Int32@(this: int) returns (x$out: int, $result: int)
{
var local_0: int;
- assert {:sourceFile "Class1.cs"} {:sourceLine 32} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 37} true;
x$out := 3 + RegressionTestInput.Class0.StaticInt;
- assert {:sourceFile "Class1.cs"} {:sourceLine 33} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 38} true;
local_0 := x$out;
- assert {:sourceFile "Class1.cs"} {:sourceLine 34} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 39} true;
$result := local_0;
return;
}
-procedure RegressionTestInput.Class0.RefParam$System.Int32(this: int, x$in: int) returns (x$out: int, $result: int);
+procedure RegressionTestInput.Class0.RefParam$System.Int32@(this: int, x$in: int) returns (x$out: int, $result: int);
-implementation RegressionTestInput.Class0.RefParam$System.Int32(this: int, x$in: int) returns (x$out: int, $result: int)
+implementation RegressionTestInput.Class0.RefParam$System.Int32@(this: int, x$in: int) returns (x$out: int, $result: int)
{
var local_0: int;
x$out := x$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 37} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 42} true;
x$out := x$out + 1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 38} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 43} true;
RegressionTestInput.Class0.StaticInt := x$out;
- assert {:sourceFile "Class1.cs"} {:sourceLine 39} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 44} true;
local_0 := x$out;
- assert {:sourceFile "Class1.cs"} {:sourceLine 40} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 45} true;
$result := local_0;
return;
}
@@ -333,13 +380,13 @@ implementation RegressionTestInput.Class0.AssignToInParam$System.Int32(this: int
var local_0: int;
x := x$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 43} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 48} true;
x := x + 1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 44} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 49} true;
RegressionTestInput.Class0.StaticInt := x;
- assert {:sourceFile "Class1.cs"} {:sourceLine 45} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 50} true;
local_0 := x;
- assert {:sourceFile "Class1.cs"} {:sourceLine 46} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 51} true;
$result := local_0;
return;
}
@@ -356,9 +403,9 @@ implementation RegressionTestInput.Class0.MethodThatRepresentsAnAynchronousMetho
var local_0: int;
x := x$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 50} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 55} true;
local_0 := x;
- assert {:sourceFile "Class1.cs"} {:sourceLine 51} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 56} true;
$result := local_0;
return;
}
@@ -376,21 +423,21 @@ implementation RegressionTestInput.Class0.CallAsyncMethod$System.Int32(this: int
var $tmp7: int;
y := y$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 54} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 59} true;
call {:async} $tmp7 := RegressionTestInput.Class0.MethodThatRepresentsAnAynchronousMethod$System.Int32(this, y);
local_0 := $tmp7;
- assert {:sourceFile "Class1.cs"} {:sourceLine 55} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 60} true;
$result := local_0;
return;
}
-procedure RegressionTestInput.Class0..ctor$System.Void(this: int);
+procedure RegressionTestInput.Class0.#ctor(this: int);
-implementation RegressionTestInput.Class0..ctor$System.Void(this: int)
+implementation RegressionTestInput.Class0.#ctor(this: int)
{
return;
}
diff --git a/BCT/RegressionTests/TranslationTest/TranslationTest.csproj b/BCT/RegressionTests/TranslationTest/TranslationTest.csproj
index 6620b0c4..0487fefc 100644
--- a/BCT/RegressionTests/TranslationTest/TranslationTest.csproj
+++ b/BCT/RegressionTests/TranslationTest/TranslationTest.csproj
@@ -107,6 +107,9 @@
<ItemGroup>
<EmbeddedResource Include="SplitFieldsHeapInput.txt" />
</ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="TwoDBoxHeapInput.txt" />
+ </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/BCT/RegressionTests/TranslationTest/TwoDIntHeapInput.txt b/BCT/RegressionTests/TranslationTest/TwoDIntHeapInput.txt
index 0b5a0c2d..6d356d4b 100644
--- a/BCT/RegressionTests/TranslationTest/TwoDIntHeapInput.txt
+++ b/BCT/RegressionTests/TranslationTest/TwoDIntHeapInput.txt
@@ -29,11 +29,11 @@ implementation Alloc() returns (x: int)
var $Heap: HeapType where IsGoodHeap($Heap);
-procedure RegressionTestInput.AsyncAttribute..ctor$System.Void(this: int);
+procedure RegressionTestInput.AsyncAttribute.#ctor(this: int);
-implementation RegressionTestInput.AsyncAttribute..ctor$System.Void(this: int)
+implementation RegressionTestInput.AsyncAttribute.#ctor(this: int)
{
return;
}
@@ -44,11 +44,11 @@ var RegressionTestInput.ClassWithBoolTypes.staticB: bool;
const unique RegressionTestInput.ClassWithBoolTypes.b: bool;
-procedure RegressionTestInput.ClassWithBoolTypes.M$System.Boolean(x$in: int, y$in: int) returns ($result: bool);
+procedure RegressionTestInput.ClassWithBoolTypes.M$System.Int32$System.Int32(x$in: int, y$in: int) returns ($result: bool);
-implementation RegressionTestInput.ClassWithBoolTypes.M$System.Boolean(x$in: int, y$in: int) returns ($result: bool)
+implementation RegressionTestInput.ClassWithBoolTypes.M$System.Int32$System.Int32(x$in: int, y$in: int) returns ($result: bool)
{
var x: int;
var y: int;
@@ -56,30 +56,30 @@ implementation RegressionTestInput.ClassWithBoolTypes.M$System.Boolean(x$in: int
x := x$in;
y := y$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 64} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 69} true;
local_0 := x < y;
- assert {:sourceFile "Class1.cs"} {:sourceLine 65} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 70} true;
$result := local_0;
return;
}
-procedure RegressionTestInput.ClassWithBoolTypes..ctor$System.Void(this: int, z$in: bool);
+procedure RegressionTestInput.ClassWithBoolTypes.#ctor$System.Boolean(this: int, z$in: bool);
-implementation RegressionTestInput.ClassWithBoolTypes..ctor$System.Void(this: int, z$in: bool)
+implementation RegressionTestInput.ClassWithBoolTypes.#ctor$System.Boolean(this: int, z$in: bool)
{
var z: bool;
z := z$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 67} true;
- assert {:sourceFile "Class1.cs"} {:sourceLine 68} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 72} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 73} true;
$Heap[this, RegressionTestInput.ClassWithBoolTypes.b] := z;
if (z)
{
- assert {:sourceFile "Class1.cs"} {:sourceLine 69} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 74} true;
RegressionTestInput.ClassWithBoolTypes.staticB := z;
}
else
@@ -91,17 +91,17 @@ implementation RegressionTestInput.ClassWithBoolTypes..ctor$System.Void(this: in
-procedure RegressionTestInput.ClassWithBoolTypes.Main$System.Void();
+procedure RegressionTestInput.ClassWithBoolTypes.Main();
-implementation RegressionTestInput.ClassWithBoolTypes.Main$System.Void()
+implementation RegressionTestInput.ClassWithBoolTypes.Main()
{
var $tmp0: bool;
- assert {:sourceFile "Class1.cs"} {:sourceLine 73} true;
- call $tmp0 := RegressionTestInput.ClassWithBoolTypes.M$System.Boolean(3, 4);
- assert {:sourceFile "Class1.cs"} {:sourceLine 74} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 78} true;
+ call $tmp0 := RegressionTestInput.ClassWithBoolTypes.M$System.Int32$System.Int32(3, 4);
+ assert {:sourceFile "Class1.cs"} {:sourceLine 79} true;
return;
}
@@ -111,97 +111,97 @@ var RegressionTestInput.ClassWithArrayTypes.s: int;
const unique RegressionTestInput.ClassWithArrayTypes.a: int;
-procedure RegressionTestInput.ClassWithArrayTypes.Main1$System.Void();
+procedure RegressionTestInput.ClassWithArrayTypes.Main1();
-implementation RegressionTestInput.ClassWithArrayTypes.Main1$System.Void()
+implementation RegressionTestInput.ClassWithArrayTypes.Main1()
{
var local_0: int;
var $tmp1: int;
var local_1: int;
var $tmp2: int;
- assert {:sourceFile "Class1.cs"} {:sourceLine 81} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 86} true;
call $tmp1 := Alloc();
local_0 := $tmp1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 82} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 87} true;
$ArrayContents := $ArrayContents[local_0 := $ArrayContents[local_0][0 := 2]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 83} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 88} true;
assert $ArrayContents[local_0][0] == 2;
- assert {:sourceFile "Class1.cs"} {:sourceLine 85} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 90} true;
call $tmp2 := Alloc();
local_1 := $tmp2;
- assert {:sourceFile "Class1.cs"} {:sourceLine 86} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 91} true;
$ArrayContents := $ArrayContents[local_1 := $ArrayContents[local_1][0 := 1]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 87} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 92} true;
assert $ArrayContents[local_1][0] == 1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 89} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 94} true;
assert $ArrayContents[local_0][0] == 2;
- assert {:sourceFile "Class1.cs"} {:sourceLine 90} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 95} true;
return;
}
-procedure RegressionTestInput.ClassWithArrayTypes.Main2$System.Void();
+procedure RegressionTestInput.ClassWithArrayTypes.Main2();
-implementation RegressionTestInput.ClassWithArrayTypes.Main2$System.Void()
+implementation RegressionTestInput.ClassWithArrayTypes.Main2()
{
var $tmp3: int;
var local_0: int;
var $tmp4: int;
- assert {:sourceFile "Class1.cs"} {:sourceLine 95} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 100} true;
call $tmp3 := Alloc();
RegressionTestInput.ClassWithArrayTypes.s := $tmp3;
- assert {:sourceFile "Class1.cs"} {:sourceLine 96} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 101} true;
$ArrayContents := $ArrayContents[RegressionTestInput.ClassWithArrayTypes.s := $ArrayContents[RegressionTestInput.ClassWithArrayTypes.s][0 := 2]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 97} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 102} true;
assert $ArrayContents[RegressionTestInput.ClassWithArrayTypes.s][0] == 2;
- assert {:sourceFile "Class1.cs"} {:sourceLine 99} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 104} true;
call $tmp4 := Alloc();
local_0 := $tmp4;
- assert {:sourceFile "Class1.cs"} {:sourceLine 100} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 105} true;
$ArrayContents := $ArrayContents[local_0 := $ArrayContents[local_0][0 := 1]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 101} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 106} true;
assert $ArrayContents[local_0][0] == 1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 103} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 108} true;
assert $ArrayContents[RegressionTestInput.ClassWithArrayTypes.s][0] == 2;
- assert {:sourceFile "Class1.cs"} {:sourceLine 104} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 109} true;
return;
}
-procedure RegressionTestInput.ClassWithArrayTypes.Main3$System.Void(this: int, x$in: int);
+procedure RegressionTestInput.ClassWithArrayTypes.Main3$System.Int32(this: int, x$in: int);
-implementation RegressionTestInput.ClassWithArrayTypes.Main3$System.Void(this: int, x$in: int)
+implementation RegressionTestInput.ClassWithArrayTypes.Main3$System.Int32(this: int, x$in: int)
{
var x: int;
x := x$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 109} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 114} true;
$ArrayContents := $ArrayContents[$Heap[this, RegressionTestInput.ClassWithArrayTypes.a] := $ArrayContents[$Heap[this, RegressionTestInput.ClassWithArrayTypes.a]][x := 42]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 110} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 115} true;
$ArrayContents := $ArrayContents[$Heap[this, RegressionTestInput.ClassWithArrayTypes.a] := $ArrayContents[$Heap[this, RegressionTestInput.ClassWithArrayTypes.a]][x + 1 := 43]];
- assert {:sourceFile "Class1.cs"} {:sourceLine 111} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 116} true;
assert $ArrayContents[$Heap[this, RegressionTestInput.ClassWithArrayTypes.a]][x + 1] == $ArrayContents[$Heap[this, RegressionTestInput.ClassWithArrayTypes.a]][x] + 1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 112} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 117} true;
return;
}
-procedure RegressionTestInput.ClassWithArrayTypes..ctor$System.Void(this: int);
+procedure RegressionTestInput.ClassWithArrayTypes.#ctor(this: int);
-implementation RegressionTestInput.ClassWithArrayTypes..ctor$System.Void(this: int)
+implementation RegressionTestInput.ClassWithArrayTypes.#ctor(this: int)
{
return;
}
@@ -229,11 +229,11 @@ implementation RegressionTestInput.Class0.StaticMethod$System.Int32(x$in: int) r
-procedure RegressionTestInput.Class0.M$System.Void(this: int, x$in: int);
+procedure RegressionTestInput.Class0.M$System.Int32(this: int, x$in: int);
-implementation RegressionTestInput.Class0.M$System.Void(this: int, x$in: int)
+implementation RegressionTestInput.Class0.M$System.Int32(this: int, x$in: int)
{
var x: int;
var __temp_1: int;
@@ -263,60 +263,107 @@ implementation RegressionTestInput.Class0.M$System.Void(this: int, x$in: int)
-procedure RegressionTestInput.Class0.NonVoid$System.Int32(this: int) returns ($result: int);
+procedure RegressionTestInput.Class0.M$System.Int32$System.Int32(this: int, x$in: int, y$in: int);
+
+
+
+implementation RegressionTestInput.Class0.M$System.Int32$System.Int32(this: int, x$in: int, y$in: int)
+{
+ var x: int;
+ var y: int;
+
+ x := x$in;
+ y := y$in;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 28} true;
+ return;
+}
+
+
+
+procedure RegressionTestInput.Class0.M$System.Boolean(this: int, b$in: bool);
+
+
+
+implementation RegressionTestInput.Class0.M$System.Boolean(this: int, b$in: bool)
+{
+ var b: bool;
+
+ b := b$in;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 29} true;
+ return;
+}
+
+
+
+procedure RegressionTestInput.Class0.M$RegressionTestInput.Class0(this: int, c$in: int);
+
+
+
+implementation RegressionTestInput.Class0.M$RegressionTestInput.Class0(this: int, c$in: int)
+{
+ var c: int;
+
+ c := c$in;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 30} true;
+ return;
+}
+
+
+
+procedure RegressionTestInput.Class0.NonVoid(this: int) returns ($result: int);
-implementation RegressionTestInput.Class0.NonVoid$System.Int32(this: int) returns ($result: int)
+implementation RegressionTestInput.Class0.NonVoid(this: int) returns ($result: int)
{
var local_0: int;
var $tmp6: int;
- assert {:sourceFile "Class1.cs"} {:sourceLine 28} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 33} true;
call $tmp6 := RegressionTestInput.Class0.StaticMethod$System.Int32(3);
local_0 := 3 + RegressionTestInput.Class0.StaticInt + $tmp6;
- assert {:sourceFile "Class1.cs"} {:sourceLine 29} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 34} true;
$result := local_0;
return;
}
-procedure RegressionTestInput.Class0.OutParam$System.Int32(this: int) returns (x$out: int, $result: int);
+procedure RegressionTestInput.Class0.OutParam$System.Int32@(this: int) returns (x$out: int, $result: int);
-implementation RegressionTestInput.Class0.OutParam$System.Int32(this: int) returns (x$out: int, $result: int)
+implementation RegressionTestInput.Class0.OutParam$System.Int32@(this: int) returns (x$out: int, $result: int)
{
var local_0: int;
- assert {:sourceFile "Class1.cs"} {:sourceLine 32} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 37} true;
x$out := 3 + RegressionTestInput.Class0.StaticInt;
- assert {:sourceFile "Class1.cs"} {:sourceLine 33} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 38} true;
local_0 := x$out;
- assert {:sourceFile "Class1.cs"} {:sourceLine 34} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 39} true;
$result := local_0;
return;
}
-procedure RegressionTestInput.Class0.RefParam$System.Int32(this: int, x$in: int) returns (x$out: int, $result: int);
+procedure RegressionTestInput.Class0.RefParam$System.Int32@(this: int, x$in: int) returns (x$out: int, $result: int);
-implementation RegressionTestInput.Class0.RefParam$System.Int32(this: int, x$in: int) returns (x$out: int, $result: int)
+implementation RegressionTestInput.Class0.RefParam$System.Int32@(this: int, x$in: int) returns (x$out: int, $result: int)
{
var local_0: int;
x$out := x$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 37} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 42} true;
x$out := x$out + 1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 38} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 43} true;
RegressionTestInput.Class0.StaticInt := x$out;
- assert {:sourceFile "Class1.cs"} {:sourceLine 39} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 44} true;
local_0 := x$out;
- assert {:sourceFile "Class1.cs"} {:sourceLine 40} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 45} true;
$result := local_0;
return;
}
@@ -333,13 +380,13 @@ implementation RegressionTestInput.Class0.AssignToInParam$System.Int32(this: int
var local_0: int;
x := x$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 43} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 48} true;
x := x + 1;
- assert {:sourceFile "Class1.cs"} {:sourceLine 44} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 49} true;
RegressionTestInput.Class0.StaticInt := x;
- assert {:sourceFile "Class1.cs"} {:sourceLine 45} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 50} true;
local_0 := x;
- assert {:sourceFile "Class1.cs"} {:sourceLine 46} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 51} true;
$result := local_0;
return;
}
@@ -356,9 +403,9 @@ implementation RegressionTestInput.Class0.MethodThatRepresentsAnAynchronousMetho
var local_0: int;
x := x$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 50} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 55} true;
local_0 := x;
- assert {:sourceFile "Class1.cs"} {:sourceLine 51} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 56} true;
$result := local_0;
return;
}
@@ -376,21 +423,21 @@ implementation RegressionTestInput.Class0.CallAsyncMethod$System.Int32(this: int
var $tmp7: int;
y := y$in;
- assert {:sourceFile "Class1.cs"} {:sourceLine 54} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 59} true;
call {:async} $tmp7 := RegressionTestInput.Class0.MethodThatRepresentsAnAynchronousMethod$System.Int32(this, y);
local_0 := $tmp7;
- assert {:sourceFile "Class1.cs"} {:sourceLine 55} true;
+ assert {:sourceFile "Class1.cs"} {:sourceLine 60} true;
$result := local_0;
return;
}
-procedure RegressionTestInput.Class0..ctor$System.Void(this: int);
+procedure RegressionTestInput.Class0.#ctor(this: int);
-implementation RegressionTestInput.Class0..ctor$System.Void(this: int)
+implementation RegressionTestInput.Class0.#ctor(this: int)
{
return;
}
diff --git a/BCT/RegressionTests/TranslationTest/UnitTest0.cs b/BCT/RegressionTests/TranslationTest/UnitTest0.cs
index 179dbb87..d7f2051c 100644
--- a/BCT/RegressionTests/TranslationTest/UnitTest0.cs
+++ b/BCT/RegressionTests/TranslationTest/UnitTest0.cs
@@ -61,7 +61,7 @@ namespace TranslationTest {
#endregion
private string ExecuteTest(string assemblyName, HeapFactory heapFactory) {
- BCT.TranslateAssembly(assemblyName, heapFactory);
+ BCT.TranslateAssembly(assemblyName, heapFactory, null);
var fileName = Path.ChangeExtension(assemblyName, "bpl");
var s = File.ReadAllText(fileName);
return s;
@@ -96,6 +96,22 @@ namespace TranslationTest {
Assert.Fail("Output didn't match SplitFieldsHeapInput.txt: " + resultFile);
}
}
+
+ [TestMethod]
+ public void TwoDBoxHeap() {
+ string dir = TestContext.DeploymentDirectory;
+ var fullPath = Path.Combine(dir, "RegressionTestInput.dll");
+ Stream resource = typeof(UnitTest0).Assembly.GetManifestResourceStream("TranslationTest.TwoDBoxHeapInput.txt");
+ StreamReader reader = new StreamReader(resource);
+ string expected = reader.ReadToEnd();
+ var result = ExecuteTest(fullPath, new TwoDBoxHeap());
+ if (result != expected) {
+ string resultFile = Path.GetFullPath("TwoDBoxHeapOutput.txt");
+ File.WriteAllText(resultFile, result);
+ Assert.Fail("Output didn't match TwoDBoxHeapHeapInput.txt: " + resultFile);
+ }
+ }
+
}
}
\ No newline at end of file