From 9809078524bd3bd40fbf7aa411f6e0dca02fd009 Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 25 Feb 2015 22:42:34 -0500 Subject: fixed lots of issues with inner class reconstruction, particularly for inner class trees also fixed lots of issues with reading jars that aren't Minecraft. =P --- test/cuchaz/enigma/TestDeobfed.java | 79 +++++++++++++++++++++++++++++ test/cuchaz/enigma/TestJarIndexDeobfed.java | 52 ------------------- 2 files changed, 79 insertions(+), 52 deletions(-) create mode 100644 test/cuchaz/enigma/TestDeobfed.java delete mode 100644 test/cuchaz/enigma/TestJarIndexDeobfed.java (limited to 'test/cuchaz') diff --git a/test/cuchaz/enigma/TestDeobfed.java b/test/cuchaz/enigma/TestDeobfed.java new file mode 100644 index 0000000..3c2ae51 --- /dev/null +++ b/test/cuchaz/enigma/TestDeobfed.java @@ -0,0 +1,79 @@ +package cuchaz.enigma; + + +import static cuchaz.enigma.TestEntryFactory.*; +import static org.hamcrest.MatcherAssert.*; +import static org.hamcrest.Matchers.*; + +import java.util.jar.JarFile; + +import org.junit.BeforeClass; +import org.junit.Test; + +import cuchaz.enigma.analysis.JarIndex; + + +public class TestDeobfed { + + private static JarFile m_jar; + private static JarIndex m_index; + + @BeforeClass + public static void beforeClass() + throws Exception { + m_jar = new JarFile("build/testTranslation.deobf.jar"); + m_index = new JarIndex(); + m_index.indexJar(m_jar, true); + } + + @Test + public void obfEntries() { + assertThat(m_index.getObfClassEntries(), containsInAnyOrder( + newClass("cuchaz/enigma/inputs/Keep"), + newClass("none/a"), + newClass("none/b"), + newClass("none/c"), + newClass("none/d"), + newClass("none/d$e"), + newClass("none/f"), + newClass("none/g"), + newClass("none/h"), + newClass("none/h$i"), + newClass("none/h$i$j"), + newClass("none/h$k"), + newClass("none/h$k$l"), + newClass("none/m"), + newClass("none/m$n"), + newClass("none/m$n$o"), + newClass("none/m$p"), + newClass("none/m$p$q"), + newClass("none/m$p$q$r"), + newClass("none/m$p$q$s") + )); + } + + @Test + public void decompile() + throws Exception { + Deobfuscator deobfuscator = new Deobfuscator(m_jar); + deobfuscator.getSourceTree("none/a"); + deobfuscator.getSourceTree("none/b"); + deobfuscator.getSourceTree("none/c"); + deobfuscator.getSourceTree("none/d"); + deobfuscator.getSourceTree("none/d$e"); + deobfuscator.getSourceTree("none/f"); + deobfuscator.getSourceTree("none/g"); + deobfuscator.getSourceTree("none/h"); + deobfuscator.getSourceTree("none/h$i"); + deobfuscator.getSourceTree("none/h$i$j"); + deobfuscator.getSourceTree("none/h$k"); + deobfuscator.getSourceTree("none/h$k$l"); + deobfuscator.getSourceTree("none/m"); + deobfuscator.getSourceTree("none/m$n"); + deobfuscator.getSourceTree("none/m$n$o"); + deobfuscator.getSourceTree("none/m$p"); + deobfuscator.getSourceTree("none/m$p$q"); + deobfuscator.getSourceTree("none/m$p$q$r"); + deobfuscator.getSourceTree("none/m$p$q$s"); + } +} diff --git a/test/cuchaz/enigma/TestJarIndexDeobfed.java b/test/cuchaz/enigma/TestJarIndexDeobfed.java deleted file mode 100644 index f776e4f..0000000 --- a/test/cuchaz/enigma/TestJarIndexDeobfed.java +++ /dev/null @@ -1,52 +0,0 @@ -package cuchaz.enigma; - - -import static cuchaz.enigma.TestEntryFactory.*; -import static org.hamcrest.MatcherAssert.*; -import static org.hamcrest.Matchers.*; - -import java.util.jar.JarFile; - -import org.junit.BeforeClass; -import org.junit.Test; - -import cuchaz.enigma.analysis.JarIndex; - - -public class TestJarIndexDeobfed { - - private static JarIndex m_index; - - @BeforeClass - public static void beforeClass() - throws Exception { - m_index = new JarIndex(); - m_index.indexJar(new JarFile("build/testTranslation.deobf.jar"), true); - } - - @Test - public void obfEntries() { - assertThat(m_index.getObfClassEntries(), containsInAnyOrder( - newClass("cuchaz/enigma/inputs/Keep"), - newClass("none/a"), - newClass("none/b"), - newClass("none/c"), - newClass("none/d"), - newClass("none/d$e"), - newClass("none/f"), - newClass("none/g"), - newClass("none/h"), - newClass("none/h$i"), - newClass("none/h$i$j"), - newClass("none/h$k"), - newClass("none/h$k$l"), - newClass("none/m"), - newClass("none/m$n"), - newClass("none/m$n$o"), - newClass("none/m$p"), - newClass("none/m$p$q"), - newClass("none/m$p$q$r"), - newClass("none/m$p$q$s") - )); - } -} -- cgit v1.2.3