From 1be6046fc25a0b5032f7cdb3678e83c2261d0d31 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 23 Feb 2016 17:56:28 +0300 Subject: [PATCH] Minor refactorings in legacy codegen tests Use loadFile() + getPrefix() instead of loadFile(String) --- .../{regressions => properties}/kt1846.kt | 0 .../{regressions => properties}/kt2589.kt | 0 .../{regressions => properties}/kt2677.kt | 0 .../kotlin/codegen/ClassGenTest.java | 31 +++++++------ .../kotlin/codegen/ControlStructuresTest.java | 10 ++--- .../GenerateNotNullAssertionsTest.java | 43 +++++++++++-------- .../kotlin/codegen/InnerClassInfoGenTest.java | 9 +++- .../kotlin/codegen/JUnitUsageGenTest.java | 11 ++++- .../kotlin/codegen/PropertyGenTest.java | 10 ++--- 9 files changed, 65 insertions(+), 49 deletions(-) rename compiler/testData/codegen/{regressions => properties}/kt1846.kt (100%) rename compiler/testData/codegen/{regressions => properties}/kt2589.kt (100%) rename compiler/testData/codegen/{regressions => properties}/kt2677.kt (100%) diff --git a/compiler/testData/codegen/regressions/kt1846.kt b/compiler/testData/codegen/properties/kt1846.kt similarity index 100% rename from compiler/testData/codegen/regressions/kt1846.kt rename to compiler/testData/codegen/properties/kt1846.kt diff --git a/compiler/testData/codegen/regressions/kt2589.kt b/compiler/testData/codegen/properties/kt2589.kt similarity index 100% rename from compiler/testData/codegen/regressions/kt2589.kt rename to compiler/testData/codegen/properties/kt2589.kt diff --git a/compiler/testData/codegen/regressions/kt2677.kt b/compiler/testData/codegen/properties/kt2677.kt similarity index 100% rename from compiler/testData/codegen/regressions/kt2677.kt rename to compiler/testData/codegen/properties/kt2677.kt diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ClassGenTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/ClassGenTest.java index a64710dfbb6..3703c9fc7da 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ClassGenTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ClassGenTest.java @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.codegen; +import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.name.SpecialNames; import org.jetbrains.kotlin.test.ConfigurationKind; @@ -27,30 +28,34 @@ import java.util.List; import static org.jetbrains.kotlin.codegen.CodegenTestUtil.findDeclaredMethodByName; public class ClassGenTest extends CodegenTestCase { - @Override protected void setUp() throws Exception { super.setUp(); createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_ONLY); } - public void testPSVMClass() { - loadFile("classes/simpleClass.kt"); + @NotNull + @Override + protected String getPrefix() { + return "classes"; + } + public void testSimpleClass() { + loadFile(); Class aClass = generateClass("SimpleClass"); Method[] methods = aClass.getDeclaredMethods(); // public int SimpleClass.foo() assertEquals(1, methods.length); } - public void testArrayListInheritance() throws Exception { - loadFile("classes/inheritingFromArrayList.kt"); + public void testInheritingFromArrayList() throws Exception { + loadFile(); Class aClass = generateClass("Foo"); assertInstanceOf(aClass.newInstance(), List.class); } public void testDelegationToVal() throws Exception { - loadFile("classes/delegationToVal.kt"); + loadFile(); GeneratedClassLoader loader = generateAndCreateClassLoader(); Class aClass = loader.loadClass("DelegationToValKt"); assertEquals("OK", aClass.getMethod("box").invoke(null)); @@ -82,8 +87,8 @@ public class ClassGenTest extends CodegenTestCase { assertEquals("OKOK", iActingMethod.invoke(test3.getMethod("getActing").invoke(obj))); } - public void testNewInstanceExplicitConstructor() throws Exception { - loadFile("classes/newInstanceDefaultConstructor.kt"); + public void testNewInstanceDefaultConstructor() throws Exception { + loadFile(); Method method = generateFunction("test"); Integer returnValue = (Integer) method.invoke(null); assertEquals(610, returnValue.intValue()); @@ -103,7 +108,7 @@ public class ClassGenTest extends CodegenTestCase { } public void testClassObjectInterface() throws Exception { - loadFile("classes/classObjectInterface.kt"); + loadFile(); Method method = generateFunction(); Object result = method.invoke(null); assertInstanceOf(result, Runnable.class); @@ -132,14 +137,8 @@ public class ClassGenTest extends CodegenTestCase { assertEquals(method.getReturnType().getName(), "java.lang.Void"); } - /* - public void testKt1213() { - // blackBoxFile("regressions/kt1213.kt"); - } - */ - public void testClassObjectIsInnerClass() throws Exception { - loadFile("classes/classObjectIsInnerClass.kt"); + loadFile(); GeneratedClassLoader loader = generateAndCreateClassLoader(); Class a = loader.loadClass("A"); Class companionObject = loader.loadClass("A$" + SpecialNames.DEFAULT_NAME_FOR_COMPANION_OBJECT.asString()); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ControlStructuresTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/ControlStructuresTest.java index 354d877d0a1..b9073a269ec 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ControlStructuresTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ControlStructuresTest.java @@ -53,19 +53,19 @@ public class ControlStructuresTest extends CodegenTestCase { } public void testWhile() throws Exception { - factorialTest("controlStructures/while.kt"); + factorialTest(); } public void testDoWhile() throws Exception { - factorialTest("controlStructures/doWhile.kt"); + factorialTest(); } public void testBreak() throws Exception { - factorialTest("controlStructures/break.kt"); + factorialTest(); } - private void factorialTest(String name) throws Exception { - loadFile(name); + private void factorialTest() throws Exception { + loadFile(); Method main = generateFunction(); assertEquals(6, main.invoke(null, 3)); assertEquals(120, main.invoke(null, 5)); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/GenerateNotNullAssertionsTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/GenerateNotNullAssertionsTest.java index d41499d74f4..ab905ab4d4c 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/GenerateNotNullAssertionsTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/GenerateNotNullAssertionsTest.java @@ -42,9 +42,10 @@ import java.lang.reflect.InvocationTargetException; import static org.jetbrains.kotlin.codegen.CodegenTestUtil.compileJava; public class GenerateNotNullAssertionsTest extends CodegenTestCase { + @NotNull @Override - protected void setUp() throws Exception { - super.setUp(); + protected String getPrefix() { + return "notNullAssertions"; } private void setUpEnvironment(boolean disableCallAssertions, boolean disableParamAssertions, File... extraClassPath) { @@ -57,12 +58,16 @@ public class GenerateNotNullAssertionsTest extends CodegenTestCase { myEnvironment = KotlinCoreEnvironment.createForTests(getTestRootDisposable(), configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES); } + private void loadSource(@NotNull String fileName) { + loadFileByFullPath(KotlinTestUtils.getTestDataPathBase() + "/codegen/" + getPrefix() + "/" + fileName); + } + private void doTestCallAssertions(boolean disableCallAssertions) throws Exception { - File javaClassesTempDirectory = compileJava("notNullAssertions/A.java"); + File javaClassesTempDirectory = compileJava(getPrefix() + "/A.java"); setUpEnvironment(disableCallAssertions, true, javaClassesTempDirectory); - loadFile("notNullAssertions/AssertionChecker.kt"); + loadSource("AssertionChecker.kt"); generateFunction("checkAssertions").invoke(null, !disableCallAssertions); } @@ -77,37 +82,37 @@ public class GenerateNotNullAssertionsTest extends CodegenTestCase { public void testNoAssertionsForKotlinFromSource() throws Exception { setUpEnvironment(false, true); - loadFiles("notNullAssertions/noAssertionsForKotlin.kt", "notNullAssertions/noAssertionsForKotlinMain.kt"); + loadFiles(getPrefix() + "/noAssertionsForKotlin.kt", getPrefix() + "/noAssertionsForKotlinMain.kt"); assertNoIntrinsicsMethodIsCalledInMyClasses(true); } public void testNoAssertionsForKotlinFromBinary() throws Exception { setUpEnvironment(false, true); - loadFile("notNullAssertions/noAssertionsForKotlin.kt"); + loadSource("noAssertionsForKotlin.kt"); OutputFileCollection outputFiles = generateClassesInFile(); File compiledDirectory = new File(FileUtil.getTempDirectory(), "kotlin-classes"); OutputUtilsKt.writeAllTo(outputFiles, compiledDirectory); setUpEnvironment(false, true, compiledDirectory); - loadFile("notNullAssertions/noAssertionsForKotlinMain.kt"); + loadSource("noAssertionsForKotlinMain.kt"); assertNoIntrinsicsMethodIsCalledInMyClasses(false); } public void testGenerateParamAssertions() throws Exception { - File javaClassesTempDirectory = compileJava("notNullAssertions/doGenerateParamAssertions.java"); + File javaClassesTempDirectory = compileJava(getPrefix() + "/doGenerateParamAssertions.java"); setUpEnvironment(true, false, javaClassesTempDirectory); - loadFile("notNullAssertions/doGenerateParamAssertions.kt"); + loadSource("doGenerateParamAssertions.kt"); generateFunction().invoke(null); } public void testDoNotGenerateParamAssertions() throws Exception { setUpEnvironment(true, true); - loadFile("notNullAssertions/doNotGenerateParamAssertions.kt"); + loadSource("doNotGenerateParamAssertions.kt"); assertNoIntrinsicsMethodIsCalled("A", true); } @@ -115,7 +120,7 @@ public class GenerateNotNullAssertionsTest extends CodegenTestCase { public void testNoParamAssertionForPrivateMethod() throws Exception { setUpEnvironment(true, false); - loadFile("notNullAssertions/noAssertionForPrivateMethod.kt"); + loadSource("noAssertionForPrivateMethod.kt"); assertNoIntrinsicsMethodIsCalled("A", true); } @@ -123,7 +128,7 @@ public class GenerateNotNullAssertionsTest extends CodegenTestCase { public void testArrayListGet() { setUpEnvironment(false, false); - loadFile("notNullAssertions/arrayListGet.kt"); + loadSource("arrayListGet.kt"); String text = generateToText(); assertTrue(text.contains("checkExpressionValueIsNotNull")); @@ -131,10 +136,10 @@ public class GenerateNotNullAssertionsTest extends CodegenTestCase { } public void testJavaMultipleSubstitutions() { - File javaClassesTempDirectory = compileJava("notNullAssertions/javaMultipleSubstitutions.java"); + File javaClassesTempDirectory = compileJava(getPrefix() + "/javaMultipleSubstitutions.java"); setUpEnvironment(false, false, javaClassesTempDirectory); - loadFile("notNullAssertions/javaMultipleSubstitutions.kt"); + loadSource("javaMultipleSubstitutions.kt"); String text = generateToText(); assertEquals(3, StringUtil.getOccurrenceCount(text, "checkExpressionValueIsNotNull")); @@ -144,7 +149,7 @@ public class GenerateNotNullAssertionsTest extends CodegenTestCase { public void testAssertionForNotNullTypeParam() { setUpEnvironment(false, false); - loadFile("notNullAssertions/assertionForNotNullTypeParam.kt"); + loadSource("assertionForNotNullTypeParam.kt"); assertTrue(generateToText().contains("checkParameterIsNotNull")); } @@ -152,7 +157,7 @@ public class GenerateNotNullAssertionsTest extends CodegenTestCase { public void testNoAssertionForNullableGenericMethod() { setUpEnvironment(false, true); - loadFile("notNullAssertions/noAssertionForNullableGenericMethod.kt"); + loadSource("noAssertionForNullableGenericMethod.kt"); assertNoIntrinsicsMethodIsCalledInMyClasses(true); } @@ -160,7 +165,7 @@ public class GenerateNotNullAssertionsTest extends CodegenTestCase { public void testNoAssertionForNullableCaptured() { setUpEnvironment(false, true); - loadFile("notNullAssertions/noAssertionForNullableCaptured.kt"); + loadSource("noAssertionForNullableCaptured.kt"); assertNoIntrinsicsMethodIsCalledInMyClasses(true); } @@ -168,7 +173,7 @@ public class GenerateNotNullAssertionsTest extends CodegenTestCase { public void testAssertionForNotNullCaptured() { setUpEnvironment(false, true); - loadFile("notNullAssertions/assertionForNotNullCaptured.kt"); + loadSource("assertionForNotNullCaptured.kt"); assertTrue(generateToText().contains("checkExpressionValueIsNotNull")); } @@ -176,7 +181,7 @@ public class GenerateNotNullAssertionsTest extends CodegenTestCase { public void testNoAssertionForNullableGenericMethodCall() { setUpEnvironment(false, true); - loadFile("notNullAssertions/noAssertionForNullableGenericMethodCall.kt"); + loadSource("noAssertionForNullableGenericMethodCall.kt"); assertNoIntrinsicsMethodIsCalled("A", true); } diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/InnerClassInfoGenTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/InnerClassInfoGenTest.java index 39d45d334b4..cf72df85860 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/InnerClassInfoGenTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/InnerClassInfoGenTest.java @@ -38,9 +38,14 @@ public class InnerClassInfoGenTest extends CodegenTestCase { @Override protected void setUp() throws Exception { super.setUp(); - createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_ONLY); - loadFile("innerClassInfo/" + getTestName(true) + ".kt"); + loadFile(); + } + + @NotNull + @Override + protected String getPrefix() { + return "innerClassInfo"; } public void testInnerClassInfo() { diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/JUnitUsageGenTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/JUnitUsageGenTest.java index d434b0d8ed7..3dbcecd8480 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/JUnitUsageGenTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/JUnitUsageGenTest.java @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.codegen; +import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; import org.jetbrains.kotlin.test.ConfigurationKind; @@ -43,13 +44,19 @@ public class JUnitUsageGenTest extends CodegenTestCase { EnvironmentConfigFiles.JVM_CONFIG_FILES); } + @NotNull + @Override + protected String getPrefix() { + return "junit"; + } + public void testKt2344() throws Exception { - loadFile("junit/kt2344.kt"); + loadFile(); generateFunction().invoke(null); } public void testKt1592() throws Exception { - loadFile("junit/kt1592.kt"); + loadFile(); Class packageClass = generateFacadeClass(); Method method = packageClass.getMethod("foo", Method.class); method.setAccessible(true); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/PropertyGenTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/PropertyGenTest.java index 090305f7fc9..7293f9c408a 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/PropertyGenTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/PropertyGenTest.java @@ -84,7 +84,7 @@ public class PropertyGenTest extends CodegenTestCase { } public void testFieldPropertyAccess() throws Exception { - loadFile("properties/fieldPropertyAccess.kt"); + loadFile(); Method method = generateFunction("increment"); assertEquals(1, method.invoke(null)); assertEquals(2, method.invoke(null)); @@ -157,7 +157,7 @@ public class PropertyGenTest extends CodegenTestCase { } public void testKt1846() { - loadFile("regressions/kt1846.kt"); + loadFile(); Class aClass = generateClass("A"); try { aClass.getMethod("getV1"); @@ -177,7 +177,7 @@ public class PropertyGenTest extends CodegenTestCase { } public void testKt2589() throws Exception { - loadFile("regressions/kt2589.kt"); + loadFile(); Class aClass = generateClass("Foo"); assertTrue((aClass.getModifiers() & Opcodes.ACC_FINAL) == 0); @@ -199,7 +199,7 @@ public class PropertyGenTest extends CodegenTestCase { } public void testKt2677() throws Exception { - loadFile("regressions/kt2677.kt"); + loadFile(); Class derived = generateClass("DerivedWeatherReport"); Class weatherReport = derived.getSuperclass(); @@ -232,7 +232,7 @@ public class PropertyGenTest extends CodegenTestCase { } public void testPrivateClassPropertyAccessors() throws Exception { - loadFile("properties/privateClassPropertyAccessors.kt"); + loadFile(); Class c = generateClass("C"); findDeclaredMethodByName(c, "getValWithGet"); findDeclaredMethodByName(c, "getVarWithGetSet");