summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jeff2014-09-05 01:15:43 -0400
committerGravatar jeff2014-09-05 01:15:43 -0400
commite70573589c092b0d2474fa745b1346379cf8767b (patch)
treef8af934e5ef2efad73a3ad6e74ce6d0a55caf028
parentfixed spelling error in error message (lol) (diff)
downloadenigma-fork-e70573589c092b0d2474fa745b1346379cf8767b.tar.gz
enigma-fork-e70573589c092b0d2474fa745b1346379cf8767b.tar.xz
enigma-fork-e70573589c092b0d2474fa745b1346379cf8767b.zip
added proguard to the gradle config to create obfuscated jars for testing
added simple tests for the deobufscator class
-rw-r--r--build.gradle65
-rw-r--r--test/cuchaz/enigma/TestDeobfuscator.java51
-rw-r--r--test/cuchaz/enigma/inputs/Keep.java9
-rw-r--r--test/cuchaz/enigma/inputs/LoneClass.java16
4 files changed, 113 insertions, 28 deletions
diff --git a/build.gradle b/build.gradle
index 7409f93..4fd004f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,8 @@ buildscript {
5 } 5 }
6 6
7 dependencies { 7 dependencies {
8 classpath 'eu.appsatori:gradle-fatjar-plugin:0.2-rc1' 8 classpath "eu.appsatori:gradle-fatjar-plugin:0.2-rc1"
9 classpath "net.sf.proguard:proguard-gradle:5.0"
9 } 10 }
10} 11}
11 12
@@ -19,41 +20,29 @@ targetCompatibility = 1.7
19 20
20group = "com.cuchazinteractive" 21group = "com.cuchazinteractive"
21archivesBaseName = "enigma" 22archivesBaseName = "enigma"
22version = "0.5b" 23version = "0.5.1b"
23 24
24sourceSets 25sourceSets {
25{ 26 main {
26 main 27 java {
27 {
28 java
29 {
30 srcDir "src" 28 srcDir "src"
31 } 29 }
32 resources 30 resources {
33 {
34 srcDir "conf" 31 srcDir "conf"
35 } 32 }
36 } 33 }
37 test 34 test {
38 { 35 java {
39 java
40 {
41 srcDir "test" 36 srcDir "test"
42 } 37 }
43 resources
44 {
45 srcDir "conf"
46 }
47 } 38 }
48} 39}
49 40
50repositories 41repositories {
51{
52 mavenCentral() 42 mavenCentral()
53} 43}
54 44
55dependencies 45dependencies {
56{
57 compile fileTree( dir: "libs", include: "*.jar" ) 46 compile fileTree( dir: "libs", include: "*.jar" )
58 compile "de.sciss:jsyntaxpane:1.0.0" 47 compile "de.sciss:jsyntaxpane:1.0.0"
59 compile "com.google.guava:guava:17.0" 48 compile "com.google.guava:guava:17.0"
@@ -62,13 +51,11 @@ dependencies
62 testCompile "junit:junit:4.11" 51 testCompile "junit:junit:4.11"
63} 52}
64 53
65fatJar 54fatJar {
66{ 55 from( "." ) {
67 from ".", { 56 include( "*.txt" )
68 include "*.txt"
69 } 57 }
70 manifest 58 manifest {
71 {
72 attributes( 59 attributes(
73 "Title": archivesBaseName, 60 "Title": archivesBaseName,
74 "Manifest-Version": "1.0", 61 "Manifest-Version": "1.0",
@@ -77,3 +64,25 @@ fatJar
77 ) 64 )
78 } 65 }
79} 66}
67
68task jarTestCases( type: Jar ) {
69 from( sourceSets.test.output ) {
70 include( "cuchaz/enigma/inputs/**" )
71 }
72 archiveName( "testCases.jar" )
73}
74
75task obfTestCases( type: proguard.gradle.ProGuardTask ) {
76 dependsOn jarTestCases
77
78 injars( "build/libs/testCases.jar" )
79 outjars( "build/libs/testCases.obf.jar" )
80
81 libraryjars( "${System.getProperty('java.home')}/lib/rt.jar" )
82 overloadaggressively
83 repackageclasses
84 allowaccessmodification
85
86 keep( "class cuchaz.enigma.inputs.Keep" )
87 dontshrink
88} \ No newline at end of file
diff --git a/test/cuchaz/enigma/TestDeobfuscator.java b/test/cuchaz/enigma/TestDeobfuscator.java
new file mode 100644
index 0000000..3310fbc
--- /dev/null
+++ b/test/cuchaz/enigma/TestDeobfuscator.java
@@ -0,0 +1,51 @@
1package cuchaz.enigma;
2
3import static org.junit.Assert.*;
4
5import java.io.File;
6import java.io.IOException;
7import java.util.List;
8
9import org.junit.Test;
10
11import com.beust.jcommander.internal.Lists;
12
13import cuchaz.enigma.mapping.ClassEntry;
14
15public class TestDeobfuscator
16{
17 private Deobfuscator getDeobfuscator( )
18 throws IOException
19 {
20 return new Deobfuscator( new File( "build/libs/testCases.obf.jar" ) );
21 }
22
23 @Test
24 public void loadJar( )
25 throws Exception
26 {
27 getDeobfuscator();
28 }
29
30 @Test
31 public void getClasses( )
32 throws Exception
33 {
34 Deobfuscator deobfuscator = getDeobfuscator();
35 List<ClassEntry> obfClasses = Lists.newArrayList();
36 List<ClassEntry> deobfClasses = Lists.newArrayList();
37 deobfuscator.getSeparatedClasses( obfClasses, deobfClasses );
38 assertEquals( 1, obfClasses.size() );
39 assertEquals( "none/a", obfClasses.get( 0 ).getName() );
40 assertEquals( 1, deobfClasses.size() );
41 assertEquals( "cuchaz/enigma/inputs/Keep", deobfClasses.get( 0 ).getName() );
42 }
43
44 @Test
45 public void decompileClass( )
46 throws Exception
47 {
48 Deobfuscator deobfuscator = getDeobfuscator();
49 deobfuscator.getSource( deobfuscator.getSourceTree( "none/a" ) );
50 }
51}
diff --git a/test/cuchaz/enigma/inputs/Keep.java b/test/cuchaz/enigma/inputs/Keep.java
new file mode 100644
index 0000000..3c12bae
--- /dev/null
+++ b/test/cuchaz/enigma/inputs/Keep.java
@@ -0,0 +1,9 @@
1package cuchaz.enigma.inputs;
2
3public class Keep
4{
5 public static void main( String[] args )
6 {
7 System.out.println( "Keep me!" );
8 }
9}
diff --git a/test/cuchaz/enigma/inputs/LoneClass.java b/test/cuchaz/enigma/inputs/LoneClass.java
new file mode 100644
index 0000000..a3d8cde
--- /dev/null
+++ b/test/cuchaz/enigma/inputs/LoneClass.java
@@ -0,0 +1,16 @@
1package cuchaz.enigma.inputs;
2
3public class LoneClass
4{
5 private String m_name;
6
7 public LoneClass( String name )
8 {
9 m_name = name;
10 }
11
12 public String getName( )
13 {
14 return m_name;
15 }
16}