Test framework fix: Load kotlin test classes in separate class loader

This commit is contained in:
Mikhael Bogdanov
2013-10-11 13:41:08 +04:00
parent 7d7352954e
commit 6154464050
11 changed files with 118 additions and 30 deletions
@@ -23,6 +23,7 @@ import org.jetbrains.jet.descriptors.serialization.JavaProtoBufUtil;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
import java.lang.annotation.Annotation;
import java.util.Arrays;
import java.util.Set;
@@ -47,10 +48,11 @@ public class KotlinClassAnnotationTest extends CodegenTestCase {
"}\n");
Class aClass = generateClass(NAMESPACE_NAME + "." + CLASS_NAME);
assertTrue(aClass.isAnnotationPresent(KotlinClass.class));
KotlinClass kotlinClass = (KotlinClass) aClass.getAnnotation(KotlinClass.class);
Class<? extends Annotation> annotationClass = getCorrespondingAnnotationClass(KotlinClass.class);
assertTrue(aClass.isAnnotationPresent(annotationClass));
Annotation kotlinClass = aClass.getAnnotation(annotationClass);
ClassData data = JavaProtoBufUtil.readClassDataFrom(kotlinClass.data());
ClassData data = JavaProtoBufUtil.readClassDataFrom((String[]) ClassLoaderIsolationUtil.getAnnotationAttribute(kotlinClass, "data"));
Set<String> callableNames = collectCallableNames(data.getClassProto().getMemberList(), data.getNameResolver());
assertSameElements(Arrays.asList("foo", "bar"), callableNames);