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.jvm.K2JVMCompiler;
import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime;
import org.jetbrains.jet.utils.UtilsPackage;
import org.jetbrains.jet.utils.PathUtil;
import org.jetbrains.jet.utils.UtilsPackage;
import java.io.*;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
@@ -44,7 +43,7 @@ public class MockLibraryUtil {
private static Class<?> compilerClass = null;
public static File compileLibraryToJar(String sourcesPath) {
public static File compileLibraryToJar(String sourcesPath, boolean addSources) {
try {
File contentDir = JetTestUtils.tmpDir("lib-content");
@@ -76,7 +75,9 @@ public class MockLibraryUtil {
ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(jarFile));
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();
return jarFile;
@@ -59,10 +59,10 @@ public abstract class AbstractTopLevelMembersInvocationTest extends AbstractByte
File library = new File(root, LIBRARY);
List<File> classPath = library.exists() ?
Collections.singletonList(MockLibraryUtil.compileLibraryToJar(library.getPath())) :
Collections.singletonList(MockLibraryUtil.compileLibraryToJar(library.getPath(), false)) :
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);
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.cli.jvm.compiler.JetCoreEnvironment;
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.java.AnalyzerFacadeForJVM;
import org.jetbrains.jet.test.TestCaseWithTmpdir;
@@ -43,8 +45,8 @@ import java.util.jar.JarEntry;
import java.util.jar.JarFile;
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.test.util.RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile;
public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
public static final String TEST_DATA_PATH = "compiler/testData/compileKotlinAgainstCustomBinaries/";
@@ -56,7 +58,7 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir {
@NotNull
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 {
@@ -21,7 +21,7 @@ public class JdkAndMockLibraryProjectDescriptor extends JetLightProjectDescripto
@Override
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()) + "!/";
Library.ModifiableModel libraryModel = model.getModuleLibraryTable().getModifiableModel().createLibrary("myKotlinLib").getModifiableModel();