From 88c5aaeaa1930fd7b7eea02d8ab1f73788102eb6 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 11 Jun 2013 22:08:46 +0400 Subject: [PATCH] Put validation parameter into Configuration --- .../jvm/compiler/AbstractLoadJavaTest.java | 14 +++-- ...ractLazyResolveNamespaceComparingTest.java | 7 ++- .../jet/test/util/NamespaceComparator.java | 54 +++++++++---------- 3 files changed, 35 insertions(+), 40 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java index 0553318517f..c2f1e7f7db3 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java @@ -44,7 +44,6 @@ import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM; import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule; import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; import org.jetbrains.jet.test.TestCaseWithTmpdir; -import org.jetbrains.jet.test.util.DescriptorValidator; import org.junit.Assert; import java.io.File; @@ -56,7 +55,6 @@ import java.util.List; import static org.jetbrains.jet.jvm.compiler.LoadDescriptorUtil.*; import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.ALLOW_ERROR_TYPES; -import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.FORBID_ERROR_TYPES; import static org.jetbrains.jet.test.util.NamespaceComparator.*; /* @@ -117,7 +115,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { Pair javaNamespaceAndContext = compileJavaAndLoadTestNamespaceAndBindingContextFromBinary( srcFiles, compiledDir, getTestRootDisposable(), ConfigurationKind.JDK_ONLY); - checkJavaNamespace(getTxtFile(javaFileName), javaNamespaceAndContext.first, javaNamespaceAndContext.second, configuration, FORBID_ERROR_TYPES); + checkJavaNamespace(getTxtFile(javaFileName), javaNamespaceAndContext.first, javaNamespaceAndContext.second, configuration); } protected void doTestSourceJava(@NotNull String javaFileName) throws Exception { @@ -131,7 +129,8 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { Pair javaNamespaceAndContext = loadTestNamespaceAndBindingContextFromJavaRoot( tmpdir, getTestRootDisposable(), ConfigurationKind.JDK_ONLY); - checkJavaNamespace(expectedFile, javaNamespaceAndContext.first, javaNamespaceAndContext.second, DONT_INCLUDE_METHODS_OF_OBJECT, ALLOW_ERROR_TYPES); + checkJavaNamespace(expectedFile, javaNamespaceAndContext.first, javaNamespaceAndContext.second, + DONT_INCLUDE_METHODS_OF_OBJECT.withValidationStrategy(ALLOW_ERROR_TYPES)); } protected void doTestJavaAgainstKotlin(String expectedFileName) throws Exception { @@ -175,7 +174,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { LoadDescriptorUtil.TEST_PACKAGE_FQNAME, DescriptorSearchRule.INCLUDE_KOTLIN); assert namespaceDescriptor != null : "Test namespace not found"; - checkJavaNamespace(expectedFile, namespaceDescriptor, trace.getBindingContext(), DONT_INCLUDE_METHODS_OF_OBJECT, FORBID_ERROR_TYPES); + checkJavaNamespace(expectedFile, namespaceDescriptor, trace.getBindingContext(), DONT_INCLUDE_METHODS_OF_OBJECT); } private static void checkForLoadErrorsAndCompare( @@ -223,13 +222,12 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { final File txtFile, final NamespaceDescriptor javaNamespace, BindingContext bindingContext, - final Configuration configuration, - final DescriptorValidator.ValidationVisitor validationStrategy + final Configuration configuration ) { checkForLoadErrorsAndCompare(javaNamespace, bindingContext, new Runnable() { @Override public void run() { - validateAndCompareNamespaceWithFile(validationStrategy, javaNamespace, configuration, txtFile); + validateAndCompareNamespaceWithFile(javaNamespace, configuration, txtFile); } }); } diff --git a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveNamespaceComparingTest.java b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveNamespaceComparingTest.java index 1b18c6fcc17..40a3f0100e9 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveNamespaceComparingTest.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveNamespaceComparingTest.java @@ -81,13 +81,16 @@ public abstract class AbstractLazyResolveNamespaceComparingTest extends KotlinTe File serializeResultsTo = new File(FileUtil.getNameWithoutExtension(testFileName) + ".txt"); NamespaceComparator.validateAndCompareNamespaces( - allowErrorTypes ? ALLOW_ERROR_TYPES : FORBID_ERROR_TYPES, expected, actual, NamespaceComparator.DONT_INCLUDE_METHODS_OF_OBJECT.filterRecursion( new Predicate() { @Override public boolean apply(FqNameUnsafe fqName) { return !KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME.toUnsafe().equals(fqName); } - }).checkPrimaryConstructors(checkPrimaryConstructors).checkPropertyAccessors(checkPropertyAccessors), serializeResultsTo); + }) + .checkPrimaryConstructors(checkPrimaryConstructors) + .checkPropertyAccessors(checkPropertyAccessors) + .withValidationStrategy(allowErrorTypes ? ALLOW_ERROR_TYPES : FORBID_ERROR_TYPES), + serializeResultsTo); } } diff --git a/compiler/tests/org/jetbrains/jet/test/util/NamespaceComparator.java b/compiler/tests/org/jetbrains/jet/test/util/NamespaceComparator.java index c5acc602a85..8b4d413ea7c 100644 --- a/compiler/tests/org/jetbrains/jet/test/util/NamespaceComparator.java +++ b/compiler/tests/org/jetbrains/jet/test/util/NamespaceComparator.java @@ -47,9 +47,10 @@ import java.util.List; import static org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor.FORBID_ERROR_TYPES; public class NamespaceComparator { - public static final Configuration DONT_INCLUDE_METHODS_OF_OBJECT = new Configuration(false, false, false, Predicates.alwaysTrue()); - public static final Configuration RECURSIVE = new Configuration(false, false, true, Predicates.alwaysTrue()); - public static final Configuration RECURSIVE_ALL = new Configuration(true, true, true, Predicates.alwaysTrue()); + public static final Configuration DONT_INCLUDE_METHODS_OF_OBJECT = new Configuration(false, false, false, Predicates.alwaysTrue(), + FORBID_ERROR_TYPES); + public static final Configuration RECURSIVE = new Configuration(false, false, true, Predicates.alwaysTrue(), FORBID_ERROR_TYPES); + public static final Configuration RECURSIVE_ALL = new Configuration(true, true, true, Predicates.alwaysTrue(), FORBID_ERROR_TYPES); private static final DescriptorRenderer RENDERER = new DescriptorRendererBuilder() .setWithDefinedIn(false) @@ -160,7 +161,7 @@ public class NamespaceComparator { } } - public static void compareNamespaceWithFile( + private static void compareNamespaceWithFile( @NotNull NamespaceDescriptor actualNamespace, @NotNull Configuration configuration, @NotNull File txtFile @@ -168,7 +169,7 @@ public class NamespaceComparator { doCompareNamespaces(null, actualNamespace, configuration, txtFile); } - public static void compareNamespaces( + private static void compareNamespaces( @NotNull NamespaceDescriptor expectedNamespace, @NotNull NamespaceDescriptor actualNamespace, @NotNull Configuration configuration, @@ -182,40 +183,21 @@ public class NamespaceComparator { } public static void validateAndCompareNamespaceWithFile( - @NotNull NamespaceDescriptor actualNamespace, - @NotNull Configuration configuration, - @NotNull File txtFile - ) { - validateAndCompareNamespaceWithFile(FORBID_ERROR_TYPES, actualNamespace, configuration, txtFile); - } - - public static void validateAndCompareNamespaceWithFile( - @NotNull DescriptorValidator.ValidationVisitor validationStrategy, @NotNull NamespaceDescriptor actualNamespace, @NotNull Configuration configuration, @NotNull File txtFile ) { - DescriptorValidator.validate(validationStrategy, actualNamespace); + DescriptorValidator.validate(configuration.validationStrategy, actualNamespace); compareNamespaceWithFile(actualNamespace, configuration, txtFile); } public static void validateAndCompareNamespaces( - @NotNull NamespaceDescriptor expectedNamespace, - @NotNull NamespaceDescriptor actualNamespace, - @NotNull Configuration configuration, - @Nullable File txtFile - ) { - validateAndCompareNamespaces(FORBID_ERROR_TYPES, expectedNamespace, actualNamespace, configuration, txtFile); - } - - public static void validateAndCompareNamespaces( - @NotNull DescriptorValidator.ValidationVisitor validationStrategy, @NotNull NamespaceDescriptor expectedNamespace, @NotNull NamespaceDescriptor actualNamespace, @NotNull Configuration configuration, @Nullable File txtFile ) { - DescriptorValidator.validate(validationStrategy, expectedNamespace, actualNamespace); + DescriptorValidator.validate(configuration.validationStrategy, expectedNamespace, actualNamespace); compareNamespaces(expectedNamespace, actualNamespace, configuration, txtFile); } @@ -260,28 +242,40 @@ public class NamespaceComparator { private final boolean includeMethodsOfJavaObject; private final Predicate recurseIntoPackage; + private final DescriptorValidator.ValidationVisitor validationStrategy; + public Configuration( boolean checkPrimaryConstructors, boolean checkPropertyAccessors, boolean includeMethodsOfJavaObject, - Predicate recurseIntoPackage + Predicate recurseIntoPackage, + DescriptorValidator.ValidationVisitor validationStrategy ) { this.checkPrimaryConstructors = checkPrimaryConstructors; this.checkPropertyAccessors = checkPropertyAccessors; this.includeMethodsOfJavaObject = includeMethodsOfJavaObject; this.recurseIntoPackage = recurseIntoPackage; + this.validationStrategy = validationStrategy; } public Configuration filterRecursion(@NotNull Predicate recurseIntoPackage) { - return new Configuration(checkPrimaryConstructors, checkPropertyAccessors, includeMethodsOfJavaObject, recurseIntoPackage); + return new Configuration(checkPrimaryConstructors, checkPropertyAccessors, includeMethodsOfJavaObject, recurseIntoPackage, + validationStrategy); } public Configuration checkPrimaryConstructors(boolean checkPrimaryConstructors) { - return new Configuration(checkPrimaryConstructors, checkPropertyAccessors, includeMethodsOfJavaObject, recurseIntoPackage); + return new Configuration(checkPrimaryConstructors, checkPropertyAccessors, includeMethodsOfJavaObject, recurseIntoPackage, + validationStrategy); } public Configuration checkPropertyAccessors(boolean checkPropertyAccessors) { - return new Configuration(checkPrimaryConstructors, checkPropertyAccessors, includeMethodsOfJavaObject, recurseIntoPackage); + return new Configuration(checkPrimaryConstructors, checkPropertyAccessors, includeMethodsOfJavaObject, recurseIntoPackage, + validationStrategy); + } + + public Configuration withValidationStrategy(@NotNull DescriptorValidator.ValidationVisitor validationStrategy) { + return new Configuration(checkPrimaryConstructors, checkPropertyAccessors, includeMethodsOfJavaObject, recurseIntoPackage, + validationStrategy); } } }