From 58ec90d7ee22c1bad294eecc611c2725fef0c1c5 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 27 Jul 2012 18:10:49 +0400 Subject: [PATCH] Don't compare the whole JDK in LR diagnostic tests --- .../AbstractLazyResolveDiagnosticsTest.java | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveDiagnosticsTest.java b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveDiagnosticsTest.java index f72c081950d..e39e1830545 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveDiagnosticsTest.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/AbstractLazyResolveDiagnosticsTest.java @@ -24,6 +24,7 @@ import org.jetbrains.jet.checkers.AbstractJetDiagnosticsTest; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; import org.jetbrains.jet.lang.psi.JetFile; +import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.test.generator.SimpleTestClassModel; import org.jetbrains.jet.test.generator.TestGenerator; @@ -49,24 +50,28 @@ public abstract class AbstractLazyResolveDiagnosticsTest extends AbstractJetDiag ModuleDescriptor eagerModule = LazyResolveTestUtil.resolveEagerly(jetFiles, getEnvironment()); String path = JetTestUtils.getFilePath(new File(FileUtil.getRelativePath(TEST_DATA_DIR, testDataFile))); - Set names = LazyResolveTestUtil.getTopLevelPackagesFromFileList(jetFiles); - for (Name name : names) { - NamespaceDescriptor expected = eagerModule.getRootNamespace().getMemberScope().getNamespace(name); - NamespaceDescriptor actual = lazyModule.getRootNamespace().getMemberScope().getNamespace(name); + NamespaceDescriptor expected = eagerModule.getRootNamespace(); + NamespaceDescriptor actual = lazyModule.getRootNamespace(); - String txtFileRelativePath = path.replaceAll("\\.kt$|\\.ktscript", "." + name.getName() + ".txt"); - File txtFile = new File("compiler/testData/lazyResolve/diagnostics/" + txtFileRelativePath); + String txtFileRelativePath = path.replaceAll("\\.kt$|\\.ktscript", ".txt"); + File txtFile = new File("compiler/testData/lazyResolve/diagnostics/" + txtFileRelativePath); - NamespaceComparator.compareNamespaces(expected, actual, - NamespaceComparator.RECURSIVE.filterOutput(new Predicate() { - @Override - public boolean apply(NamespaceDescriptor descriptor) { - return !Name.identifier("jet").equals(descriptor.getName()); - } - }), - txtFile); - - } + // Only recurse into those namespaces mentioned in the files + // Otherwise we'll be examining the whole JDK + final Set names = LazyResolveTestUtil.getTopLevelPackagesFromFileList(jetFiles); + NamespaceComparator.compareNamespaces( + expected, actual, + NamespaceComparator.RECURSIVE.filterRecusion(new Predicate() { + @Override + public boolean apply(FqNameUnsafe fqName) { + if (fqName.isRoot()) return true; + if (fqName.parent().isRoot()) { + return names.contains(fqName.shortName()); + } + return true; + } + }), + txtFile); } public static void main(String[] args) throws IOException { @@ -77,8 +82,7 @@ public abstract class AbstractLazyResolveDiagnosticsTest extends AbstractJetDiag "LazyResolveDiagnosticsTestGenerated", thisClass, Arrays.asList( - new SimpleTestClassModel(TEST_DATA_DIR, true, "kt", "doTest"), - new SimpleTestClassModel(new File("compiler/testData/diagnostics/tests/script"), true, "ktscript", "doTest") + new SimpleTestClassModel(TEST_DATA_DIR, true, "kt", "doTest") ), thisClass ).generateAndSave();