Fix and reactivate the unit tests on the XEngine

0.6.0-stable
Melanie Thielker 2008-09-02 13:38:14 +00:00
parent 109aa00150
commit 2e4a5aa98a
1 changed files with 102 additions and 103 deletions

View File

@ -37,7 +37,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests
/// Each test has some LSL code as input and C# code as expected output. /// Each test has some LSL code as input and C# code as expected output.
/// The generated C# code is compared against the expected C# code. /// The generated C# code is compared against the expected C# code.
/// </summary> /// </summary>
//(TestFixture) [TestFixture]
public class CSCodeGeneratorTest public class CSCodeGeneratorTest
{ {
[Test] [Test]
@ -827,56 +827,56 @@ default
string expected = @" string expected = @"
public void default_event_touch_start(LSL_Types.LSLInteger num_detected) public void default_event_touch_start(LSL_Types.LSLInteger num_detected)
{ {
LSL_Types.LSLInteger x = 1; LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(1);
LSL_Types.LSLInteger y = 0; LSL_Types.LSLInteger y = new LSL_Types.LSLInteger(0);
if (x && y) if (x && y)
llSay(0, ""Hello""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""Hello""));
if (x || y) if (x || y)
{ {
llSay(0, ""Hi""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""Hi""));
LSL_Types.LSLInteger r = 3; LSL_Types.LSLInteger r = new LSL_Types.LSLInteger(3);
return ; return ;
} }
if (x && y || z) if (x && y || z)
llSay(0, ""x is true""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""x is true""));
else else
llSay(0, ""x is false""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""x is false""));
if (x == y) if (x == y)
llSay(0, ""x is true""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""x is true""));
else else
if (y < x) if (y < x)
llSay(0, ""y is true""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""y is true""));
else else
llSay(0, ""Who needs x and y anyway?""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""Who needs x and y anyway?""));
if (x > y) if (x > y)
llSay(0, ""x is true""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""x is true""));
else else
if (y <= x) if (y <= x)
{ {
llSay(0, ""uh-oh, y is true, exiting""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""uh-oh, y is true, exiting""));
return ; return ;
} }
else else
llSay(0, ""Who needs x and y anyway?""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""Who needs x and y anyway?""));
if (x >= y) if (x >= y)
llSay(0, ""x is true""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""x is true""));
else else
if (y != x) if (y != x)
llSay(0, ""y is true""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""y is true""));
else else
if (!z) if (!z)
llSay(0, ""z is true""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""z is true""));
else else
if (!(a && b)) if (!(a && b))
llSay(0, ""a is true""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""a is true""));
else else
if (b) if (b)
llSay(0, ""b is true""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""b is true""));
else else
if (v) if (v)
llSay(0, ""v is true""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""v is true""));
else else
llSay(0, ""Everything is lies!""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""Everything is lies!""));
} }
"; ";
@ -909,13 +909,13 @@ default
string expected = @" string expected = @"
public void default_event_touch_start(LSL_Types.LSLInteger num_detected) public void default_event_touch_start(LSL_Types.LSLInteger num_detected)
{ {
LSL_Types.LSLInteger x = 1; LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(1);
LSL_Types.LSLInteger y = 0; LSL_Types.LSLInteger y = new LSL_Types.LSLInteger(0);
while (x) while (x)
llSay(0, ""To infinity, and beyond!""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""To infinity, and beyond!""));
while (0 || (x && 0)) while (new LSL_Types.LSLInteger(0) || (x && new LSL_Types.LSLInteger(0)))
{ {
llSay(0, ""Never say never.""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""Never say never.""));
return ; return ;
} }
} }
@ -952,14 +952,14 @@ default
string expected = @" string expected = @"
public void default_event_touch_start(LSL_Types.LSLInteger num_detected) public void default_event_touch_start(LSL_Types.LSLInteger num_detected)
{ {
LSL_Types.LSLInteger x = 1; LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(1);
LSL_Types.LSLInteger y = 0; LSL_Types.LSLInteger y = new LSL_Types.LSLInteger(0);
do do
llSay(0, ""And we're doing...""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""And we're doing...""));
while (x); while (x);
do do
{ {
llSay(0, ""I like it here. I wish we could stay here forever.""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""I like it here. I wish we could stay here forever.""));
y--; y--;
} }
while (y); while (y);
@ -997,17 +997,17 @@ default
string expected = @" string expected = @"
public void default_event_touch_start(LSL_Types.LSLInteger num_detected) public void default_event_touch_start(LSL_Types.LSLInteger num_detected)
{ {
LSL_Types.LSLInteger x = 1; LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(1);
LSL_Types.LSLInteger y = 0; LSL_Types.LSLInteger y = new LSL_Types.LSLInteger(0);
for (x = 10; x >= 0; x--) for (x = new LSL_Types.LSLInteger(10); x >= new LSL_Types.LSLInteger(0); x--)
{ {
llOwnerSay(""Launch in T minus "" + x); llOwnerSay(new LSL_Types.LSLString(""Launch in T minus "") + x);
IncreaseRocketPower(); IncreaseRocketPower();
} }
for (x = 0, y = 6; y > 0 && x != y; x++, y--) for (x = new LSL_Types.LSLInteger(0), y = new LSL_Types.LSLInteger(6); y > new LSL_Types.LSLInteger(0) && x != y; x++, y--)
llOwnerSay(""Hi "" + x + "", "" + y); llOwnerSay(new LSL_Types.LSLString(""Hi "") + x + new LSL_Types.LSLString("", "") + y);
for (x = 0, y = 6; !y; x++, y--) for (x = new LSL_Types.LSLInteger(0), y = new LSL_Types.LSLInteger(6); !y; x++, y--)
llOwnerSay(""Hi "" + x + "", "" + y); llOwnerSay(new LSL_Types.LSLString(""Hi "") + x + new LSL_Types.LSLString("", "") + y);
} }
"; ";
@ -1046,21 +1046,21 @@ default
string expected = @" string expected = @"
public void default_event_touch_start(LSL_Types.LSLInteger num_detected) public void default_event_touch_start(LSL_Types.LSLInteger num_detected)
{ {
LSL_Types.LSLFloat y = 1.0; LSL_Types.LSLFloat y = new LSL_Types.LSLFloat(1.0);
y = 1.0E3; y = new LSL_Types.LSLFloat(1.0E3);
y = 1.0e3; y = new LSL_Types.LSLFloat(1.0e3);
y = 1.0E+3; y = new LSL_Types.LSLFloat(1.0E+3);
y = 1.0e+3; y = new LSL_Types.LSLFloat(1.0e+3);
y = 1.0E-3; y = new LSL_Types.LSLFloat(1.0E-3);
y = 1.0e-3; y = new LSL_Types.LSLFloat(1.0e-3);
y = -1.0E3; y = -new LSL_Types.LSLFloat(1.0E3);
y = -1.0e3; y = -new LSL_Types.LSLFloat(1.0e3);
y = -1.0E+3; y = -new LSL_Types.LSLFloat(1.0E+3);
y = -1.0e+3; y = -new LSL_Types.LSLFloat(1.0e+3);
y = -1.0E-3; y = -new LSL_Types.LSLFloat(1.0E-3);
y = -1.0e-3; y = -new LSL_Types.LSLFloat(1.0e-3);
y = 12.0 + -1.0E3 - 1.0e-2; y = new LSL_Types.LSLFloat(12.0) + -new LSL_Types.LSLFloat(1.0E3) - new LSL_Types.LSLFloat(1.0e-2);
LSL_Types.Vector3 v = new LSL_Types.Vector3(0.0, 0.0, 0.0); LSL_Types.Vector3 v = new LSL_Types.Vector3(new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0));
} }
"; ";
@ -1091,8 +1091,8 @@ default
string expected = @" string expected = @"
public void default_event_touch_start(LSL_Types.LSLInteger num_detected) public void default_event_touch_start(LSL_Types.LSLInteger num_detected)
{ {
LSL_Types.LSLInteger x = 2; LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(2);
LSL_Types.LSLInteger y = 1; LSL_Types.LSLInteger y = new LSL_Types.LSLInteger(1);
LSL_Types.LSLInteger z = x ^ y; LSL_Types.LSLInteger z = x ^ y;
x = ~z; x = ~z;
x = ~(y && z); x = ~(y && z);
@ -1133,17 +1133,17 @@ default
string expected = @" string expected = @"
public void default_event_touch_start(LSL_Types.LSLInteger num_detected) public void default_event_touch_start(LSL_Types.LSLInteger num_detected)
{ {
LSL_Types.LSLString s = """"; LSL_Types.LSLString s = new LSL_Types.LSLString("""");
LSL_Types.LSLInteger x = 1; LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(1);
s = (LSL_Types.LSLString) (x++); s = (LSL_Types.LSLString) (x++);
s = (LSL_Types.LSLString) (x); s = (LSL_Types.LSLString) (x);
s = (LSL_Types.LSLString) (new LSL_Types.Vector3(0.0, 0.0, 0.0)); s = (LSL_Types.LSLString) (new LSL_Types.Vector3(new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0), new LSL_Types.LSLFloat(0.0)));
s = (LSL_Types.LSLString) (new LSL_Types.Quaternion(1.0, 1.0, 1.0, 1.0)); s = (LSL_Types.LSLString) (new LSL_Types.Quaternion(new LSL_Types.LSLFloat(1.0), new LSL_Types.LSLFloat(1.0), new LSL_Types.LSLFloat(1.0), new LSL_Types.LSLFloat(1.0)));
s = (LSL_Types.LSLInteger) (""1""); s = (LSL_Types.LSLInteger) (new LSL_Types.LSLString(""1""));
s = (LSL_Types.LSLString) (llSomethingThatReturnsInteger()); s = (LSL_Types.LSLString) (llSomethingThatReturnsInteger());
s = (LSL_Types.LSLString) (134); s = (LSL_Types.LSLString) (new LSL_Types.LSLInteger(134));
s = (LSL_Types.LSLString) (x ^ y | (z && l)) + (LSL_Types.LSLString) (x + y - 13); s = (LSL_Types.LSLString) (x ^ y | (z && l)) + (LSL_Types.LSLString) (x + y - new LSL_Types.LSLInteger(13));
llOwnerSay(""s is: "" + s); llOwnerSay(new LSL_Types.LSLString(""s is: "") + s);
} }
"; ";
@ -1178,12 +1178,12 @@ state statetwo
string expected = @" string expected = @"
public void default_event_touch_start(LSL_Types.LSLInteger num_detected) public void default_event_touch_start(LSL_Types.LSLInteger num_detected)
{ {
llSay(0, ""Going to state 'statetwo'""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""Going to state 'statetwo'""));
state(""statetwo""); state(""statetwo"");
} }
public void statetwo_event_state_entry() public void statetwo_event_state_entry()
{ {
llSay(0, ""Going to the default state""); llSay(new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(""Going to the default state""));
state(""default""); state(""default"");
} }
"; ";
@ -1213,11 +1213,11 @@ default
string expected = @" string expected = @"
public void default_event_touch_start(LSL_Types.LSLInteger num_detected) public void default_event_touch_start(LSL_Types.LSLInteger num_detected)
{ {
LSL_Types.LSLInteger x = 0x23; LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(0x23);
LSL_Types.LSLInteger x = 0x2f34B; LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(0x2f34B);
LSL_Types.LSLInteger x = 0x2F34b; LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(0x2F34b);
LSL_Types.LSLInteger x = 0x2F34B; LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(0x2F34B);
LSL_Types.LSLInteger x = 0x2f34b; LSL_Types.LSLInteger x = new LSL_Types.LSLInteger(0x2f34b);
} }
"; ";
@ -1246,9 +1246,9 @@ default
public void default_event_touch_start(LSL_Types.LSLInteger num_detected) public void default_event_touch_start(LSL_Types.LSLInteger num_detected)
{ {
goto here; goto here;
llOwnerSay(""Uh oh, the jump didn't work""); llOwnerSay(new LSL_Types.LSLString(""Uh oh, the jump didn't work""));
here: here:
llOwnerSay(""After the jump""); llOwnerSay(new LSL_Types.LSLString(""After the jump""));
} }
"; ";
@ -1280,19 +1280,19 @@ default
public void default_event_touch_start(LSL_Types.LSLInteger num_detected) public void default_event_touch_start(LSL_Types.LSLInteger num_detected)
{ {
LSL_Types.LSLInteger i = 0; LSL_Types.LSLInteger i = 0;
LSL_Types.LSLInteger j = 14; LSL_Types.LSLInteger j = new LSL_Types.LSLInteger(14);
LSL_Types.LSLFloat f = 0.0; LSL_Types.LSLFloat f = 0.0;
LSL_Types.LSLFloat g = 14.0; LSL_Types.LSLFloat g = new LSL_Types.LSLFloat(14.0);
LSL_Types.LSLString s = """"; LSL_Types.LSLString s = """";
LSL_Types.LSLString t = ""Hi there""; LSL_Types.LSLString t = new LSL_Types.LSLString(""Hi there"");
LSL_Types.list l = new LSL_Types.list(); LSL_Types.list l = new LSL_Types.list();
LSL_Types.list m = new LSL_Types.list(1, 2, 3); LSL_Types.list m = new LSL_Types.list(new LSL_Types.LSLInteger(1), new LSL_Types.LSLInteger(2), new LSL_Types.LSLInteger(3));
LSL_Types.Vector3 v = new LSL_Types.Vector3(0.0, 0.0, 0.0); LSL_Types.Vector3 v = new LSL_Types.Vector3(0.0, 0.0, 0.0);
LSL_Types.Vector3 w = new LSL_Types.Vector3(1.0, 0.1, 0.5); LSL_Types.Vector3 w = new LSL_Types.Vector3(new LSL_Types.LSLFloat(1.0), new LSL_Types.LSLFloat(0.1), new LSL_Types.LSLFloat(0.5));
LSL_Types.Quaternion r = new LSL_Types.Quaternion(0.0, 0.0, 0.0, 0.0); LSL_Types.Quaternion r = new LSL_Types.Quaternion(0.0, 0.0, 0.0, 0.0);
LSL_Types.Quaternion u = new LSL_Types.Quaternion(0.8, 0.7, 0.6, llSomeFunc()); LSL_Types.Quaternion u = new LSL_Types.Quaternion(new LSL_Types.LSLFloat(0.8), new LSL_Types.LSLFloat(0.7), new LSL_Types.LSLFloat(0.6), llSomeFunc());
LSL_Types.LSLString k = """"; LSL_Types.LSLString k = """";
LSL_Types.LSLString n = ""ping""; LSL_Types.LSLString n = new LSL_Types.LSLString(""ping"");
} }
"; ";
@ -1323,9 +1323,9 @@ default
{ {
LSL_Types.LSLInteger x = 0; LSL_Types.LSLInteger x = 0;
LSL_Types.LSLInteger y = 0; LSL_Types.LSLInteger y = 0;
x = y = 5; x = y = new LSL_Types.LSLInteger(5);
x += y -= 5; x += y -= new LSL_Types.LSLInteger(5);
llOwnerSay(""x is: "" + (LSL_Types.LSLString) (x) + "", y is: "" + (LSL_Types.LSLString) (y)); llOwnerSay(new LSL_Types.LSLString(""x is: "") + (LSL_Types.LSLString) (x) + new LSL_Types.LSLString("", y is: "") + (LSL_Types.LSLString) (y));
} }
"; ";
@ -1350,7 +1350,7 @@ default
string expected = @" string expected = @"
public void default_event_state_entry() public void default_event_state_entry()
{ {
LSL_Types.Vector3 v = new LSL_Types.Vector3(x, y, -0.5); LSL_Types.Vector3 v = new LSL_Types.Vector3(x, y, -new LSL_Types.LSLFloat(0.5));
} }
"; ";
@ -1381,11 +1381,11 @@ default
public void default_event_state_entry() public void default_event_state_entry()
{ {
LSL_Types.Vector3 v = llGetPos(); LSL_Types.Vector3 v = llGetPos();
v.z += 4; v.z += new LSL_Types.LSLInteger(4);
v.z -= 4; v.z -= new LSL_Types.LSLInteger(4);
v.z *= 4; v.z *= new LSL_Types.LSLInteger(4);
v.z /= 4; v.z /= new LSL_Types.LSLInteger(4);
v.z %= 4; v.z %= new LSL_Types.LSLInteger(4);
} }
"; ";
@ -1408,7 +1408,7 @@ default
string expected = @" string expected = @"
public void default_event_state_entry() public void default_event_state_entry()
{ {
while (1 < 0) while (new LSL_Types.LSLInteger(1) < new LSL_Types.LSLInteger(0))
; ;
} }
"; ";
@ -1435,7 +1435,7 @@ default
{ {
do do
; ;
while (1 < 0); while (new LSL_Types.LSLInteger(1) < new LSL_Types.LSLInteger(0));
} }
"; ";
@ -1458,7 +1458,7 @@ default
string expected = @" string expected = @"
public void default_event_state_entry() public void default_event_state_entry()
{ {
if (1 < 0) if (new LSL_Types.LSLInteger(1) < new LSL_Types.LSLInteger(0))
; ;
} }
"; ";
@ -1483,7 +1483,7 @@ default
string expected = @" string expected = @"
public void default_event_state_entry() public void default_event_state_entry()
{ {
if (1 < 0) if (new LSL_Types.LSLInteger(1) < new LSL_Types.LSLInteger(0))
; ;
else else
; ;
@ -1509,7 +1509,7 @@ default
string expected = @" string expected = @"
public void default_event_state_entry() public void default_event_state_entry()
{ {
for (x = 4; 1 < 0; x += 2) for (x = new LSL_Types.LSLInteger(4); new LSL_Types.LSLInteger(1) < new LSL_Types.LSLInteger(0); x += new LSL_Types.LSLInteger(2))
; ;
} }
"; ";
@ -1542,13 +1542,13 @@ default
public void default_event_state_entry() public void default_event_state_entry()
{ {
LSL_Types.LSLInteger x = 0; LSL_Types.LSLInteger x = 0;
while (x = 14) while (x = new LSL_Types.LSLInteger(14))
llOwnerSay(""x is: "" + (LSL_Types.LSLString) (x)); llOwnerSay(new LSL_Types.LSLString(""x is: "") + (LSL_Types.LSLString) (x));
if (x = 24) if (x = new LSL_Types.LSLInteger(24))
llOwnerSay(""x is: "" + (LSL_Types.LSLString) (x)); llOwnerSay(new LSL_Types.LSLString(""x is: "") + (LSL_Types.LSLString) (x));
do do
llOwnerSay(""x is: "" + (LSL_Types.LSLString) (x)); llOwnerSay(new LSL_Types.LSLString(""x is: "") + (LSL_Types.LSLString) (x));
while (x = 44); while (x = new LSL_Types.LSLInteger(44));
} }
"; ";
@ -1572,8 +1572,8 @@ default
string expected = @" string expected = @"
public void default_event_state_entry() public void default_event_state_entry()
{ {
LSL_Types.list l = new LSL_Types.list(""hello""); LSL_Types.list l = new LSL_Types.list(new LSL_Types.LSLString(""hello""));
l = (l = new LSL_Types.list()) + l + ""world""; l = (l = new LSL_Types.list()) + l + new LSL_Types.LSLString(""world"");
} }
"; ";
@ -1631,8 +1631,7 @@ default
} }
catch (Tools.CSToolsException e) catch (Tools.CSToolsException e)
{ {
// The syntax error is on line 6, char 5 (expected ';', found // The syntax error is on line 5, char 14 (Syntax error)
// '}').
Regex r = new Regex("Line ([0-9]+), char ([0-9]+)"); Regex r = new Regex("Line ([0-9]+), char ([0-9]+)");
Match m = r.Match(e.Message); Match m = r.Match(e.Message);
Assert.AreEqual("5", m.Groups[1].Value); Assert.AreEqual("5", m.Groups[1].Value);