enhance tests (mostly codegen)
* drop dependency on stdlib/alt-headers in the most tests * assign to myEnvironment at most once in JetLiteFixture * more tests do not compile runtime
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.java.CompilerSpecialMode;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
@@ -31,6 +33,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testPrivateVal() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
final Class aClass = loadImplementationClass(generateClassesInFile(), "PrivateVal");
|
||||
final Field[] fields = aClass.getDeclaredFields();
|
||||
@@ -40,6 +43,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testPrivateVar() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
final Class aClass = loadImplementationClass(generateClassesInFile(), "PrivateVar");
|
||||
final Object instance = aClass.newInstance();
|
||||
@@ -50,6 +54,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testPublicVar() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("class PublicVar() { public var foo : Int = 0; }");
|
||||
final Class aClass = loadImplementationClass(generateClassesInFile(), "PublicVar");
|
||||
final Object instance = aClass.newInstance();
|
||||
@@ -60,6 +65,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testAccessorsInInterface() {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("class AccessorsInInterface() { public var foo : Int = 0; }");
|
||||
final Class aClass = loadClass("AccessorsInInterface", generateClassesInFile());
|
||||
assertNotNull(findMethodByName(aClass, "getFoo"));
|
||||
@@ -67,6 +73,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testPrivatePropertyInNamespace() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("private val x = 239");
|
||||
final Class nsClass = generateNamespaceClass();
|
||||
final Field[] fields = nsClass.getDeclaredFields();
|
||||
@@ -79,6 +86,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testFieldPropertyAccess() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile("properties/fieldPropertyAccess.jet");
|
||||
// System.out.println(generateToText());
|
||||
final Method method = generateFunction();
|
||||
@@ -87,12 +95,14 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testFieldGetter() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("val now: Long get() = System.currentTimeMillis(); fun foo() = now");
|
||||
final Method method = generateFunction("foo");
|
||||
assertIsCurrentTime((Long) method.invoke(null));
|
||||
}
|
||||
|
||||
public void testFieldSetter() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
final Method method = generateFunction("append");
|
||||
method.invoke(null, "IntelliJ ");
|
||||
@@ -104,6 +114,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testFieldSetterPlusEq() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
final Method method = generateFunction("append");
|
||||
method.invoke(null, "IntelliJ ");
|
||||
@@ -112,6 +123,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testAccessorsWithoutBody() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("class AccessorsWithoutBody() { protected var foo: Int = 349\n get\n private set\n fun setter() { foo = 610; } } ");
|
||||
// System.out.println(generateToText());
|
||||
final Class aClass = loadImplementationClass(generateClassesInFile(), "AccessorsWithoutBody");
|
||||
@@ -129,6 +141,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testInitializersForNamespaceProperties() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("val x = System.currentTimeMillis()");
|
||||
final Method method = generateFunction("getX");
|
||||
method.setAccessible(true);
|
||||
@@ -136,6 +149,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testPropertyReceiverOnStack() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadFile();
|
||||
final Class aClass = loadImplementationClass(generateClassesInFile(), "Evaluator");
|
||||
final Constructor constructor = aClass.getConstructor(StringBuilder.class);
|
||||
@@ -147,6 +161,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testAbstractVal() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("abstract class Foo { public abstract val x: String }");
|
||||
final ClassFileFactory codegens = generateClassesInFile();
|
||||
final Class aClass = loadClass("Foo", codegens);
|
||||
@@ -154,6 +169,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testVolatileProperty() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("abstract class Foo { public volatile var x: String = \"\"; }");
|
||||
// System.out.println(generateToText());
|
||||
final ClassFileFactory codegens = generateClassesInFile();
|
||||
@@ -163,15 +179,18 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt257 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt257.jet");
|
||||
// System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt613 () throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt613.jet");
|
||||
}
|
||||
|
||||
public void testKt160() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
loadText("internal val s = java.lang.Double.toString(1.0)");
|
||||
final Method method = generateFunction("getS");
|
||||
method.setAccessible(true);
|
||||
@@ -179,10 +198,12 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt1165() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1165.kt");
|
||||
}
|
||||
|
||||
public void testKt1168() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1168.kt");
|
||||
}
|
||||
|
||||
@@ -192,14 +213,17 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
public void testKt1159() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1159.kt");
|
||||
}
|
||||
|
||||
public void testKt1417() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1417.kt");
|
||||
}
|
||||
|
||||
public void testKt1398() throws Exception {
|
||||
createEnvironmentWithMockJdk(CompilerSpecialMode.JDK_HEADERS);
|
||||
blackBoxFile("regressions/kt1398.kt");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user