From eef386427863e27a40cb22a424ddb5ceeb6c7a56 Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Thu, 31 Jul 2008 01:27:33 +0000 Subject: Fix issue 1860; exception thrown in the parser on if/if-else/for/while/do-while statements with no body. --- .../Shared/CodeTools/CSCodeGeneratorTest.cs | 125 +++++++++++++++++++++ 1 file changed, 125 insertions(+) (limited to 'OpenSim/Tests') diff --git a/OpenSim/Tests/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGeneratorTest.cs b/OpenSim/Tests/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGeneratorTest.cs index 9547b0b..6e4d029 100644 --- a/OpenSim/Tests/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGeneratorTest.cs +++ b/OpenSim/Tests/OpenSim/Region/ScriptEngine/Shared/CodeTools/CSCodeGeneratorTest.cs @@ -1395,6 +1395,131 @@ default } [Test] + public void TestWhileLoopWithNoBody() + { + string input = @"default +{ + state_entry() + { + while(1<0); + } +}"; + + string expected = @" + public void default_event_state_entry() + { + while (1 < 0) + ; + } +"; + + CSCodeGenerator cg = new CSCodeGenerator(); + string output = cg.Convert(input); + Assert.AreEqual(expected, output); + } + + [Test] + public void TestDoWhileLoopWithNoBody() + { + string input = @"default +{ + state_entry() + { + do; + while(1<0); + } +}"; + + string expected = @" + public void default_event_state_entry() + { + do + ; + while (1 < 0); + } +"; + + CSCodeGenerator cg = new CSCodeGenerator(); + string output = cg.Convert(input); + Assert.AreEqual(expected, output); + } + + [Test] + public void TestIfWithNoBody() + { + string input = @"default +{ + state_entry() + { + if(1<0); + } +}"; + + string expected = @" + public void default_event_state_entry() + { + if (1 < 0) + ; + } +"; + + CSCodeGenerator cg = new CSCodeGenerator(); + string output = cg.Convert(input); + Assert.AreEqual(expected, output); + } + + [Test] + public void TestIfElseWithNoBody() + { + string input = @"default +{ + state_entry() + { + if(1<0); + else; + } +}"; + + string expected = @" + public void default_event_state_entry() + { + if (1 < 0) + ; + else + ; + } +"; + + CSCodeGenerator cg = new CSCodeGenerator(); + string output = cg.Convert(input); + Assert.AreEqual(expected, output); + } + + [Test] + public void TestForLoopWithNoBody() + { + string input = @"default +{ + state_entry() + { + for(x = 4; 1<0; x += 2); + } +}"; + + string expected = @" + public void default_event_state_entry() + { + for (x = 4; 1 < 0; x += 2) + ; + } +"; + + CSCodeGenerator cg = new CSCodeGenerator(); + string output = cg.Convert(input); + Assert.AreEqual(expected, output); + } + + [Test] [ExpectedException("Tools.CSToolsException")] public void TestSyntaxError() { -- cgit v1.1