[java-decompiler] test data cleanup; warnings

master
Roman Shevchenko 9 years ago
parent 1359577355
commit 93a39b7b50
  1. 10
      test/org/jetbrains/java/decompiler/DecompilerTestFixture.java
  2. 6
      test/org/jetbrains/java/decompiler/SingleClassesTest.java
  3. BIN
      testData/classes/pkg/TestClassFields$Inner.class
  4. BIN
      testData/classes/pkg/TestClassFields.class
  5. BIN
      testData/classes/pkg/TestInterfaceFields.class
  6. BIN
      testData/classes/pkg/TestInterfaceWithObjectField.class
  7. BIN
      testData/classes/pkg/TestInterfaceWithPrimitiveField.class
  8. BIN
      testData/classes/pkg/TestMutableStaticOtherClass.class
  9. 25
      testData/results/TestClassFields.dec
  10. 9
      testData/results/TestInterfaceFields.dec
  11. 8
      testData/results/TestInterfaceWithObjectField.dec
  12. 6
      testData/results/TestInterfaceWithPrimitiveField.dec
  13. 27
      testData/results/TestMutableStaticOtherClass.dec
  14. 25
      testData/src/pkg/TestClassFields.java
  15. 8
      testData/src/pkg/TestInterfaceFields.java
  16. 13
      testData/src/pkg/TestInterfaceWithObjectField.java
  17. 13
      testData/src/pkg/TestInterfaceWithPrimitiveField.java
  18. 15
      testData/src/pkg/TestMutableStaticOtherClass.java

@ -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);
} }

@ -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

@ -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;
} }
} }

@ -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;
}
}
Loading…
Cancel
Save