diff --git a/java/compiler/impl/testSrc/com/intellij/compiler/BaseCompilerTestCase.java b/java/compiler/impl/testSrc/com/intellij/compiler/BaseCompilerTestCase.java index 6501f8f77098..cf81ca4257e2 100644 --- a/java/compiler/impl/testSrc/com/intellij/compiler/BaseCompilerTestCase.java +++ b/java/compiler/impl/testSrc/com/intellij/compiler/BaseCompilerTestCase.java @@ -134,12 +134,19 @@ public abstract class BaseCompilerTestCase extends ModuleTestCase { } protected Module addModule(final String moduleName, final @Nullable VirtualFile sourceRoot) { + return addModule(moduleName, sourceRoot, null); + } + + protected Module addModule(final String moduleName, final @Nullable VirtualFile sourceRoot, final @Nullable VirtualFile testRoot) { return new WriteAction() { @Override protected void run(final Result result) { final Module module = createModule(moduleName); if (sourceRoot != null) { - PsiTestUtil.addSourceContentToRoots(module, sourceRoot); + PsiTestUtil.addSourceContentToRoots(module, sourceRoot, false); + } + if (testRoot != null) { + PsiTestUtil.addSourceContentToRoots(module, testRoot, true); } ModuleRootModificationUtil.setModuleSdk(module, getTestProjectJdk()); result.setResult(module); @@ -365,8 +372,12 @@ public abstract class BaseCompilerTestCase extends ModuleTestCase { } protected static void assertOutput(Module module, TestFileSystemBuilder item) { - File outputDir = getOutputDir(module); - Assert.assertTrue("Output directory " + outputDir.getAbsolutePath() + " doesn't exist", outputDir.exists()); + assertOutput(module, item, false); + } + + protected static void assertOutput(Module module, TestFileSystemBuilder item, final boolean forTests) { + File outputDir = getOutputDir(module, forTests); + Assert.assertTrue((forTests? "Test output" : "Output") +" directory " + outputDir.getAbsolutePath() + " doesn't exist", outputDir.exists()); item.build().assertDirectoryEqual(outputDir); } @@ -376,10 +387,14 @@ public abstract class BaseCompilerTestCase extends ModuleTestCase { } protected static File getOutputDir(Module module) { + return getOutputDir(module, false); + } + + protected static File getOutputDir(Module module, boolean forTests) { CompilerModuleExtension extension = CompilerModuleExtension.getInstance(module); Assert.assertNotNull(extension); - String outputUrl = extension.getCompilerOutputUrl(); - Assert.assertNotNull("Output directory for module '" + module.getName() + "' isn't specified", outputUrl); + String outputUrl = forTests? extension.getCompilerOutputUrlForTests() : extension.getCompilerOutputUrl(); + Assert.assertNotNull((forTests? "Test output" : "Output") +" directory for module '" + module.getName() + "' isn't specified", outputUrl); return JpsPathUtil.urlToFile(outputUrl); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java index 0e9326f4acd3..ed6dd2ed89f6 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java @@ -87,10 +87,7 @@ public class CompileScopeImpl extends CompileScope { return true; } final Set files = myFiles.get(target); - if (files != null) { - return files.contains(file); - } - return myTypes.contains(target.getTargetType()) || myTargets.contains(target) || isAffectedByAssociatedModule(target); + return files != null && files.contains(file); } private boolean isAffectedByAssociatedModule(BuildTarget target) {