Test package facade recompile after removing several files
Original commit: 2f776affb3
This commit is contained in:
@@ -158,20 +158,63 @@ public class KotlinJpsBuildTest extends AbstractKotlinJpsBuildTestCase {
|
||||
|
||||
checkWhen(touch("src/main.kt"), null, packageClasses("kotlinProject", "src/main.kt", "foo.FooPackage"));
|
||||
checkWhen(touch("src/boo.kt"), null, packageClasses("kotlinProject", "src/boo.kt", "boo.BooPackage"));
|
||||
checkWhen(touch("src/Bar.kt"), null, new String[] {klass("kotlinProject", "foo.Bar")});
|
||||
checkWhen(touch("src/Bar.kt"),
|
||||
new String[] {"src/Bar.kt", "src/boo.kt", "src/main.kt"},
|
||||
new String[] {klass("kotlinProject", "foo.Bar")});
|
||||
|
||||
checkWhen(del("src/main.kt"), null, packageClasses("kotlinProject", "src/main.kt", "foo.FooPackage"));
|
||||
checkWhen(del("src/main.kt"),
|
||||
new String[] {"src/Bar.kt", "src/boo.kt"},
|
||||
packageClasses("kotlinProject", "src/main.kt", "foo.FooPackage"));
|
||||
assertFilesExistInOutput(module, "boo/BooPackage.class", "foo/Bar.class");
|
||||
assertFilesNotExistInOutput(module, "foo/FooPackage.class");
|
||||
|
||||
checkWhen(touch("src/boo.kt"), null, packageClasses("kotlinProject", "src/boo.kt", "boo.BooPackage"));
|
||||
checkWhen(touch("src/Bar.kt"), null, new String[] {klass("kotlinProject", "foo.Bar")});
|
||||
}
|
||||
|
||||
public void testManyFilesForPackage() {
|
||||
doTest();
|
||||
|
||||
JpsModule module = myProject.getModules().get(0);
|
||||
assertFilesExistInOutput(module, "foo/FooPackage.class", "boo/BooPackage.class", "foo/Bar.class");
|
||||
|
||||
checkWhen(touch("src/main.kt"), null, packageClasses("kotlinProject", "src/main.kt", "foo.FooPackage"));
|
||||
checkWhen(touch("src/boo.kt"), null, packageClasses("kotlinProject", "src/boo.kt", "boo.BooPackage"));
|
||||
checkWhen(touch("src/Bar.kt"),
|
||||
new String[] {"src/Bar.kt", "src/boo.kt", "src/main.kt"},
|
||||
new String[] {
|
||||
klass("kotlinProject", "foo.Bar"),
|
||||
klass("kotlinProject", "foo.FooPackage"),
|
||||
packagePartClass("kotlinProject", "src/Bar.kt", "foo.FooPackage")});
|
||||
|
||||
checkWhen(del("src/main.kt"),
|
||||
new String[] {"src/Bar.kt", "src/boo.kt"},
|
||||
packageClasses("kotlinProject", "src/main.kt", "foo.FooPackage"));
|
||||
assertFilesExistInOutput(module, "foo/FooPackage.class", "boo/BooPackage.class", "foo/Bar.class");
|
||||
|
||||
checkWhen(touch("src/boo.kt"), null, packageClasses("kotlinProject", "src/boo.kt", "boo.BooPackage"));
|
||||
checkWhen(touch("src/Bar.kt"), null,
|
||||
new String[] {
|
||||
klass("kotlinProject", "foo.Bar"),
|
||||
klass("kotlinProject", "foo.FooPackage"),
|
||||
packagePartClass("kotlinProject", "src/Bar.kt", "foo.FooPackage")
|
||||
});
|
||||
}
|
||||
|
||||
public void testKotlinProjectTwoFilesInOnePackage() {
|
||||
doTest();
|
||||
|
||||
checkWhen(touch("src/test1.kt"), null, packageClasses("kotlinProject", "src/test1.kt", "_DefaultPackage"));
|
||||
checkWhen(touch("src/test2.kt"), null, packageClasses("kotlinProject", "src/test2.kt", "_DefaultPackage"));
|
||||
|
||||
checkWhen(new Action[]{ del("src/test1.kt"), del("src/test2.kt") }, NOTHING,
|
||||
new String[] {
|
||||
packagePartClass("kotlinProject", "src/test1.kt", "_DefaultPackage"),
|
||||
packagePartClass("kotlinProject", "src/test2.kt", "_DefaultPackage"),
|
||||
klass("kotlinProject", "_DefaultPackage")
|
||||
});
|
||||
|
||||
assertFilesNotExistInOutput(myProject.getModules().get(0), "_DefaultPackage.class");
|
||||
}
|
||||
|
||||
public void testKotlinJavaProject() {
|
||||
@@ -310,7 +353,14 @@ public class KotlinJpsBuildTest extends AbstractKotlinJpsBuildTestCase {
|
||||
}
|
||||
|
||||
private void checkWhen(Action action, @Nullable String[] pathsToCompile, @Nullable String[] pathsToDelete) {
|
||||
action.apply();
|
||||
checkWhen(new Action[]{action}, pathsToCompile, pathsToDelete);
|
||||
}
|
||||
|
||||
private void checkWhen(Action[] actions, @Nullable String[] pathsToCompile, @Nullable String[] pathsToDelete) {
|
||||
for (Action action : actions) {
|
||||
action.apply();
|
||||
}
|
||||
|
||||
makeAll().assertSuccessful();
|
||||
|
||||
if (pathsToCompile != null) {
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="IDEA_JDK" jdkType="JavaSDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="KotlinRuntime" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<option name="DEFAULT_COMPILER" value="Javac" />
|
||||
</component>
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/kotlinProject.iml" filepath="$PROJECT_DIR$/kotlinProject.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="IDEA_JDK" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1,5 @@
|
||||
package foo
|
||||
|
||||
class Bar
|
||||
|
||||
fun other() {}
|
||||
@@ -0,0 +1,6 @@
|
||||
package boo
|
||||
|
||||
import foo.Bar
|
||||
|
||||
fun boo(bar: Bar) {
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package foo
|
||||
|
||||
import boo.boo
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val bar = Bar()
|
||||
boo(bar)
|
||||
}
|
||||
Reference in New Issue
Block a user