diff options
| author | 2015-02-03 22:00:53 -0500 | |
|---|---|---|
| committer | 2015-02-03 22:00:53 -0500 | |
| commit | 52ab426d8fad3dbee7e728f523a35af94facebda (patch) | |
| tree | 146fadfd8e639a909d6c1d6a193e7eddeab0be4a /test/cuchaz/enigma/inputs | |
| download | enigma-fork-52ab426d8fad3dbee7e728f523a35af94facebda.tar.gz enigma-fork-52ab426d8fad3dbee7e728f523a35af94facebda.tar.xz enigma-fork-52ab426d8fad3dbee7e728f523a35af94facebda.zip | |
oops, don't depend on local procyon project
Diffstat (limited to 'test/cuchaz/enigma/inputs')
16 files changed, 289 insertions, 0 deletions
diff --git a/test/cuchaz/enigma/inputs/Keep.java b/test/cuchaz/enigma/inputs/Keep.java new file mode 100644 index 0000000..390e82f --- /dev/null +++ b/test/cuchaz/enigma/inputs/Keep.java | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | package cuchaz.enigma.inputs; | ||
| 2 | |||
| 3 | public class Keep { | ||
| 4 | public static void main(String[] args) { | ||
| 5 | System.out.println("Keep me!"); | ||
| 6 | } | ||
| 7 | } | ||
diff --git a/test/cuchaz/enigma/inputs/constructors/BaseClass.java b/test/cuchaz/enigma/inputs/constructors/BaseClass.java new file mode 100644 index 0000000..9345308 --- /dev/null +++ b/test/cuchaz/enigma/inputs/constructors/BaseClass.java | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | package cuchaz.enigma.inputs.constructors; | ||
| 2 | |||
| 3 | // none/a | ||
| 4 | public class BaseClass { | ||
| 5 | |||
| 6 | // <init>()V | ||
| 7 | public BaseClass() { | ||
| 8 | System.out.println("Default constructor"); | ||
| 9 | } | ||
| 10 | |||
| 11 | // <init>(I)V | ||
| 12 | public BaseClass(int i) { | ||
| 13 | System.out.println("Int constructor " + i); | ||
| 14 | } | ||
| 15 | } | ||
diff --git a/test/cuchaz/enigma/inputs/constructors/Caller.java b/test/cuchaz/enigma/inputs/constructors/Caller.java new file mode 100644 index 0000000..5727875 --- /dev/null +++ b/test/cuchaz/enigma/inputs/constructors/Caller.java | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | package cuchaz.enigma.inputs.constructors; | ||
| 2 | |||
| 3 | // none/b | ||
| 4 | public class Caller { | ||
| 5 | |||
| 6 | // a()V | ||
| 7 | public void callBaseDefault() { | ||
| 8 | // none/a.<init>()V | ||
| 9 | System.out.println(new BaseClass()); | ||
| 10 | } | ||
| 11 | |||
| 12 | // b()V | ||
| 13 | public void callBaseInt() { | ||
| 14 | // none/a.<init>(I)V | ||
| 15 | System.out.println(new BaseClass(5)); | ||
| 16 | } | ||
| 17 | |||
| 18 | // c()V | ||
| 19 | public void callSubDefault() { | ||
| 20 | // none/d.<init>()V | ||
| 21 | System.out.println(new SubClass()); | ||
| 22 | } | ||
| 23 | |||
| 24 | // d()V | ||
| 25 | public void callSubInt() { | ||
| 26 | // none/d.<init>(I)V | ||
| 27 | System.out.println(new SubClass(6)); | ||
| 28 | } | ||
| 29 | |||
| 30 | // e()V | ||
| 31 | public void callSubIntInt() { | ||
| 32 | // none/d.<init>(II)V | ||
| 33 | System.out.println(new SubClass(4, 2)); | ||
| 34 | } | ||
| 35 | |||
| 36 | // f()V | ||
| 37 | public void callSubSubInt() { | ||
| 38 | // none/e.<init>(I)V | ||
| 39 | System.out.println(new SubSubClass(3)); | ||
| 40 | } | ||
| 41 | |||
| 42 | // g()V | ||
| 43 | public void callDefaultConstructable() { | ||
| 44 | // none/c.<init>()V | ||
| 45 | System.out.println(new DefaultConstructable()); | ||
| 46 | } | ||
| 47 | } | ||
diff --git a/test/cuchaz/enigma/inputs/constructors/DefaultConstructable.java b/test/cuchaz/enigma/inputs/constructors/DefaultConstructable.java new file mode 100644 index 0000000..26a3ddb --- /dev/null +++ b/test/cuchaz/enigma/inputs/constructors/DefaultConstructable.java | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | package cuchaz.enigma.inputs.constructors; | ||
| 2 | |||
| 3 | public class DefaultConstructable { | ||
| 4 | // only default constructor | ||
| 5 | } | ||
diff --git a/test/cuchaz/enigma/inputs/constructors/SubClass.java b/test/cuchaz/enigma/inputs/constructors/SubClass.java new file mode 100644 index 0000000..fecfa2b --- /dev/null +++ b/test/cuchaz/enigma/inputs/constructors/SubClass.java | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | package cuchaz.enigma.inputs.constructors; | ||
| 2 | |||
| 3 | // none/d extends none/a | ||
| 4 | public class SubClass extends BaseClass { | ||
| 5 | |||
| 6 | // <init>()V | ||
| 7 | public SubClass() { | ||
| 8 | // none/a.<init>()V | ||
| 9 | } | ||
| 10 | |||
| 11 | // <init>(I)V | ||
| 12 | public SubClass(int num) { | ||
| 13 | // <init>()V | ||
| 14 | this(); | ||
| 15 | System.out.println("SubClass " + num); | ||
| 16 | } | ||
| 17 | |||
| 18 | // <init>(II)V | ||
| 19 | public SubClass(int a, int b) { | ||
| 20 | // <init>(I)V | ||
| 21 | this(a + b); | ||
| 22 | } | ||
| 23 | |||
| 24 | // <init>(III)V | ||
| 25 | public SubClass(int a, int b, int c) { | ||
| 26 | // none/a.<init>()V | ||
| 27 | } | ||
| 28 | } | ||
diff --git a/test/cuchaz/enigma/inputs/constructors/SubSubClass.java b/test/cuchaz/enigma/inputs/constructors/SubSubClass.java new file mode 100644 index 0000000..ab84161 --- /dev/null +++ b/test/cuchaz/enigma/inputs/constructors/SubSubClass.java | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | package cuchaz.enigma.inputs.constructors; | ||
| 2 | |||
| 3 | // none/e extends none/d | ||
| 4 | public class SubSubClass extends SubClass { | ||
| 5 | |||
| 6 | // <init>(I)V | ||
| 7 | public SubSubClass(int i) { | ||
| 8 | // none/c.<init>(I)V | ||
| 9 | super(i); | ||
| 10 | } | ||
| 11 | } | ||
diff --git a/test/cuchaz/enigma/inputs/inheritanceTree/BaseClass.java b/test/cuchaz/enigma/inputs/inheritanceTree/BaseClass.java new file mode 100644 index 0000000..5b416c4 --- /dev/null +++ b/test/cuchaz/enigma/inputs/inheritanceTree/BaseClass.java | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | package cuchaz.enigma.inputs.inheritanceTree; | ||
| 2 | |||
| 3 | // none/a | ||
| 4 | public abstract class BaseClass { | ||
| 5 | |||
| 6 | // a | ||
| 7 | private String m_name; | ||
| 8 | |||
| 9 | // <init>(Ljava/lang/String;)V | ||
| 10 | protected BaseClass(String name) { | ||
| 11 | m_name = name; | ||
| 12 | } | ||
| 13 | |||
| 14 | // a()Ljava/lang/String; | ||
| 15 | public String getName() { | ||
| 16 | return m_name; | ||
| 17 | } | ||
| 18 | |||
| 19 | // a()V | ||
| 20 | public abstract void doBaseThings(); | ||
| 21 | } | ||
diff --git a/test/cuchaz/enigma/inputs/inheritanceTree/SubclassA.java b/test/cuchaz/enigma/inputs/inheritanceTree/SubclassA.java new file mode 100644 index 0000000..7a99d51 --- /dev/null +++ b/test/cuchaz/enigma/inputs/inheritanceTree/SubclassA.java | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | package cuchaz.enigma.inputs.inheritanceTree; | ||
| 2 | |||
| 3 | // none/b extends none/a | ||
| 4 | public abstract class SubclassA extends BaseClass { | ||
| 5 | |||
| 6 | // <init>(Ljava/lang/String;)V | ||
| 7 | protected SubclassA(String name) { | ||
| 8 | // call to none/a.<init>(Ljava/lang/String)V | ||
| 9 | super(name); | ||
| 10 | } | ||
| 11 | } | ||
diff --git a/test/cuchaz/enigma/inputs/inheritanceTree/SubclassB.java b/test/cuchaz/enigma/inputs/inheritanceTree/SubclassB.java new file mode 100644 index 0000000..c9485d3 --- /dev/null +++ b/test/cuchaz/enigma/inputs/inheritanceTree/SubclassB.java | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | package cuchaz.enigma.inputs.inheritanceTree; | ||
| 2 | |||
| 3 | // none/c extends none/a | ||
| 4 | public class SubclassB extends BaseClass { | ||
| 5 | |||
| 6 | // a | ||
| 7 | private int m_numThings; | ||
| 8 | |||
| 9 | // <init>()V | ||
| 10 | protected SubclassB() { | ||
| 11 | // none/a.<init>(Ljava/lang/String;)V | ||
| 12 | super("B"); | ||
| 13 | |||
| 14 | // access to a | ||
| 15 | m_numThings = 4; | ||
| 16 | } | ||
| 17 | |||
| 18 | @Override | ||
| 19 | // a()V | ||
| 20 | public void doBaseThings() { | ||
| 21 | // call to none/a.a()Ljava/lang/String; | ||
| 22 | System.out.println("Base things by B! " + getName()); | ||
| 23 | } | ||
| 24 | |||
| 25 | // b()V | ||
| 26 | public void doBThings() { | ||
| 27 | // access to a | ||
| 28 | System.out.println("" + m_numThings + " B things!"); | ||
| 29 | } | ||
| 30 | } | ||
diff --git a/test/cuchaz/enigma/inputs/inheritanceTree/SubsubclassAA.java b/test/cuchaz/enigma/inputs/inheritanceTree/SubsubclassAA.java new file mode 100644 index 0000000..afd03ac --- /dev/null +++ b/test/cuchaz/enigma/inputs/inheritanceTree/SubsubclassAA.java | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | package cuchaz.enigma.inputs.inheritanceTree; | ||
| 2 | |||
| 3 | // none/d extends none/b | ||
| 4 | public class SubsubclassAA extends SubclassA { | ||
| 5 | |||
| 6 | protected SubsubclassAA() { | ||
| 7 | // call to none/b.<init>(Ljava/lang/String;)V | ||
| 8 | super("AA"); | ||
| 9 | } | ||
| 10 | |||
| 11 | @Override | ||
| 12 | // a()Ljava/lang/String; | ||
| 13 | public String getName() { | ||
| 14 | // call to none/b.a()Ljava/lang/String; | ||
| 15 | return "subsub" + super.getName(); | ||
| 16 | } | ||
| 17 | |||
| 18 | @Override | ||
| 19 | // a()V | ||
| 20 | public void doBaseThings() { | ||
| 21 | // call to none/d.a()Ljava/lang/String; | ||
| 22 | System.out.println("Base things by " + getName()); | ||
| 23 | } | ||
| 24 | } | ||
diff --git a/test/cuchaz/enigma/inputs/innerClasses/A_Anonymous.java b/test/cuchaz/enigma/inputs/innerClasses/A_Anonymous.java new file mode 100644 index 0000000..f7118f6 --- /dev/null +++ b/test/cuchaz/enigma/inputs/innerClasses/A_Anonymous.java | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | package cuchaz.enigma.inputs.innerClasses; | ||
| 2 | |||
| 3 | public class A_Anonymous { | ||
| 4 | |||
| 5 | public void foo() { | ||
| 6 | Runnable runnable = new Runnable() { | ||
| 7 | @Override | ||
| 8 | public void run() { | ||
| 9 | // don't care | ||
| 10 | } | ||
| 11 | }; | ||
| 12 | runnable.run(); | ||
| 13 | } | ||
| 14 | } | ||
diff --git a/test/cuchaz/enigma/inputs/innerClasses/B_AnonymousWithScopeArgs.java b/test/cuchaz/enigma/inputs/innerClasses/B_AnonymousWithScopeArgs.java new file mode 100644 index 0000000..42fba9a --- /dev/null +++ b/test/cuchaz/enigma/inputs/innerClasses/B_AnonymousWithScopeArgs.java | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | package cuchaz.enigma.inputs.innerClasses; | ||
| 2 | |||
| 3 | public class B_AnonymousWithScopeArgs { | ||
| 4 | |||
| 5 | public static void foo(final D_Simple arg) { | ||
| 6 | System.out.println(new Object() { | ||
| 7 | @Override | ||
| 8 | public String toString() { | ||
| 9 | return arg.toString(); | ||
| 10 | } | ||
| 11 | }); | ||
| 12 | } | ||
| 13 | } | ||
diff --git a/test/cuchaz/enigma/inputs/innerClasses/C_ConstructorArgs.java b/test/cuchaz/enigma/inputs/innerClasses/C_ConstructorArgs.java new file mode 100644 index 0000000..8fa6c5b --- /dev/null +++ b/test/cuchaz/enigma/inputs/innerClasses/C_ConstructorArgs.java | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | package cuchaz.enigma.inputs.innerClasses; | ||
| 2 | |||
| 3 | @SuppressWarnings("unused") | ||
| 4 | public class C_ConstructorArgs { | ||
| 5 | |||
| 6 | class Inner { | ||
| 7 | |||
| 8 | private int a; | ||
| 9 | |||
| 10 | public Inner(int a) { | ||
| 11 | this.a = a; | ||
| 12 | } | ||
| 13 | } | ||
| 14 | |||
| 15 | Inner i; | ||
| 16 | |||
| 17 | public void foo() { | ||
| 18 | i = new Inner(5); | ||
| 19 | } | ||
| 20 | } | ||
diff --git a/test/cuchaz/enigma/inputs/innerClasses/D_Simple.java b/test/cuchaz/enigma/inputs/innerClasses/D_Simple.java new file mode 100644 index 0000000..c4fc0ef --- /dev/null +++ b/test/cuchaz/enigma/inputs/innerClasses/D_Simple.java | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | package cuchaz.enigma.inputs.innerClasses; | ||
| 2 | |||
| 3 | public class D_Simple { | ||
| 4 | |||
| 5 | class Inner { | ||
| 6 | // nothing to do | ||
| 7 | } | ||
| 8 | } | ||
diff --git a/test/cuchaz/enigma/inputs/innerClasses/E_AnonymousWithOuterAccess.java b/test/cuchaz/enigma/inputs/innerClasses/E_AnonymousWithOuterAccess.java new file mode 100644 index 0000000..e1de53c --- /dev/null +++ b/test/cuchaz/enigma/inputs/innerClasses/E_AnonymousWithOuterAccess.java | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | package cuchaz.enigma.inputs.innerClasses; | ||
| 2 | |||
| 3 | public class E_AnonymousWithOuterAccess { | ||
| 4 | |||
| 5 | // reproduction of error case documented at: | ||
| 6 | // https://bitbucket.org/cuchaz/enigma/issue/61/stackoverflowerror-when-deobfuscating | ||
| 7 | |||
| 8 | public Object makeInner() { | ||
| 9 | outerMethod(); | ||
| 10 | return new Object() { | ||
| 11 | @Override | ||
| 12 | public String toString() { | ||
| 13 | return outerMethod(); | ||
| 14 | } | ||
| 15 | }; | ||
| 16 | } | ||
| 17 | |||
| 18 | private String outerMethod() { | ||
| 19 | return "foo"; | ||
| 20 | } | ||
| 21 | } | ||
diff --git a/test/cuchaz/enigma/inputs/loneClass/LoneClass.java b/test/cuchaz/enigma/inputs/loneClass/LoneClass.java new file mode 100644 index 0000000..18c716e --- /dev/null +++ b/test/cuchaz/enigma/inputs/loneClass/LoneClass.java | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | package cuchaz.enigma.inputs.loneClass; | ||
| 2 | |||
| 3 | public class LoneClass { | ||
| 4 | |||
| 5 | private String m_name; | ||
| 6 | |||
| 7 | public LoneClass(String name) { | ||
| 8 | m_name = name; | ||
| 9 | } | ||
| 10 | |||
| 11 | public String getName() { | ||
| 12 | return m_name; | ||
| 13 | } | ||
| 14 | } | ||