diff --git a/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTest.java b/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTest.java index e4b717829c4..b96c5356fbb 100644 --- a/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTest.java +++ b/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTest.java @@ -21,6 +21,7 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.testFramework.LightVirtualFile; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.codegen.PackageCodegen; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jps.builders.BuildResult; @@ -189,19 +190,14 @@ public class KotlinJpsBuildTest extends AbstractKotlinJpsBuildTestCase { doTest(); } - public void testCircularDependenciesWithKotlinFilesDifferentPackages() { + public void testCircularDependenciesDifferentPackages() { initProject(); BuildResult result = makeAll(); // Check that outputs are located properly - for (JpsModule module : myProject.getModules()) { - if (module.getName().equals("module2")) { - assertFilesExistInOutput(module, "kt1/Kt1Package.class"); - } - if (module.getName().equals("kotlinProject")) { - assertFilesExistInOutput(module, "kt2/Kt2Package.class"); - } - } + assertFilesExistInOutput(findModule("module2"), "kt1/Kt1Package.class"); + assertFilesExistInOutput(findModule("kotlinProject"), "kt2/Kt2Package.class"); + result.assertSuccessful(); checkPackageDeletedFromOutputWhen(Operation.CHANGE, "kotlinProject", "src/kt2.kt", "kt2.Kt2Package"); @@ -216,16 +212,24 @@ public class KotlinJpsBuildTest extends AbstractKotlinJpsBuildTestCase { public boolean value(JpsModule module) { return module.getName().equals("module2"); } - }), true); + }), true + ); makeAll().assertSuccessful(); } + @NotNull + private JpsModule findModule(@NotNull String name) { + for (JpsModule module : myProject.getModules()) { + if (module.getName().equals(name)) { + return module; + } + } + throw new IllegalStateException("Couldn't find module " + name); + } + private static void assertFilesExistInOutput(JpsModule module, String... relativePaths) { - String outputUrl = JpsJavaExtensionService.getInstance().getOutputUrl(module, false); - assertNotNull(outputUrl); - File outputDir = new File(JpsPathUtil.urlToPath(outputUrl)); for (String path : relativePaths) { - File outputFile = new File(outputDir, path); + File outputFile = findFileInOutputDir(module, path); assertTrue("Output not written: " + outputFile.getAbsolutePath() + "\n Directory contents: \n" + @@ -234,6 +238,13 @@ public class KotlinJpsBuildTest extends AbstractKotlinJpsBuildTestCase { } } + private static File findFileInOutputDir(JpsModule module, String relativePath) { + String outputUrl = JpsJavaExtensionService.getInstance().getOutputUrl(module, false); + assertNotNull(outputUrl); + File outputDir = new File(JpsPathUtil.urlToPath(outputUrl)); + return new File(outputDir, relativePath); + } + private void checkExcludesNotAffectedToOutput(String module, String... excludeRelativePaths) { for (String path : excludeRelativePaths) { checkClassesDeletedFromOutputWhen(Operation.CHANGE, module, path, NOTHING); @@ -246,7 +257,7 @@ public class KotlinJpsBuildTest extends AbstractKotlinJpsBuildTestCase { File outputDir = new File(JpsPathUtil.urlToPath(outputUrl)); for (String path : relativePaths) { File outputFile = new File(outputDir, path); - assertFalse("Output directory \"" + outputFile.getAbsolutePath() + "\" contains \"" + path + "\"", + assertFalse("Output directory \"" + outputFile.getAbsolutePath() + "\" contains \"" + path + "\"", outputFile.exists()); } } diff --git a/jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/kotlinProject.iml b/jps-plugin/testData/general/CircularDependenciesDifferentPackages/kotlinProject.iml similarity index 100% rename from jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/kotlinProject.iml rename to jps-plugin/testData/general/CircularDependenciesDifferentPackages/kotlinProject.iml diff --git a/jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/kotlinProject.ipr b/jps-plugin/testData/general/CircularDependenciesDifferentPackages/kotlinProject.ipr similarity index 100% rename from jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/kotlinProject.ipr rename to jps-plugin/testData/general/CircularDependenciesDifferentPackages/kotlinProject.ipr diff --git a/jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/module2/module2.iml b/jps-plugin/testData/general/CircularDependenciesDifferentPackages/module2/module2.iml similarity index 100% rename from jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/module2/module2.iml rename to jps-plugin/testData/general/CircularDependenciesDifferentPackages/module2/module2.iml diff --git a/jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/module2/src/JSecond.java b/jps-plugin/testData/general/CircularDependenciesDifferentPackages/module2/src/JSecond.java similarity index 100% rename from jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/module2/src/JSecond.java rename to jps-plugin/testData/general/CircularDependenciesDifferentPackages/module2/src/JSecond.java diff --git a/jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/module2/src/kt1.kt b/jps-plugin/testData/general/CircularDependenciesDifferentPackages/module2/src/kt1.kt similarity index 100% rename from jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/module2/src/kt1.kt rename to jps-plugin/testData/general/CircularDependenciesDifferentPackages/module2/src/kt1.kt diff --git a/jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/src/JFirst.java b/jps-plugin/testData/general/CircularDependenciesDifferentPackages/src/JFirst.java similarity index 100% rename from jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/src/JFirst.java rename to jps-plugin/testData/general/CircularDependenciesDifferentPackages/src/JFirst.java diff --git a/jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/src/kt2.kt b/jps-plugin/testData/general/CircularDependenciesDifferentPackages/src/kt2.kt similarity index 100% rename from jps-plugin/testData/general/CircularDependenciesWithKotlinFilesDifferentPackages/src/kt2.kt rename to jps-plugin/testData/general/CircularDependenciesDifferentPackages/src/kt2.kt