Minor fix in tests for sources appearing in libraries

This commit is contained in:
Alexander Udalov
2014-03-06 19:52:48 +04:00
parent 64ac223895
commit 36936e0a6b
4 changed files with 13 additions and 10 deletions
@@ -24,15 +24,14 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.cli.common.ExitCode; import org.jetbrains.jet.cli.common.ExitCode;
import org.jetbrains.jet.cli.jvm.K2JVMCompiler; import org.jetbrains.jet.cli.jvm.K2JVMCompiler;
import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime; import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime;
import org.jetbrains.jet.utils.UtilsPackage;
import org.jetbrains.jet.utils.PathUtil; import org.jetbrains.jet.utils.PathUtil;
import org.jetbrains.jet.utils.UtilsPackage;
import java.io.*; import java.io.*;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@@ -44,7 +43,7 @@ public class MockLibraryUtil {
private static Class<?> compilerClass = null; private static Class<?> compilerClass = null;
public static File compileLibraryToJar(String sourcesPath) { public static File compileLibraryToJar(String sourcesPath, boolean addSources) {
try { try {
File contentDir = JetTestUtils.tmpDir("lib-content"); File contentDir = JetTestUtils.tmpDir("lib-content");
@@ -76,7 +75,9 @@ public class MockLibraryUtil {
ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(jarFile)); ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(jarFile));
ZipUtil.addDirToZipRecursively(zip, jarFile, classesDir, "", null, null); ZipUtil.addDirToZipRecursively(zip, jarFile, classesDir, "", null, null);
ZipUtil.addDirToZipRecursively(zip, jarFile, new File(sourcesPath), "src", null, null); if (addSources) {
ZipUtil.addDirToZipRecursively(zip, jarFile, new File(sourcesPath), "src", null, null);
}
zip.close(); zip.close();
return jarFile; return jarFile;
@@ -59,10 +59,10 @@ public abstract class AbstractTopLevelMembersInvocationTest extends AbstractByte
File library = new File(root, LIBRARY); File library = new File(root, LIBRARY);
List<File> classPath = library.exists() ? List<File> classPath = library.exists() ?
Collections.singletonList(MockLibraryUtil.compileLibraryToJar(library.getPath())) : Collections.singletonList(MockLibraryUtil.compileLibraryToJar(library.getPath(), false)) :
Collections.<File>emptyList(); Collections.<File>emptyList();
assert !sourceFiles.isEmpty() : getTestName(true) + " should contains at least one .kt file"; assert !sourceFiles.isEmpty() : getTestName(true) + " should contain at least one .kt file";
Collections.sort(sourceFiles); Collections.sort(sourceFiles);
myEnvironment = JetCoreEnvironment.createForTests(getTestRootDisposable(), JetTestUtils.compilerConfigurationForTests( myEnvironment = JetCoreEnvironment.createForTests(getTestRootDisposable(), JetTestUtils.compilerConfigurationForTests(
@@ -26,7 +26,9 @@ import org.jetbrains.jet.TestJdkKind;
import org.jetbrains.jet.analyzer.AnalyzeExhaust; import org.jetbrains.jet.analyzer.AnalyzeExhaust;
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor;
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM; import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
import org.jetbrains.jet.test.TestCaseWithTmpdir; import org.jetbrains.jet.test.TestCaseWithTmpdir;
@@ -43,8 +45,8 @@ import java.util.jar.JarEntry;
import java.util.jar.JarFile; import java.util.jar.JarFile;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
import static org.jetbrains.jet.test.util.RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isObject; import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isObject;
import static org.jetbrains.jet.test.util.RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile;
public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir { public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
public static final String TEST_DATA_PATH = "compiler/testData/compileKotlinAgainstCustomBinaries/"; public static final String TEST_DATA_PATH = "compiler/testData/compileKotlinAgainstCustomBinaries/";
@@ -56,7 +58,7 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
@NotNull @NotNull
private File compileLibrary(@NotNull String sourcePath) { private File compileLibrary(@NotNull String sourcePath) {
return MockLibraryUtil.compileLibraryToJar(new File(getTestDataDirectory(), sourcePath).getPath()); return MockLibraryUtil.compileLibraryToJar(new File(getTestDataDirectory(), sourcePath).getPath(), false);
} }
private void doTestWithTxt(@NotNull File... extraClassPath) throws Exception { private void doTestWithTxt(@NotNull File... extraClassPath) throws Exception {
@@ -21,7 +21,7 @@ public class JdkAndMockLibraryProjectDescriptor extends JetLightProjectDescripto
@Override @Override
public void configureModule(Module module, ModifiableRootModel model, ContentEntry contentEntry) { public void configureModule(Module module, ModifiableRootModel model, ContentEntry contentEntry) {
File libraryJar = MockLibraryUtil.compileLibraryToJar(sourcesPath); File libraryJar = MockLibraryUtil.compileLibraryToJar(sourcesPath, withSources);
String jarUrl = "jar://" + FileUtilRt.toSystemIndependentName(libraryJar.getAbsolutePath()) + "!/"; String jarUrl = "jar://" + FileUtilRt.toSystemIndependentName(libraryJar.getAbsolutePath()) + "!/";
Library.ModifiableModel libraryModel = model.getModuleLibraryTable().getModifiableModel().createLibrary("myKotlinLib").getModifiableModel(); Library.ModifiableModel libraryModel = model.getModuleLibraryTable().getModifiableModel().createLibrary("myKotlinLib").getModifiableModel();