New test classes for fors, updated AS3Generator for tests

This commit is contained in:
Jindra Petřík
2021-01-18 19:47:59 +01:00
parent 3881c8c8cb
commit da1423a254
7 changed files with 798 additions and 768 deletions

View File

@@ -37,6 +37,8 @@ import java.io.FileInputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
/**
*
@@ -53,7 +55,12 @@ public class AS3Generator {
List<ScriptPack> scriptPacks = swf.getAS3Packs();
StringBuilder s = new StringBuilder();
Map<String, ScriptPack> sortedPacks = new TreeMap<>();
for (ScriptPack pack : scriptPacks) {
sortedPacks.put(pack.getClassPath().toRawString(), pack);
}
for (String packClassName : sortedPacks.keySet()) {
ScriptPack pack = sortedPacks.get(packClassName);
ABC abc = pack.abc;
if (pack.getClassPath().packageStr.toRawString().equals("tests")) {
abc.findClassByName(pack.getClassPath().toRawString());
@@ -67,7 +74,7 @@ public class AS3Generator {
String lower = clsName.substring(0, 1).toLowerCase() + clsName.substring(1);
if (name.equals("run")) {
s.append("@Test\r\npublic void ");
s.append(name);
s.append(lower);
s.append("(){\r\ndecompileMethod(\"");
s.append(lower);
s.append("\", ");

View File

@@ -27,12 +27,15 @@ package
TestExpressions;
TestFinallyZeroJump;
TestFor;
TestForAnd;
TestForBreak;
TestForContinue;
TestForEach;
TestForEachObjectArray;
TestForEachObjectAttribute;
TestForGoto;
TestForIn;
TestForXml;
TestHello;
TestIf;
TestIfElse;

View File

@@ -0,0 +1,33 @@
package tests
{
public class TestForAnd
{
public function run() : *
{
var len:int = 5;
var x : Boolean;
var a:int = 4;
var b:int = 7;
var c:int = 9;
for (var i:uint = 0; i < len; x = a > 4 && b < 2 || c > 10)
{
c = 1;
if (c == 2) {
trace("A");
if (c == 7)
{
trace("B");
continue;
}
trace("C");
}
trace("D");
}
}
}
}

View File

@@ -0,0 +1,28 @@
package tests
{
public class TestForGoto
{
public function run() : *
{
var len:int = 5;
for (var i:uint = 0; i < len; ++i)
{
var c:int = 1;
if (c == 2)
trace("A")
else if (c == 3)
trace("B")
else
continue;
trace("C")
}
trace("exit");
}
}
}

View File

@@ -0,0 +1,39 @@
package tests
{
public class TestForXml
{
public function run() : *
{
var name:String = "ahoj";
var myXML:XML=<order id="604">
<book isbn="12345">
<title>{name}</title>
</book>
</order>;
var k:* = null;
var len:int = 5;
var a:int = 5;
var b:int = 6;
for (var i:int = 0; i < len; k=myXML.book.(@isbn="12345"))
{
var c:int = 1;
if (c == 2)
trace("A")
else if (c == 3)
trace("B")
else
continue;
trace("C")
}
}
}
}