Test data split between compiledJava tests and compiledKotlin tests
Basically, this commit splits test data from the from java-txt-kt to two pairs java-txt and kt-txt. This commit leads to some duplication in test data. This is temporary: in the platform types branch the test data for LoadJava tests will be changed dramatically, so duplication will go away
This commit is contained in:
@@ -44,12 +44,10 @@ import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.JvmResolveUtil;
|
||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
import org.jetbrains.jet.storage.ExceptionTracker;
|
||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||
import org.jetbrains.jet.test.TestCaseWithTmpdir;
|
||||
import org.jetbrains.jet.test.util.RecursiveDescriptorComparator;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
@@ -88,23 +86,12 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
||||
checkJavaPackage(expectedFile, binaryPackageAndContext.first, binaryPackageAndContext.second, DONT_INCLUDE_METHODS_OF_OBJECT);
|
||||
}
|
||||
|
||||
protected void doTestCompiledJavaCompareWithKotlin(@NotNull String javaFileName) throws Exception {
|
||||
Assert.assertTrue("A java file expected: " + javaFileName, javaFileName.endsWith(".java"));
|
||||
File javaFile = new File(javaFileName);
|
||||
File ktFile = new File(javaFile.getPath().replaceFirst("\\.java$", ".kt"));
|
||||
File txtFile = getTxtFile(javaFile.getPath());
|
||||
PackageViewDescriptor kotlinPackage = analyzeKotlinAndLoadTestPackage(ktFile, myTestRootDisposable, ConfigurationKind.ALL);
|
||||
Pair<PackageViewDescriptor, BindingContext> javaPackageAndContext = compileJavaAndLoadTestPackageAndBindingContextFromBinary(
|
||||
Arrays.asList(javaFile), tmpdir, myTestRootDisposable, ConfigurationKind.ALL);
|
||||
checkLoadedPackages(txtFile, kotlinPackage, javaPackageAndContext.first, javaPackageAndContext.second);
|
||||
}
|
||||
|
||||
protected void doTestCompiledJavaIncludeObjectMethods(@NotNull String javaFileName) throws Exception {
|
||||
doTestCompiledJava(javaFileName, RECURSIVE);
|
||||
}
|
||||
|
||||
protected void doTestCompiledKotlin(@NotNull String ktFileName) throws Exception {
|
||||
doTestCompiledKotlin(ktFileName, ConfigurationKind.JDK_ONLY);
|
||||
doTestCompiledKotlin(ktFileName, ConfigurationKind.JDK_AND_ANNOTATIONS);
|
||||
}
|
||||
|
||||
protected void doTestCompiledKotlinWithStdlib(@NotNull String ktFileName) throws Exception {
|
||||
@@ -259,10 +246,11 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
||||
checkJavaPackage(getTxtFile(javaFileName), javaPackageAndContext.first, javaPackageAndContext.second, configuration);
|
||||
}
|
||||
|
||||
private static void checkForLoadErrorsAndCompare(
|
||||
@NotNull PackageViewDescriptor javaPackage,
|
||||
@NotNull BindingContext bindingContext,
|
||||
@NotNull Runnable comparePackagesRunnable
|
||||
private static void checkJavaPackage(
|
||||
File txtFile,
|
||||
PackageViewDescriptor javaPackage,
|
||||
BindingContext bindingContext,
|
||||
Configuration configuration
|
||||
) {
|
||||
boolean fail = false;
|
||||
try {
|
||||
@@ -280,40 +268,13 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
||||
fail = true;
|
||||
}
|
||||
|
||||
comparePackagesRunnable.run();
|
||||
validateAndCompareDescriptorWithFile(javaPackage, configuration, txtFile);
|
||||
|
||||
if (fail) {
|
||||
fail("See error above");
|
||||
}
|
||||
}
|
||||
|
||||
private static void checkLoadedPackages(
|
||||
final File txtFile,
|
||||
final PackageViewDescriptor kotlinPackage,
|
||||
final PackageViewDescriptor javaPackage,
|
||||
BindingContext bindingContext
|
||||
) {
|
||||
checkForLoadErrorsAndCompare(javaPackage, bindingContext, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
validateAndCompareDescriptors(kotlinPackage, javaPackage, DONT_INCLUDE_METHODS_OF_OBJECT, txtFile);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void checkJavaPackage(
|
||||
final File txtFile,
|
||||
final PackageViewDescriptor javaPackage,
|
||||
BindingContext bindingContext,
|
||||
final Configuration configuration
|
||||
) {
|
||||
checkForLoadErrorsAndCompare(javaPackage, bindingContext, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
validateAndCompareDescriptorWithFile(javaPackage, configuration, txtFile);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static File getTxtFile(String javaFileName) {
|
||||
return new File(javaFileName.replaceFirst("\\.java$", ".txt"));
|
||||
}
|
||||
|
||||
@@ -126,18 +126,6 @@ public final class LoadDescriptorUtil {
|
||||
));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static PackageViewDescriptor analyzeKotlinAndLoadTestPackage(
|
||||
@NotNull File ktFile,
|
||||
@NotNull Disposable disposable,
|
||||
@NotNull ConfigurationKind configurationKind
|
||||
) {
|
||||
JetFilesAndExhaust fileAndExhaust = JetFilesAndExhaust.createJetFilesAndAnalyze(Collections.singletonList(ktFile), disposable, configurationKind);
|
||||
PackageViewDescriptor packageView = fileAndExhaust.getExhaust().getModuleDescriptor().getPackage(TEST_PACKAGE_FQNAME);
|
||||
assert packageView != null: TEST_PACKAGE_FQNAME + " package not found in " + ktFile.getName();
|
||||
return packageView;
|
||||
}
|
||||
|
||||
private static class JetFilesAndExhaust {
|
||||
@NotNull
|
||||
public static JetFilesAndExhaust createJetFilesAndAnalyze(
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+2
-10
@@ -45,16 +45,8 @@ public abstract class AbstractLazyResolveRecursiveComparingTest extends KotlinTe
|
||||
return createEnvironmentWithMockJdk(ConfigurationKind.ALL);
|
||||
}
|
||||
|
||||
protected void doTestCheckingPrimaryConstructors(String testFileName) throws IOException {
|
||||
doTest(testFileName, true, false, true);
|
||||
}
|
||||
|
||||
protected void doTestCheckingPrimaryConstructorsAndAccessors(String testFileName) throws IOException {
|
||||
doTest(testFileName, true, true, false);
|
||||
}
|
||||
|
||||
protected void doTestNotCheckingPrimaryConstructors(String testFileName) throws IOException {
|
||||
doTest(testFileName, false, false, false);
|
||||
protected void doTest(String testFileName) throws IOException {
|
||||
doTest(testFileName, true, true, true);
|
||||
}
|
||||
|
||||
private void doTest(String testFileName, boolean checkPrimaryConstructors, boolean checkPropertyAccessors, boolean allowErrorTypes) throws IOException {
|
||||
|
||||
+1244
-1309
File diff suppressed because it is too large
Load Diff
@@ -28,25 +28,14 @@ import org.jetbrains.jet.lang.types.JetType;
|
||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
|
||||
import java.io.PrintStream;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class DescriptorValidator {
|
||||
|
||||
public static void validate(DeclarationDescriptor... descriptors) {
|
||||
validate(ValidationVisitor.FORBID_ERROR_TYPES, Arrays.asList(descriptors));
|
||||
}
|
||||
|
||||
public static void validate(@NotNull ValidationVisitor validationStrategy, DeclarationDescriptor... descriptors) {
|
||||
validate(validationStrategy, Arrays.asList(descriptors));
|
||||
}
|
||||
|
||||
public static void validate(@NotNull ValidationVisitor validator, @NotNull Collection<DeclarationDescriptor> descriptors) {
|
||||
public static void validate(@NotNull ValidationVisitor validationStrategy, DeclarationDescriptor descriptor) {
|
||||
DiagnosticCollectorForTests collector = new DiagnosticCollectorForTests();
|
||||
for (DeclarationDescriptor descriptor : descriptors) {
|
||||
validate(validator, descriptor, collector);
|
||||
}
|
||||
validate(validationStrategy, descriptor, collector);
|
||||
collector.done();
|
||||
}
|
||||
|
||||
|
||||
@@ -203,7 +203,8 @@ public class RecursiveDescriptorComparator {
|
||||
@NotNull Configuration configuration,
|
||||
@Nullable File txtFile
|
||||
) {
|
||||
DescriptorValidator.validate(configuration.validationStrategy, expected, actual);
|
||||
DescriptorValidator.validate(configuration.validationStrategy, expected);
|
||||
DescriptorValidator.validate(configuration.validationStrategy, actual);
|
||||
compareDescriptors(expected, actual, configuration, txtFile);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user