Renamed NamespaceComparator → RecursiveDescriptorComparator.
This commit is contained in:
+3
-2
@@ -35,7 +35,7 @@ import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||
import org.jetbrains.jet.test.util.NamespaceComparator;
|
||||
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@@ -69,7 +69,8 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
|
||||
NamespaceDescriptor deserialized = serializeAndDeserialize(javaDescriptorResolver, testNamespace);
|
||||
|
||||
NamespaceComparator.validateAndCompareNamespaces(testNamespace, deserialized, NamespaceComparator.RECURSIVE, null);
|
||||
RecursiveDescriptorComparator
|
||||
.validateAndCompareDescriptors(testNamespace, deserialized, RecursiveDescriptorComparator.RECURSIVE, null);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+4
-3
@@ -37,7 +37,7 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
||||
import org.jetbrains.jet.renderer.DescriptorRendererBuilder;
|
||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||
import org.jetbrains.jet.test.util.NamespaceComparator;
|
||||
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
@@ -54,7 +54,7 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
Collection<DeclarationDescriptor> allDescriptors = KotlinBuiltIns.getInstance().getBuiltInsScope().getAllDescriptors();
|
||||
NamespaceDescriptorImpl actualNamespace = getDeserializedDescriptorsAsNamespace(allDescriptors);
|
||||
|
||||
NamespaceComparator.Configuration configuration = NamespaceComparator.RECURSIVE.withRenderer(
|
||||
RecursiveDescriptorComparator.Configuration configuration = RecursiveDescriptorComparator.RECURSIVE.withRenderer(
|
||||
new DescriptorRendererBuilder()
|
||||
.setWithDefinedIn(false)
|
||||
.setExcludedAnnotationClasses(Arrays.asList(new FqName(ExpectedLoadErrorsUtil.ANNOTATION_CLASS_NAME)))
|
||||
@@ -64,7 +64,8 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
.setPrettyFunctionTypes(false)
|
||||
.build()
|
||||
);
|
||||
NamespaceComparator.validateAndCompareNamespaces(KotlinBuiltIns.getInstance().getBuiltInsPackage(), actualNamespace, configuration, null);
|
||||
RecursiveDescriptorComparator
|
||||
.validateAndCompareDescriptors(KotlinBuiltIns.getInstance().getBuiltInsPackage(), actualNamespace, configuration, null);
|
||||
}
|
||||
|
||||
private static NamespaceDescriptorImpl getDeserializedDescriptorsAsNamespace(Collection<DeclarationDescriptor> allDescriptors) {
|
||||
|
||||
@@ -27,13 +27,13 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||
import org.jetbrains.jet.test.TestCaseWithTmpdir;
|
||||
import org.jetbrains.jet.test.util.NamespaceComparator;
|
||||
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import static org.jetbrains.jet.jvm.compiler.LoadDescriptorUtil.TEST_PACKAGE_FQNAME;
|
||||
import static org.jetbrains.jet.jvm.compiler.LoadDescriptorUtil.compileKotlinToDirAndGetAnalyzeExhaust;
|
||||
import static org.jetbrains.jet.test.util.NamespaceComparator.validateAndCompareNamespaces;
|
||||
import static org.jetbrains.jet.test.util.RecursiveDescriptorComparator.validateAndCompareDescriptors;
|
||||
|
||||
/**
|
||||
* Compile Kotlin and then parse model from .class files.
|
||||
@@ -71,11 +71,11 @@ public abstract class AbstractLoadCompiledKotlinTest extends TestCaseWithTmpdir
|
||||
}
|
||||
}
|
||||
|
||||
validateAndCompareNamespaces(namespaceFromSource, namespaceFromClass,
|
||||
NamespaceComparator.DONT_INCLUDE_METHODS_OF_OBJECT
|
||||
.checkPrimaryConstructors(true)
|
||||
.checkPropertyAccessors(includeAccessors),
|
||||
txtFile);
|
||||
validateAndCompareDescriptors(namespaceFromSource, namespaceFromClass,
|
||||
RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT
|
||||
.checkPrimaryConstructors(true)
|
||||
.checkPropertyAccessors(includeAccessors),
|
||||
txtFile);
|
||||
}
|
||||
|
||||
private static void checkUsageOfDeserializedScope(@NotNull NamespaceDescriptor namespaceFromClass) {
|
||||
|
||||
@@ -54,7 +54,7 @@ import java.util.Map;
|
||||
import static org.jetbrains.jet.jvm.compiler.LoadDescriptorUtil.*;
|
||||
import static org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule.INCLUDE_KOTLIN_SOURCES;
|
||||
import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.ALLOW_ERROR_TYPES;
|
||||
import static org.jetbrains.jet.test.util.NamespaceComparator.*;
|
||||
import static org.jetbrains.jet.test.util.RecursiveDescriptorComparator.*;
|
||||
|
||||
/*
|
||||
The generated test compares namespace descriptors loaded from kotlin sources and read from compiled java.
|
||||
@@ -202,7 +202,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
||||
checkForLoadErrorsAndCompare(javaNamespace, bindingContext, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
validateAndCompareNamespaces(kotlinNamespace, javaNamespace, DONT_INCLUDE_METHODS_OF_OBJECT, txtFile);
|
||||
validateAndCompareDescriptors(kotlinNamespace, javaNamespace, DONT_INCLUDE_METHODS_OF_OBJECT, txtFile);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -216,7 +216,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
||||
checkForLoadErrorsAndCompare(javaNamespace, bindingContext, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
validateAndCompareNamespaceWithFile(javaNamespace, configuration, txtFile);
|
||||
validateAndCompareDescriptorWithFile(javaNamespace, configuration, txtFile);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
+6
-5
@@ -33,7 +33,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
|
||||
import org.jetbrains.jet.test.TestCaseWithTmpdir;
|
||||
import org.jetbrains.jet.test.util.DescriptorValidator;
|
||||
import org.jetbrains.jet.test.util.NamespaceComparator;
|
||||
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
||||
import org.jetbrains.jet.utils.ExceptionUtils;
|
||||
|
||||
import java.io.BufferedOutputStream;
|
||||
@@ -45,8 +45,8 @@ import java.util.jar.JarEntry;
|
||||
import java.util.jar.JarFile;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
import static org.jetbrains.jet.test.util.RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile;
|
||||
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isObject;
|
||||
import static org.jetbrains.jet.test.util.NamespaceComparator.validateAndCompareNamespaceWithFile;
|
||||
|
||||
public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
|
||||
public static final String TEST_DATA_PATH = "compiler/testData/compileKotlinAgainstCustomBinaries/";
|
||||
@@ -66,10 +66,11 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
|
||||
|
||||
NamespaceDescriptor namespace = analyzeFileToNamespace(ktFile, extraClassPath);
|
||||
|
||||
NamespaceComparator.Configuration comparator = NamespaceComparator.DONT_INCLUDE_METHODS_OF_OBJECT.withValidationStrategy(
|
||||
DescriptorValidator.ValidationVisitor.ALLOW_ERROR_TYPES);
|
||||
RecursiveDescriptorComparator.Configuration comparator =
|
||||
RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT.withValidationStrategy(
|
||||
DescriptorValidator.ValidationVisitor.ALLOW_ERROR_TYPES);
|
||||
File txtFile = new File(getTestDataDirectory(), FileUtil.getNameWithoutExtension(ktFile) + ".txt");
|
||||
validateAndCompareNamespaceWithFile(namespace, comparator, txtFile);
|
||||
validateAndCompareDescriptorWithFile(namespace, comparator, txtFile);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+3
-3
@@ -31,8 +31,8 @@ import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.jetbrains.jet.test.util.NamespaceComparator.RECURSIVE;
|
||||
import static org.jetbrains.jet.test.util.NamespaceComparator.validateAndCompareNamespaces;
|
||||
import static org.jetbrains.jet.test.util.RecursiveDescriptorComparator.RECURSIVE;
|
||||
import static org.jetbrains.jet.test.util.RecursiveDescriptorComparator.validateAndCompareDescriptors;
|
||||
|
||||
public abstract class AbstractLazyResolveDiagnosticsTest extends AbstractJetDiagnosticsTest {
|
||||
|
||||
@@ -54,7 +54,7 @@ public abstract class AbstractLazyResolveDiagnosticsTest extends AbstractJetDiag
|
||||
// Only recurse into those namespaces mentioned in the files
|
||||
// Otherwise we'll be examining the whole JDK
|
||||
final Set<Name> names = LazyResolveTestUtil.getTopLevelPackagesFromFileList(jetFiles);
|
||||
validateAndCompareNamespaces(
|
||||
validateAndCompareDescriptors(
|
||||
expected, actual,
|
||||
RECURSIVE.filterRecursion(new Predicate<FqNameUnsafe>() {
|
||||
@Override
|
||||
|
||||
+3
-3
@@ -28,7 +28,7 @@ import org.jetbrains.jet.lang.psi.JetPsiFactory;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
import org.jetbrains.jet.test.util.NamespaceComparator;
|
||||
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.io.File;
|
||||
@@ -81,8 +81,8 @@ public abstract class AbstractLazyResolveNamespaceComparingTest extends KotlinTe
|
||||
|
||||
File serializeResultsTo = new File(FileUtil.getNameWithoutExtension(testFileName) + ".txt");
|
||||
|
||||
NamespaceComparator.validateAndCompareNamespaces(
|
||||
expected, actual, NamespaceComparator.DONT_INCLUDE_METHODS_OF_OBJECT.filterRecursion(
|
||||
RecursiveDescriptorComparator.validateAndCompareDescriptors(
|
||||
expected, actual, RecursiveDescriptorComparator.DONT_INCLUDE_METHODS_OF_OBJECT.filterRecursion(
|
||||
new Predicate<FqNameUnsafe>() {
|
||||
@Override
|
||||
public boolean apply(FqNameUnsafe fqName) {
|
||||
|
||||
+3
-3
@@ -23,8 +23,8 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import static org.jetbrains.jet.test.util.NamespaceComparator.RECURSIVE_ALL;
|
||||
import static org.jetbrains.jet.test.util.NamespaceComparator.validateAndCompareNamespaceWithFile;
|
||||
import static org.jetbrains.jet.test.util.RecursiveDescriptorComparator.RECURSIVE_ALL;
|
||||
import static org.jetbrains.jet.test.util.RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile;
|
||||
|
||||
public class LazyResolveBuiltinClassesTest extends KotlinTestWithEnvironment {
|
||||
@Override
|
||||
@@ -34,6 +34,6 @@ public class LazyResolveBuiltinClassesTest extends KotlinTestWithEnvironment {
|
||||
|
||||
public void testBuiltIns() throws Exception {
|
||||
NamespaceDescriptor builtInsPackage = KotlinBuiltIns.getInstance().getBuiltInsPackage();
|
||||
validateAndCompareNamespaceWithFile(builtInsPackage, RECURSIVE_ALL, new File("compiler/testData/builtin-classes.txt"));
|
||||
validateAndCompareDescriptorWithFile(builtInsPackage, RECURSIVE_ALL, new File("compiler/testData/builtin-classes.txt"));
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -26,7 +26,7 @@ import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.test.util.NamespaceComparator;
|
||||
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
@@ -54,7 +54,7 @@ public class LazyResolveStdlibLoadingTest extends KotlinTestWithEnvironmentManag
|
||||
for (Name name : namespaceShortNames) {
|
||||
NamespaceDescriptor eager = module.getNamespace(FqName.topLevel(name));
|
||||
NamespaceDescriptor lazy = lazyModule.getNamespace(FqName.topLevel(name));
|
||||
NamespaceComparator.validateAndCompareNamespaces(eager, lazy, NamespaceComparator.RECURSIVE, null);
|
||||
RecursiveDescriptorComparator.validateAndCompareDescriptors(eager, lazy, RecursiveDescriptorComparator.RECURSIVE, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+30
-29
@@ -44,7 +44,7 @@ import java.util.List;
|
||||
|
||||
import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.FORBID_ERROR_TYPES;
|
||||
|
||||
public class NamespaceComparator {
|
||||
public class RecursiveDescriptorComparator {
|
||||
private static final DescriptorRenderer DEFAULT_RENDERER = new DescriptorRendererBuilder()
|
||||
.setWithDefinedIn(false)
|
||||
.setExcludedAnnotationClasses(Arrays.asList(new FqName(ExpectedLoadErrorsUtil.ANNOTATION_CLASS_NAME)))
|
||||
@@ -67,7 +67,7 @@ public class NamespaceComparator {
|
||||
|
||||
private final Configuration conf;
|
||||
|
||||
private NamespaceComparator(@NotNull Configuration conf) {
|
||||
private RecursiveDescriptorComparator(@NotNull Configuration conf) {
|
||||
this.conf = conf;
|
||||
}
|
||||
|
||||
@@ -164,60 +164,61 @@ public class NamespaceComparator {
|
||||
}
|
||||
}
|
||||
|
||||
private static void compareNamespaceWithFile(
|
||||
@NotNull NamespaceDescriptor actualNamespace,
|
||||
private static void compareDescriptorWithFile(
|
||||
@NotNull DeclarationDescriptor actual,
|
||||
@NotNull Configuration configuration,
|
||||
@NotNull File txtFile
|
||||
) {
|
||||
doCompareNamespaces(null, actualNamespace, configuration, txtFile);
|
||||
doCompareDescriptors(null, actual, configuration, txtFile);
|
||||
}
|
||||
|
||||
private static void compareNamespaces(
|
||||
@NotNull NamespaceDescriptor expectedNamespace,
|
||||
@NotNull NamespaceDescriptor actualNamespace,
|
||||
private static void compareDescriptors(
|
||||
@NotNull DeclarationDescriptor expected,
|
||||
@NotNull DeclarationDescriptor actual,
|
||||
@NotNull Configuration configuration,
|
||||
@Nullable File txtFile
|
||||
) {
|
||||
if (expectedNamespace == actualNamespace) {
|
||||
throw new IllegalArgumentException("Don't invoke this method with expectedNamespace == actualNamespace." +
|
||||
"Invoke compareNamespaceWithFile() instead.");
|
||||
if (expected == actual) {
|
||||
throw new IllegalArgumentException("Don't invoke this method with expected == actual." +
|
||||
"Invoke compareDescriptorWithFile() instead.");
|
||||
}
|
||||
doCompareNamespaces(expectedNamespace, actualNamespace, configuration, txtFile);
|
||||
doCompareDescriptors(expected, actual, configuration, txtFile);
|
||||
}
|
||||
|
||||
public static void validateAndCompareNamespaceWithFile(
|
||||
@NotNull NamespaceDescriptor actualNamespace,
|
||||
public static void validateAndCompareDescriptorWithFile(
|
||||
@NotNull DeclarationDescriptor actual,
|
||||
@NotNull Configuration configuration,
|
||||
@NotNull File txtFile
|
||||
) {
|
||||
DescriptorValidator.validate(configuration.validationStrategy, actualNamespace);
|
||||
compareNamespaceWithFile(actualNamespace, configuration, txtFile);
|
||||
DescriptorValidator.validate(configuration.validationStrategy, actual);
|
||||
compareDescriptorWithFile(actual, configuration, txtFile);
|
||||
}
|
||||
|
||||
public static void validateAndCompareNamespaces(
|
||||
@NotNull NamespaceDescriptor expectedNamespace,
|
||||
@NotNull NamespaceDescriptor actualNamespace,
|
||||
public static void validateAndCompareDescriptors(
|
||||
@NotNull DeclarationDescriptor expected,
|
||||
@NotNull DeclarationDescriptor actual,
|
||||
@NotNull Configuration configuration,
|
||||
@Nullable File txtFile
|
||||
) {
|
||||
DescriptorValidator.validate(configuration.validationStrategy, expectedNamespace, actualNamespace);
|
||||
compareNamespaces(expectedNamespace, actualNamespace, configuration, txtFile);
|
||||
DescriptorValidator.validate(configuration.validationStrategy, expected, actual);
|
||||
compareDescriptors(expected, actual, configuration, txtFile);
|
||||
}
|
||||
|
||||
private static void doCompareNamespaces(
|
||||
@Nullable NamespaceDescriptor expectedNamespace,
|
||||
@NotNull NamespaceDescriptor actualNamespace,
|
||||
private static void doCompareDescriptors(
|
||||
@Nullable DeclarationDescriptor expected,
|
||||
@NotNull DeclarationDescriptor actual,
|
||||
@NotNull Configuration configuration,
|
||||
@Nullable File txtFile
|
||||
) {
|
||||
NamespaceComparator comparator = new NamespaceComparator(configuration);
|
||||
RecursiveDescriptorComparator comparator = new RecursiveDescriptorComparator(configuration);
|
||||
|
||||
String actualSerialized = comparator.serializeRecursively(actualNamespace);
|
||||
String actualSerialized = comparator.serializeRecursively(actual);
|
||||
|
||||
if (expectedNamespace != null) {
|
||||
String expectedSerialized = comparator.serializeRecursively(expectedNamespace);
|
||||
if (expected != null) {
|
||||
String expectedSerialized = comparator.serializeRecursively(expected);
|
||||
Assert.assertSame(expected.getClass(), actual.getClass());
|
||||
|
||||
Assert.assertEquals("Expected and actual namespaces differ", expectedSerialized, actualSerialized);
|
||||
Assert.assertEquals("Expected and actual descriptors differ", expectedSerialized, actualSerialized);
|
||||
}
|
||||
|
||||
if (txtFile != null) {
|
||||
Reference in New Issue
Block a user