Don't compare the whole JDK in LR diagnostic tests

This commit is contained in:
Andrey Breslav
2012-07-27 18:10:49 +04:00
parent 2b957fdfa0
commit 58ec90d7ee
@@ -24,6 +24,7 @@ import org.jetbrains.jet.checkers.AbstractJetDiagnosticsTest;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.psi.JetFile; 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.lang.resolve.name.Name;
import org.jetbrains.jet.test.generator.SimpleTestClassModel; import org.jetbrains.jet.test.generator.SimpleTestClassModel;
import org.jetbrains.jet.test.generator.TestGenerator; import org.jetbrains.jet.test.generator.TestGenerator;
@@ -49,24 +50,28 @@ public abstract class AbstractLazyResolveDiagnosticsTest extends AbstractJetDiag
ModuleDescriptor eagerModule = LazyResolveTestUtil.resolveEagerly(jetFiles, getEnvironment()); ModuleDescriptor eagerModule = LazyResolveTestUtil.resolveEagerly(jetFiles, getEnvironment());
String path = JetTestUtils.getFilePath(new File(FileUtil.getRelativePath(TEST_DATA_DIR, testDataFile))); String path = JetTestUtils.getFilePath(new File(FileUtil.getRelativePath(TEST_DATA_DIR, testDataFile)));
Set<Name> names = LazyResolveTestUtil.getTopLevelPackagesFromFileList(jetFiles); NamespaceDescriptor expected = eagerModule.getRootNamespace();
for (Name name : names) { NamespaceDescriptor actual = lazyModule.getRootNamespace();
NamespaceDescriptor expected = eagerModule.getRootNamespace().getMemberScope().getNamespace(name);
NamespaceDescriptor actual = lazyModule.getRootNamespace().getMemberScope().getNamespace(name);
String txtFileRelativePath = path.replaceAll("\\.kt$|\\.ktscript", "." + name.getName() + ".txt"); String txtFileRelativePath = path.replaceAll("\\.kt$|\\.ktscript", ".txt");
File txtFile = new File("compiler/testData/lazyResolve/diagnostics/" + txtFileRelativePath); File txtFile = new File("compiler/testData/lazyResolve/diagnostics/" + txtFileRelativePath);
NamespaceComparator.compareNamespaces(expected, actual, // Only recurse into those namespaces mentioned in the files
NamespaceComparator.RECURSIVE.filterOutput(new Predicate<NamespaceDescriptor>() { // Otherwise we'll be examining the whole JDK
@Override final Set<Name> names = LazyResolveTestUtil.getTopLevelPackagesFromFileList(jetFiles);
public boolean apply(NamespaceDescriptor descriptor) { NamespaceComparator.compareNamespaces(
return !Name.identifier("jet").equals(descriptor.getName()); expected, actual,
} NamespaceComparator.RECURSIVE.filterRecusion(new Predicate<FqNameUnsafe>() {
}), @Override
txtFile); 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 { public static void main(String[] args) throws IOException {
@@ -77,8 +82,7 @@ public abstract class AbstractLazyResolveDiagnosticsTest extends AbstractJetDiag
"LazyResolveDiagnosticsTestGenerated", "LazyResolveDiagnosticsTestGenerated",
thisClass, thisClass,
Arrays.asList( Arrays.asList(
new SimpleTestClassModel(TEST_DATA_DIR, true, "kt", "doTest"), new SimpleTestClassModel(TEST_DATA_DIR, true, "kt", "doTest")
new SimpleTestClassModel(new File("compiler/testData/diagnostics/tests/script"), true, "ktscript", "doTest")
), ),
thisClass thisClass
).generateAndSave(); ).generateAndSave();