mirror of
https://github.com/moparisthebest/fernflower
synced 2024-11-23 09:42:18 -05:00
Unit tests updated
This commit is contained in:
parent
04b5c9abb1
commit
887c093afd
@ -63,18 +63,24 @@ public class TestSingleClasses {
|
|||||||
String file_java_name = file_name+".java";
|
String file_java_name = file_name+".java";
|
||||||
|
|
||||||
File reference_file = new File(current_path + "/test/unit/results/" + file_name + ".dec");
|
File reference_file = new File(current_path + "/test/unit/results/" + file_name + ".dec");
|
||||||
|
if(!reference_file.exists()) {
|
||||||
|
return; // no reference file for some reason, not yet created
|
||||||
|
}
|
||||||
|
|
||||||
File temp_dir = new File(Files.createTempDirectory("tempdec_"+file_name).toString());
|
File temp_dir = new File(Files.createTempDirectory("tempdec_"+file_name).toString());
|
||||||
|
|
||||||
// decompile it
|
// decompile it
|
||||||
decompiler.decompileContext(temp_dir);
|
decompiler.decompileContext(temp_dir);
|
||||||
|
|
||||||
// get both the decompiled file content and the reference
|
// get both the decompiled file content and the reference
|
||||||
// NOTE: reference files are saved with Windows-style line endings. Convert them if you are decompiling to Unix.
|
// NOTE: reference files are saved with Windows-style line endings. Convert them if you are decompiling to Unix.
|
||||||
String decompiled_content = new String(Files.readAllBytes(new File(temp_dir, file_java_name).toPath()), "UTF-8");
|
File decompiled_file = new File(temp_dir, file_java_name);
|
||||||
|
String decompiled_content = new String(Files.readAllBytes(decompiled_file.toPath()), "UTF-8");
|
||||||
String reference_content = new String(Files.readAllBytes(reference_file.toPath()), "UTF-8");
|
String reference_content = new String(Files.readAllBytes(reference_file.toPath()), "UTF-8");
|
||||||
|
|
||||||
// clean up
|
// clean up
|
||||||
//temp_dir.delete();
|
decompiled_file.delete();
|
||||||
|
temp_dir.delete();
|
||||||
|
|
||||||
// compare file content with the reference
|
// compare file content with the reference
|
||||||
assertEquals(decompiled_content, reference_content);
|
assertEquals(decompiled_content, reference_content);
|
||||||
|
@ -1,10 +1,19 @@
|
|||||||
package test.input;
|
package unit.classes;
|
||||||
|
|
||||||
public class TestLoop {
|
public class TestClassLoop {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void testSimpleInfinite() {
|
||||||
|
|
||||||
boolean a = true;
|
while(true) {
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void testFinally() {
|
||||||
|
|
||||||
|
boolean a = (Math.random() > 0);
|
||||||
|
|
||||||
while(true) {
|
while(true) {
|
||||||
try {
|
try {
|
||||||
if(!a) {
|
if(!a) {
|
||||||
@ -16,5 +25,24 @@ public class TestLoop {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void testFinallyContinue() {
|
||||||
|
|
||||||
|
boolean a = (Math.random() > 0);
|
||||||
|
|
||||||
|
for(;;) {
|
||||||
|
try {
|
||||||
|
System.out.println("1");
|
||||||
|
} finally {
|
||||||
|
if(a) {
|
||||||
|
System.out.println("3");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("4");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
16
test/unit/classes/TestClassSwitch.java
Normal file
16
test/unit/classes/TestClassSwitch.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package unit.classes;
|
||||||
|
|
||||||
|
public class TestClassSwitch {
|
||||||
|
|
||||||
|
public void testCaseOrder(int a) {
|
||||||
|
|
||||||
|
switch(a) {
|
||||||
|
case 13:
|
||||||
|
System.out.println(13);
|
||||||
|
return;
|
||||||
|
case 5:
|
||||||
|
System.out.println(5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
21
test/unit/classes/TestClassTypes.java
Normal file
21
test/unit/classes/TestClassTypes.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package unit.classes;
|
||||||
|
|
||||||
|
public class TestClassTypes {
|
||||||
|
|
||||||
|
public void testBoolean() {
|
||||||
|
|
||||||
|
byte var7 = 0;
|
||||||
|
long time = System.currentTimeMillis();
|
||||||
|
|
||||||
|
if(time % 2 > 0) {
|
||||||
|
var7 = 1;
|
||||||
|
} else if(time % 3 > 0) {
|
||||||
|
var7 = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(var7 == 1) {
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -3,6 +3,12 @@ package unit.classes;
|
|||||||
|
|
||||||
public class TestClassLoop {
|
public class TestClassLoop {
|
||||||
|
|
||||||
|
public static void testSimpleInfinite() {
|
||||||
|
while(true) {
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void testFinally() {
|
public static void testFinally() {
|
||||||
boolean var0 = Math.random() > 0.0D;
|
boolean var0 = Math.random() > 0.0D;
|
||||||
|
|
||||||
|
16
test/unit/results/TestClassSwitch.dec
Normal file
16
test/unit/results/TestClassSwitch.dec
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package unit.classes;
|
||||||
|
|
||||||
|
|
||||||
|
public class TestClassSwitch {
|
||||||
|
|
||||||
|
public void testCaseOrder(int var1) {
|
||||||
|
switch(var1) {
|
||||||
|
case 5:
|
||||||
|
System.out.println(5);
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
case 13:
|
||||||
|
System.out.println(13);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
20
test/unit/results/TestClassTypes.dec
Normal file
20
test/unit/results/TestClassTypes.dec
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package unit.classes;
|
||||||
|
|
||||||
|
|
||||||
|
public class TestClassTypes {
|
||||||
|
|
||||||
|
public void testBoolean() {
|
||||||
|
byte var1 = 0;
|
||||||
|
long var2 = System.currentTimeMillis();
|
||||||
|
if(var2 % 2L > 0L) {
|
||||||
|
var1 = 1;
|
||||||
|
} else if(var2 % 3L > 0L) {
|
||||||
|
var1 = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(var1 == 1) {
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user