summaryrefslogtreecommitdiff
path: root/test/cuchaz/enigma/inputs
diff options
context:
space:
mode:
authorGravatar jeff2015-02-03 22:00:53 -0500
committerGravatar jeff2015-02-03 22:00:53 -0500
commit52ab426d8fad3dbee7e728f523a35af94facebda (patch)
tree146fadfd8e639a909d6c1d6a193e7eddeab0be4a /test/cuchaz/enigma/inputs
downloadenigma-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')
-rw-r--r--test/cuchaz/enigma/inputs/Keep.java7
-rw-r--r--test/cuchaz/enigma/inputs/constructors/BaseClass.java15
-rw-r--r--test/cuchaz/enigma/inputs/constructors/Caller.java47
-rw-r--r--test/cuchaz/enigma/inputs/constructors/DefaultConstructable.java5
-rw-r--r--test/cuchaz/enigma/inputs/constructors/SubClass.java28
-rw-r--r--test/cuchaz/enigma/inputs/constructors/SubSubClass.java11
-rw-r--r--test/cuchaz/enigma/inputs/inheritanceTree/BaseClass.java21
-rw-r--r--test/cuchaz/enigma/inputs/inheritanceTree/SubclassA.java11
-rw-r--r--test/cuchaz/enigma/inputs/inheritanceTree/SubclassB.java30
-rw-r--r--test/cuchaz/enigma/inputs/inheritanceTree/SubsubclassAA.java24
-rw-r--r--test/cuchaz/enigma/inputs/innerClasses/A_Anonymous.java14
-rw-r--r--test/cuchaz/enigma/inputs/innerClasses/B_AnonymousWithScopeArgs.java13
-rw-r--r--test/cuchaz/enigma/inputs/innerClasses/C_ConstructorArgs.java20
-rw-r--r--test/cuchaz/enigma/inputs/innerClasses/D_Simple.java8
-rw-r--r--test/cuchaz/enigma/inputs/innerClasses/E_AnonymousWithOuterAccess.java21
-rw-r--r--test/cuchaz/enigma/inputs/loneClass/LoneClass.java14
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 @@
1package cuchaz.enigma.inputs;
2
3public 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 @@
1package cuchaz.enigma.inputs.constructors;
2
3// none/a
4public 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 @@
1package cuchaz.enigma.inputs.constructors;
2
3// none/b
4public 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 @@
1package cuchaz.enigma.inputs.constructors;
2
3public 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 @@
1package cuchaz.enigma.inputs.constructors;
2
3// none/d extends none/a
4public 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 @@
1package cuchaz.enigma.inputs.constructors;
2
3// none/e extends none/d
4public 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 @@
1package cuchaz.enigma.inputs.inheritanceTree;
2
3// none/a
4public 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 @@
1package cuchaz.enigma.inputs.inheritanceTree;
2
3// none/b extends none/a
4public 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 @@
1package cuchaz.enigma.inputs.inheritanceTree;
2
3// none/c extends none/a
4public 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 @@
1package cuchaz.enigma.inputs.inheritanceTree;
2
3// none/d extends none/b
4public 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 @@
1package cuchaz.enigma.inputs.innerClasses;
2
3public 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 @@
1package cuchaz.enigma.inputs.innerClasses;
2
3public 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 @@
1package cuchaz.enigma.inputs.innerClasses;
2
3@SuppressWarnings("unused")
4public 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 @@
1package cuchaz.enigma.inputs.innerClasses;
2
3public 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 @@
1package cuchaz.enigma.inputs.innerClasses;
2
3public 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 @@
1package cuchaz.enigma.inputs.loneClass;
2
3public 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}