summaryrefslogtreecommitdiff
path: root/src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java
diff options
context:
space:
mode:
authorGravatar gegy10002018-05-19 17:02:46 +0200
committerGravatar gegy10002018-05-19 17:02:46 +0200
commit2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021 (patch)
tree14c8b1e806449ace1641a1dbafae162855f79670 /src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java
parentFix build (diff)
downloadenigma-fork-2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021.tar.gz
enigma-fork-2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021.tar.xz
enigma-fork-2b2249e873c4adfd2dd6e8f1f2489ccd9f6aa021.zip
Initial port to ASM
Diffstat (limited to 'src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java')
-rw-r--r--src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java111
1 files changed, 51 insertions, 60 deletions
diff --git a/src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java b/src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java
index 6246978..d1c8596 100644
--- a/src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java
+++ b/src/test/java/cuchaz/enigma/TestJarIndexInheritanceTree.java
@@ -11,14 +11,8 @@
11 11
12package cuchaz.enigma; 12package cuchaz.enigma;
13 13
14import cuchaz.enigma.analysis.Access; 14import cuchaz.enigma.analysis.*;
15import cuchaz.enigma.analysis.EntryReference; 15import cuchaz.enigma.mapping.*;
16import cuchaz.enigma.analysis.JarIndex;
17import cuchaz.enigma.analysis.TranslationIndex;
18import cuchaz.enigma.mapping.BehaviorEntry;
19import cuchaz.enigma.mapping.ClassEntry;
20import cuchaz.enigma.mapping.FieldEntry;
21import cuchaz.enigma.mapping.MethodEntry;
22import org.junit.Test; 16import org.junit.Test;
23 17
24import java.util.Collection; 18import java.util.Collection;
@@ -27,10 +21,7 @@ import java.util.jar.JarFile;
27 21
28import static cuchaz.enigma.TestEntryFactory.*; 22import static cuchaz.enigma.TestEntryFactory.*;
29import static org.hamcrest.MatcherAssert.assertThat; 23import static org.hamcrest.MatcherAssert.assertThat;
30import static org.hamcrest.Matchers.contains; 24import static org.hamcrest.Matchers.*;
31import static org.hamcrest.Matchers.containsInAnyOrder;
32import static org.hamcrest.Matchers.empty;
33import static org.hamcrest.Matchers.is;
34 25
35public class TestJarIndexInheritanceTree { 26public class TestJarIndexInheritanceTree {
36 27
@@ -45,15 +36,15 @@ public class TestJarIndexInheritanceTree {
45 private FieldEntry numThingsField = newField(subClassB, "a", "I"); 36 private FieldEntry numThingsField = newField(subClassB, "a", "I");
46 37
47 public TestJarIndexInheritanceTree() 38 public TestJarIndexInheritanceTree()
48 throws Exception { 39 throws Exception {
49 index = new JarIndex(); 40 index = new JarIndex(new ReferencedEntryPool());
50 index.indexJar(new JarFile("build/test-obf/inheritanceTree.jar"), false); 41 index.indexJar(new ParsedJar(new JarFile("build/test-obf/inheritanceTree.jar")), false);
51 } 42 }
52 43
53 @Test 44 @Test
54 public void obfEntries() { 45 public void obfEntries() {
55 assertThat(index.getObfClassEntries(), containsInAnyOrder( 46 assertThat(index.getObfClassEntries(), containsInAnyOrder(
56 newClass("cuchaz/enigma/inputs/Keep"), baseClass, subClassA, subClassAA, subClassB 47 newClass("cuchaz/enigma/inputs/Keep"), baseClass, subClassA, subClassAA, subClassB
57 )); 48 ));
58 } 49 }
59 50
@@ -98,33 +89,33 @@ public class TestJarIndexInheritanceTree {
98 // getName() 89 // getName()
99 entries = index.getRelatedMethodImplementations(newMethod(baseClass, "a", "()Ljava/lang/String;")); 90 entries = index.getRelatedMethodImplementations(newMethod(baseClass, "a", "()Ljava/lang/String;"));
100 assertThat(entries, containsInAnyOrder( 91 assertThat(entries, containsInAnyOrder(
101 newMethod(baseClass, "a", "()Ljava/lang/String;"), 92 newMethod(baseClass, "a", "()Ljava/lang/String;"),
102 newMethod(subClassAA, "a", "()Ljava/lang/String;") 93 newMethod(subClassAA, "a", "()Ljava/lang/String;")
103 )); 94 ));
104 entries = index.getRelatedMethodImplementations(newMethod(subClassAA, "a", "()Ljava/lang/String;")); 95 entries = index.getRelatedMethodImplementations(newMethod(subClassAA, "a", "()Ljava/lang/String;"));
105 assertThat(entries, containsInAnyOrder( 96 assertThat(entries, containsInAnyOrder(
106 newMethod(baseClass, "a", "()Ljava/lang/String;"), 97 newMethod(baseClass, "a", "()Ljava/lang/String;"),
107 newMethod(subClassAA, "a", "()Ljava/lang/String;") 98 newMethod(subClassAA, "a", "()Ljava/lang/String;")
108 )); 99 ));
109 100
110 // doBaseThings() 101 // doBaseThings()
111 entries = index.getRelatedMethodImplementations(newMethod(baseClass, "a", "()V")); 102 entries = index.getRelatedMethodImplementations(newMethod(baseClass, "a", "()V"));
112 assertThat(entries, containsInAnyOrder( 103 assertThat(entries, containsInAnyOrder(
113 newMethod(baseClass, "a", "()V"), 104 newMethod(baseClass, "a", "()V"),
114 newMethod(subClassAA, "a", "()V"), 105 newMethod(subClassAA, "a", "()V"),
115 newMethod(subClassB, "a", "()V") 106 newMethod(subClassB, "a", "()V")
116 )); 107 ));
117 entries = index.getRelatedMethodImplementations(newMethod(subClassAA, "a", "()V")); 108 entries = index.getRelatedMethodImplementations(newMethod(subClassAA, "a", "()V"));
118 assertThat(entries, containsInAnyOrder( 109 assertThat(entries, containsInAnyOrder(
119 newMethod(baseClass, "a", "()V"), 110 newMethod(baseClass, "a", "()V"),
120 newMethod(subClassAA, "a", "()V"), 111 newMethod(subClassAA, "a", "()V"),
121 newMethod(subClassB, "a", "()V") 112 newMethod(subClassB, "a", "()V")
122 )); 113 ));
123 entries = index.getRelatedMethodImplementations(newMethod(subClassB, "a", "()V")); 114 entries = index.getRelatedMethodImplementations(newMethod(subClassB, "a", "()V"));
124 assertThat(entries, containsInAnyOrder( 115 assertThat(entries, containsInAnyOrder(
125 newMethod(baseClass, "a", "()V"), 116 newMethod(baseClass, "a", "()V"),
126 newMethod(subClassAA, "a", "()V"), 117 newMethod(subClassAA, "a", "()V"),
127 newMethod(subClassB, "a", "()V") 118 newMethod(subClassB, "a", "()V")
128 )); 119 ));
129 120
130 // doBThings 121 // doBThings
@@ -135,20 +126,20 @@ public class TestJarIndexInheritanceTree {
135 @Test 126 @Test
136 @SuppressWarnings("unchecked") 127 @SuppressWarnings("unchecked")
137 public void fieldReferences() { 128 public void fieldReferences() {
138 Collection<EntryReference<FieldEntry, BehaviorEntry>> references; 129 Collection<EntryReference<FieldEntry, MethodDefEntry>> references;
139 130
140 // name 131 // name
141 references = index.getFieldReferences(nameField); 132 references = index.getFieldReferences(nameField);
142 assertThat(references, containsInAnyOrder( 133 assertThat(references, containsInAnyOrder(
143 newFieldReferenceByConstructor(nameField, baseClass.getName(), "(Ljava/lang/String;)V"), 134 newFieldReferenceByMethod(nameField, baseClass.getName(), "<init>", "(Ljava/lang/String;)V"),
144 newFieldReferenceByMethod(nameField, baseClass.getName(), "a", "()Ljava/lang/String;") 135 newFieldReferenceByMethod(nameField, baseClass.getName(), "a", "()Ljava/lang/String;")
145 )); 136 ));
146 137
147 // numThings 138 // numThings
148 references = index.getFieldReferences(numThingsField); 139 references = index.getFieldReferences(numThingsField);
149 assertThat(references, containsInAnyOrder( 140 assertThat(references, containsInAnyOrder(
150 newFieldReferenceByConstructor(numThingsField, subClassB.getName(), "()V"), 141 newFieldReferenceByMethod(numThingsField, subClassB.getName(), "<init>", "()V"),
151 newFieldReferenceByMethod(numThingsField, subClassB.getName(), "b", "()V") 142 newFieldReferenceByMethod(numThingsField, subClassB.getName(), "b", "()V")
152 )); 143 ));
153 } 144 }
154 145
@@ -156,37 +147,37 @@ public class TestJarIndexInheritanceTree {
156 @SuppressWarnings("unchecked") 147 @SuppressWarnings("unchecked")
157 public void behaviorReferences() { 148 public void behaviorReferences() {
158 149
159 BehaviorEntry source; 150 MethodEntry source;
160 Collection<EntryReference<BehaviorEntry, BehaviorEntry>> references; 151 Collection<EntryReference<MethodEntry, MethodDefEntry>> references;
161 152
162 // baseClass constructor 153 // baseClass constructor
163 source = newConstructor(baseClass, "(Ljava/lang/String;)V"); 154 source = newMethod(baseClass, "<init>", "(Ljava/lang/String;)V");
164 references = index.getBehaviorReferences(source); 155 references = index.getMethodReferences(source);
165 assertThat(references, containsInAnyOrder( 156 assertThat(references, containsInAnyOrder(
166 newBehaviorReferenceByConstructor(source, subClassA.getName(), "(Ljava/lang/String;)V"), 157 newBehaviorReferenceByMethod(source, subClassA.getName(), "<init>", "(Ljava/lang/String;)V"),
167 newBehaviorReferenceByConstructor(source, subClassB.getName(), "()V") 158 newBehaviorReferenceByMethod(source, subClassB.getName(), "<init>", "()V")
168 )); 159 ));
169 160
170 // subClassA constructor 161 // subClassA constructor
171 source = newConstructor(subClassA, "(Ljava/lang/String;)V"); 162 source = newMethod(subClassA, "<init>", "(Ljava/lang/String;)V");
172 references = index.getBehaviorReferences(source); 163 references = index.getMethodReferences(source);
173 assertThat(references, containsInAnyOrder( 164 assertThat(references, containsInAnyOrder(
174 newBehaviorReferenceByConstructor(source, subClassAA.getName(), "()V") 165 newBehaviorReferenceByMethod(source, subClassAA.getName(), "<init>", "()V")
175 )); 166 ));
176 167
177 // baseClass.getName() 168 // baseClass.getName()
178 source = newMethod(baseClass, "a", "()Ljava/lang/String;"); 169 source = newMethod(baseClass, "a", "()Ljava/lang/String;");
179 references = index.getBehaviorReferences(source); 170 references = index.getMethodReferences(source);
180 assertThat(references, containsInAnyOrder( 171 assertThat(references, containsInAnyOrder(
181 newBehaviorReferenceByMethod(source, subClassAA.getName(), "a", "()Ljava/lang/String;"), 172 newBehaviorReferenceByMethod(source, subClassAA.getName(), "a", "()Ljava/lang/String;"),
182 newBehaviorReferenceByMethod(source, subClassB.getName(), "a", "()V") 173 newBehaviorReferenceByMethod(source, subClassB.getName(), "a", "()V")
183 )); 174 ));
184 175
185 // subclassAA.getName() 176 // subclassAA.getName()
186 source = newMethod(subClassAA, "a", "()Ljava/lang/String;"); 177 source = newMethod(subClassAA, "a", "()Ljava/lang/String;");
187 references = index.getBehaviorReferences(source); 178 references = index.getMethodReferences(source);
188 assertThat(references, containsInAnyOrder( 179 assertThat(references, containsInAnyOrder(
189 newBehaviorReferenceByMethod(source, subClassAA.getName(), "a", "()V") 180 newBehaviorReferenceByMethod(source, subClassAA.getName(), "a", "()V")
190 )); 181 ));
191 } 182 }
192 183
@@ -205,22 +196,22 @@ public class TestJarIndexInheritanceTree {
205 196
206 // methods 197 // methods
207 // getName() 198 // getName()
208 assertThat(index.containsObfBehavior(newMethod(baseClass, "a", "()Ljava/lang/String;")), is(true)); 199 assertThat(index.containsObfMethod(newMethod(baseClass, "a", "()Ljava/lang/String;")), is(true));
209 assertThat(index.containsObfBehavior(newMethod(subClassA, "a", "()Ljava/lang/String;")), is(false)); 200 assertThat(index.containsObfMethod(newMethod(subClassA, "a", "()Ljava/lang/String;")), is(false));
210 assertThat(index.containsObfBehavior(newMethod(subClassAA, "a", "()Ljava/lang/String;")), is(true)); 201 assertThat(index.containsObfMethod(newMethod(subClassAA, "a", "()Ljava/lang/String;")), is(true));
211 assertThat(index.containsObfBehavior(newMethod(subClassB, "a", "()Ljava/lang/String;")), is(false)); 202 assertThat(index.containsObfMethod(newMethod(subClassB, "a", "()Ljava/lang/String;")), is(false));
212 203
213 // doBaseThings() 204 // doBaseThings()
214 assertThat(index.containsObfBehavior(newMethod(baseClass, "a", "()V")), is(true)); 205 assertThat(index.containsObfMethod(newMethod(baseClass, "a", "()V")), is(true));
215 assertThat(index.containsObfBehavior(newMethod(subClassA, "a", "()V")), is(false)); 206 assertThat(index.containsObfMethod(newMethod(subClassA, "a", "()V")), is(false));
216 assertThat(index.containsObfBehavior(newMethod(subClassAA, "a", "()V")), is(true)); 207 assertThat(index.containsObfMethod(newMethod(subClassAA, "a", "()V")), is(true));
217 assertThat(index.containsObfBehavior(newMethod(subClassB, "a", "()V")), is(true)); 208 assertThat(index.containsObfMethod(newMethod(subClassB, "a", "()V")), is(true));
218 209
219 // doBThings() 210 // doBThings()
220 assertThat(index.containsObfBehavior(newMethod(baseClass, "b", "()V")), is(false)); 211 assertThat(index.containsObfMethod(newMethod(baseClass, "b", "()V")), is(false));
221 assertThat(index.containsObfBehavior(newMethod(subClassA, "b", "()V")), is(false)); 212 assertThat(index.containsObfMethod(newMethod(subClassA, "b", "()V")), is(false));
222 assertThat(index.containsObfBehavior(newMethod(subClassAA, "b", "()V")), is(false)); 213 assertThat(index.containsObfMethod(newMethod(subClassAA, "b", "()V")), is(false));
223 assertThat(index.containsObfBehavior(newMethod(subClassB, "b", "()V")), is(true)); 214 assertThat(index.containsObfMethod(newMethod(subClassB, "b", "()V")), is(true));
224 215
225 } 216 }
226} 217}