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.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<Name> 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<NamespaceDescriptor>() {
@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<Name> names = LazyResolveTestUtil.getTopLevelPackagesFromFileList(jetFiles);
NamespaceComparator.compareNamespaces(
expected, actual,
NamespaceComparator.RECURSIVE.filterRecusion(new Predicate<FqNameUnsafe>() {
@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();