From cb22a55b241714a56f78b9c6ee863f0a37bbf005 Mon Sep 17 00:00:00 2001 From: jeff Date: Thu, 5 Feb 2015 23:53:41 -0500 Subject: start some translation tests --- build.py | 1 + src/cuchaz/enigma/mapping/Mappings.java | 23 ------------- test/cuchaz/enigma/TestTranslator.java | 39 +++++++++++++++++++++++ test/cuchaz/enigma/inputs/translation/A.java | 8 +++++ test/cuchaz/enigma/resources/translation.mappings | 4 +++ 5 files changed, 52 insertions(+), 23 deletions(-) create mode 100644 test/cuchaz/enigma/TestTranslator.java create mode 100644 test/cuchaz/enigma/inputs/translation/A.java create mode 100644 test/cuchaz/enigma/resources/translation.mappings diff --git a/build.py b/build.py index 8e37d0f..4729498 100644 --- a/build.py +++ b/build.py @@ -105,6 +105,7 @@ def taskBuildTestJars(): buildTestJar("testConstructors", "cuchaz/enigma/inputs/constructors/*.class") buildTestJar("testInheritanceTree", "cuchaz/enigma/inputs/inheritanceTree/*.class") buildTestJar("testInnerClasses", "cuchaz/enigma/inputs/innerClasses/*.class") + buildTestJar("testTranslation", "cuchaz/enigma/inputs/translation/*.class") def taskBuild(): ssjb.file.delete(DirBuild) diff --git a/src/cuchaz/enigma/mapping/Mappings.java b/src/cuchaz/enigma/mapping/Mappings.java index cc560a8..92134ed 100644 --- a/src/cuchaz/enigma/mapping/Mappings.java +++ b/src/cuchaz/enigma/mapping/Mappings.java @@ -10,20 +10,15 @@ ******************************************************************************/ package cuchaz.enigma.mapping; -import java.io.IOException; -import java.io.InputStream; -import java.io.ObjectInputStream; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Map; import java.util.Set; -import java.util.zip.GZIPInputStream; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import cuchaz.enigma.Util; import cuchaz.enigma.analysis.TranslationIndex; import cuchaz.enigma.mapping.SignatureUpdater.ClassNameUpdater; @@ -50,16 +45,6 @@ public class Mappings implements Serializable { } } - public static Mappings newFromResource(String resource) throws IOException { - InputStream in = null; - try { - in = Mappings.class.getResourceAsStream(resource); - return newFromStream(in); - } finally { - Util.closeQuietly(in); - } - } - public Collection classes() { assert (m_classesByObf.size() >= m_classesByDeobf.size()); return m_classesByObf.values(); @@ -134,14 +119,6 @@ public class Mappings implements Serializable { } } - public static Mappings newFromStream(InputStream in) throws IOException { - try { - return (Mappings)new ObjectInputStream(new GZIPInputStream(in)).readObject(); - } catch (ClassNotFoundException ex) { - throw new Error(ex); - } - } - @Override public String toString() { StringBuilder buf = new StringBuilder(); diff --git a/test/cuchaz/enigma/TestTranslator.java b/test/cuchaz/enigma/TestTranslator.java new file mode 100644 index 0000000..290f6f0 --- /dev/null +++ b/test/cuchaz/enigma/TestTranslator.java @@ -0,0 +1,39 @@ +package cuchaz.enigma; + +import static cuchaz.enigma.EntryFactory.*; +import static org.hamcrest.MatcherAssert.*; +import static org.hamcrest.Matchers.*; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.jar.JarFile; + +import org.junit.Test; + +import cuchaz.enigma.mapping.Mappings; +import cuchaz.enigma.mapping.MappingsReader; +import cuchaz.enigma.mapping.TranslationDirection; +import cuchaz.enigma.mapping.Translator; + + +public class TestTranslator { + + private Deobfuscator m_deobfuscator; + private Mappings m_mappings; + + public TestTranslator() + throws Exception { + m_deobfuscator = new Deobfuscator(new JarFile("build/testTranslation.obf.jar")); + try (InputStream in = getClass().getResourceAsStream("/cuchaz/enigma/resources/translation.mappings")) { + m_mappings = new MappingsReader().read(new InputStreamReader(in)); + m_deobfuscator.setMappings(m_mappings); + } + } + + @Test + public void deobfuscatingTranslations() + throws Exception { + Translator translator = m_deobfuscator.getTranslator(TranslationDirection.Deobfuscating); + assertThat(translator.translateEntry(newClass("none/a")), is(newClass("deobf/A"))); + } +} diff --git a/test/cuchaz/enigma/inputs/translation/A.java b/test/cuchaz/enigma/inputs/translation/A.java new file mode 100644 index 0000000..b8aaf11 --- /dev/null +++ b/test/cuchaz/enigma/inputs/translation/A.java @@ -0,0 +1,8 @@ +package cuchaz.enigma.inputs.translation; + +public class A { + + public int one; + public float two; + public String three; +} diff --git a/test/cuchaz/enigma/resources/translation.mappings b/test/cuchaz/enigma/resources/translation.mappings new file mode 100644 index 0000000..70755bf --- /dev/null +++ b/test/cuchaz/enigma/resources/translation.mappings @@ -0,0 +1,4 @@ +CLASS none/a deobf/A + FIELD a one + FIELD b two + FIELD c three \ No newline at end of file -- cgit v1.2.3