[java-decompiler] test data cleanup; warnings
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2000-2015 JetBrains s.r.o.
|
* Copyright 2000-2016 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -24,6 +24,7 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
@@ -104,13 +105,14 @@ public class DecompilerTestFixture {
|
|||||||
|
|
||||||
public static void assertFilesEqual(File expected, File actual) {
|
public static void assertFilesEqual(File expected, File actual) {
|
||||||
if (expected.isDirectory()) {
|
if (expected.isDirectory()) {
|
||||||
assertThat(actual.list(), Matchers.arrayContainingInAnyOrder(expected.list()));
|
String[] children = Objects.requireNonNull(expected.list());
|
||||||
for (String name : expected.list()) {
|
assertThat(actual.list(), Matchers.arrayContainingInAnyOrder(children));
|
||||||
|
for (String name : children) {
|
||||||
assertFilesEqual(new File(expected, name), new File(actual, name));
|
assertFilesEqual(new File(expected, name), new File(actual, name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
assertThat(getContent(actual), Matchers.equalTo(getContent(expected)));
|
assertEquals(getContent(expected), getContent(actual));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ public class SingleClassesTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testClassFields() { doTest("pkg/TestClassFields"); }
|
@Test public void testClassFields() { doTest("pkg/TestClassFields"); }
|
||||||
|
@Test public void testInterfaceFields() { doTest("pkg/TestInterfaceFields"); }
|
||||||
@Test public void testClassLambda() { doTest("pkg/TestClassLambda"); }
|
@Test public void testClassLambda() { doTest("pkg/TestClassLambda"); }
|
||||||
@Test public void testClassLoop() { doTest("pkg/TestClassLoop"); }
|
@Test public void testClassLoop() { doTest("pkg/TestClassLoop"); }
|
||||||
@Test public void testClassSwitch() { doTest("pkg/TestClassSwitch"); }
|
@Test public void testClassSwitch() { doTest("pkg/TestClassSwitch"); }
|
||||||
@@ -83,9 +84,6 @@ public class SingleClassesTest {
|
|||||||
@Test public void testMethodReferenceLetterClass() { doTest("pkg/TestMethodReferenceLetterClass"); }
|
@Test public void testMethodReferenceLetterClass() { doTest("pkg/TestMethodReferenceLetterClass"); }
|
||||||
@Test public void testMemberAnnotations() { doTest("pkg/TestMemberAnnotations"); }
|
@Test public void testMemberAnnotations() { doTest("pkg/TestMemberAnnotations"); }
|
||||||
@Test public void testStaticNameClash() { doTest("pkg/TestStaticNameClash"); }
|
@Test public void testStaticNameClash() { doTest("pkg/TestStaticNameClash"); }
|
||||||
@Test public void testInterfaceWithPrimitiveField() { doTest("pkg/TestInterfaceWithPrimitiveField"); }
|
|
||||||
@Test public void testInterfaceWithObjectField() { doTest("pkg/TestInterfaceWithObjectField"); }
|
|
||||||
@Test public void testTestMutableStaticOtherClass() { doTest("pkg/TestMutableStaticOtherClass"); }
|
|
||||||
|
|
||||||
protected void doTest(String testFile, String... companionFiles) {
|
protected void doTest(String testFile, String... companionFiles) {
|
||||||
ConsoleDecompiler decompiler = fixture.getDecompiler();
|
ConsoleDecompiler decompiler = fixture.getDecompiler();
|
||||||
@@ -110,7 +108,7 @@ public class SingleClassesTest {
|
|||||||
File decompiledFile = new File(fixture.getTargetDir(), testName + ".java");
|
File decompiledFile = new File(fixture.getTargetDir(), testName + ".java");
|
||||||
assertTrue(decompiledFile.isFile());
|
assertTrue(decompiledFile.isFile());
|
||||||
File referenceFile = new File(fixture.getTestDataDir(), "results/" + testName + ".dec");
|
File referenceFile = new File(fixture.getTestDataDir(), "results/" + testName + ".dec");
|
||||||
assertTrue("Expecting " + referenceFile.getAbsolutePath() + " to be a file", referenceFile.isFile());
|
assertTrue(referenceFile.isFile());
|
||||||
assertFilesEqual(referenceFile, decompiledFile);
|
assertFilesEqual(referenceFile, decompiledFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
BIN
testData/classes/pkg/TestClassFields$Inner.class
Normal file
BIN
testData/classes/pkg/TestClassFields$Inner.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
testData/classes/pkg/TestInterfaceFields.class
Normal file
BIN
testData/classes/pkg/TestInterfaceFields.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,26 +1,37 @@
|
|||||||
package pkg;
|
package pkg;
|
||||||
|
|
||||||
public class TestClassFields {
|
public class TestClassFields {
|
||||||
static int staticMutable;
|
|
||||||
private static int[] sizes;
|
private static int[] sizes;
|
||||||
private static String[] names = new String[]{"name1", "name2"};
|
private static String[] names = new String[]{"name1", "name2"};
|
||||||
|
private static final int SIZE;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
sizes = new int[names.length];// 27
|
sizes = new int[names.length];// 15
|
||||||
}// 28
|
TestClassFields.Inner.staticMutable = 3;// 17
|
||||||
|
SIZE = TestClassFields.Inner.staticMutable;// 14 18
|
||||||
|
}// 19
|
||||||
|
|
||||||
|
private static class Inner {
|
||||||
|
private static int staticMutable;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class 'pkg/TestClassFields' {
|
class 'pkg/TestClassFields' {
|
||||||
method '<clinit> ()V' {
|
method '<clinit> ()V' {
|
||||||
|
0 10
|
||||||
|
2 9
|
||||||
11 8
|
11 8
|
||||||
14 8
|
14 8
|
||||||
17 8
|
17 8
|
||||||
1a 9
|
1a 9
|
||||||
|
22 10
|
||||||
|
25 11
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Lines mapping:
|
Lines mapping:
|
||||||
27 <-> 9
|
14 <-> 11
|
||||||
28 <-> 10
|
15 <-> 9
|
||||||
Not mapped:
|
17 <-> 10
|
||||||
26
|
18 <-> 11
|
||||||
|
19 <-> 12
|
||||||
|
|||||||
9
testData/results/TestInterfaceFields.dec
Normal file
9
testData/results/TestInterfaceFields.dec
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
package pkg;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public interface TestInterfaceFields {
|
||||||
|
BigDecimal BIG_ZERO = BigDecimal.ZERO;
|
||||||
|
int MAX_BYTE_VALUE = 127;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
package pkg;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
public interface TestInterfaceWithObjectField {
|
|
||||||
BigDecimal BUGS_IN_THE_DECOMPILER = BigDecimal.ZERO;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
package pkg;
|
|
||||||
|
|
||||||
public interface TestInterfaceWithPrimitiveField {
|
|
||||||
int MAX_BYTE_VALUE = 127;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
package pkg;
|
|
||||||
|
|
||||||
import pkg.TestClassFields;
|
|
||||||
|
|
||||||
public class TestMutableStaticOtherClass {
|
|
||||||
private static final int SIZE;
|
|
||||||
|
|
||||||
static {
|
|
||||||
TestClassFields.staticMutable = 3;// 12
|
|
||||||
SIZE = TestClassFields.staticMutable;// 13
|
|
||||||
}// 14
|
|
||||||
}
|
|
||||||
|
|
||||||
class 'pkg/TestMutableStaticOtherClass' {
|
|
||||||
method '<clinit> ()V' {
|
|
||||||
0 8
|
|
||||||
1 8
|
|
||||||
4 9
|
|
||||||
7 9
|
|
||||||
a 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Lines mapping:
|
|
||||||
12 <-> 9
|
|
||||||
13 <-> 10
|
|
||||||
14 <-> 11
|
|
||||||
@@ -1,29 +1,20 @@
|
|||||||
/*
|
|
||||||
* Copyright 2000-2014 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package pkg;
|
package pkg;
|
||||||
|
|
||||||
public class TestClassFields {
|
public class TestClassFields {
|
||||||
|
private static class Inner {
|
||||||
|
private static int staticMutable;
|
||||||
|
}
|
||||||
|
|
||||||
static int staticMutable;
|
|
||||||
private static int[] sizes;
|
private static int[] sizes;
|
||||||
private static String[] names;
|
private static String[] names;
|
||||||
|
|
||||||
static {
|
private static final int SIZE;
|
||||||
|
|
||||||
|
static {
|
||||||
names = new String[]{"name1", "name2"};
|
names = new String[]{"name1", "name2"};
|
||||||
sizes = new int[names.length];
|
sizes = new int[names.length];
|
||||||
|
|
||||||
|
Inner.staticMutable = 3;
|
||||||
|
SIZE = Inner.staticMutable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
8
testData/src/pkg/TestInterfaceFields.java
Normal file
8
testData/src/pkg/TestInterfaceFields.java
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
package pkg;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public interface TestInterfaceFields {
|
||||||
|
BigDecimal BIG_ZERO = BigDecimal.ZERO;
|
||||||
|
int MAX_BYTE_VALUE = Byte.MAX_VALUE;
|
||||||
|
}
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
package pkg;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Alexandru-Constantin Bledea
|
|
||||||
* @since March 06, 2016
|
|
||||||
*/
|
|
||||||
public interface TestInterfaceWithObjectField {
|
|
||||||
|
|
||||||
BigDecimal BUGS_IN_THE_DECOMPILER = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
package pkg;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Alexandru-Constantin Bledea
|
|
||||||
* @since March 06, 2016
|
|
||||||
*/
|
|
||||||
public interface TestInterfaceWithPrimitiveField {
|
|
||||||
|
|
||||||
int MAX_BYTE_VALUE = Byte.MAX_VALUE;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
package pkg;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Alexandru-Constantin Bledea
|
|
||||||
* @since March 17, 2016
|
|
||||||
*/
|
|
||||||
public class TestMutableStaticOtherClass {
|
|
||||||
|
|
||||||
private static final int SIZE;
|
|
||||||
|
|
||||||
static {
|
|
||||||
TestClassFields.staticMutable = 3;
|
|
||||||
SIZE = TestClassFields.staticMutable;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user