Make test independent of the particular stdlib code

In the previous version test would fail every time stdlib changes
This commit is contained in:
Andrey Breslav
2012-07-10 22:59:58 +04:00
parent d0e40abc09
commit e4f45fc514
2 changed files with 13 additions and 7 deletions
@@ -71,7 +71,7 @@ public class NamespaceComparator {
@NotNull Predicate<NamespaceDescriptor> includeIntoOutput,
@NotNull File txtFile
) {
String serialized = new NamespaceComparator(includeObject, includeIntoOutput).doCompareNamespaces(nsa, nsb);
String serialized = assertNamespacesEqual(nsa, nsb, includeObject, includeIntoOutput);
try {
if (!txtFile.exists()) {
FileUtil.writeToFile(txtFile, serialized);
@@ -87,6 +87,13 @@ public class NamespaceComparator {
}
}
public static String assertNamespacesEqual(NamespaceDescriptor nsa,
NamespaceDescriptor nsb,
boolean includeObject,
Predicate<NamespaceDescriptor> includeIntoOutput) {
return new NamespaceComparator(includeObject, includeIntoOutput).doCompareNamespaces(nsa, nsb);
}
private static <T extends Comparable<T>> List<T> sorted(Collection<T> items) {
List<T> r = new ArrayList<T>(items);
Collections.sort(r);
@@ -53,16 +53,15 @@ public class LazyResolveStdlibLoadingTest extends AbstractLazyResolveTest {
Function<Pair<ModuleDescriptor, ModuleDescriptor>, Pair<NamespaceDescriptor, NamespaceDescriptor>> transform,
boolean includeMembersOfObject,
List<JetFile> files,
Predicate<NamespaceDescriptor> filterJetNamespace,
File serializeResultsTo
Predicate<NamespaceDescriptor> filterJetNamespace
) {
ModuleDescriptor module = resolveEagerly(files, new JetCoreEnvironmentWithDisposable(ConfigurationKind.JDK_AND_ANNOTATIONS, false).jetCoreEnvironment);
ModuleDescriptor lazyModule = resolveLazily(files, stdlibEnvironment.jetCoreEnvironment);
Pair<NamespaceDescriptor, NamespaceDescriptor> namespacesToCompare = transform.fun(Pair.create(module, lazyModule));
NamespaceComparator.compareNamespaces(namespacesToCompare.first, namespacesToCompare.second,
includeMembersOfObject, filterJetNamespace, serializeResultsTo);
NamespaceComparator.assertNamespacesEqual(namespacesToCompare.first, namespacesToCompare.second,
includeMembersOfObject, filterJetNamespace);
}
public void testStdLib() throws Exception {
@@ -76,14 +75,14 @@ public class LazyResolveStdlibLoadingTest extends AbstractLazyResolveTest {
true,
//convertToJetFiles(collectKtFiles(new File("compiler/testData/lazyResolve/namespaceComparatorWithJavaMerge"))),
convertToJetFiles(collectKtFiles(STD_LIB_SRC)),
Predicates.<NamespaceDescriptor>alwaysTrue(),
Predicates.<NamespaceDescriptor>alwaysTrue()
//new Predicate<NamespaceDescriptor>() {
// @Override
// public boolean apply(NamespaceDescriptor descriptor) {
// return Name.identifier("jet").equals(descriptor.getName());
// }
//},
new File("compiler/testData/lazyResolve/namespaceComparatorWithJavaMerge/stdlib-log.txt")
//new File("compiler/testData/lazyResolve/namespaceComparatorWithJavaMerge/stdlib-log.txt")
);
}