Don't compare the whole JDK in LR diagnostic tests
This commit is contained in:
+22
-18
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user