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:
Andrey Breslav
2014-08-15 17:07:35 +04:00
parent 1533c0e9f3
commit 1933e30905
711 changed files with 6824 additions and 4231 deletions
@@ -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
@@ -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 {
@@ -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);
}