mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
jacoco: fail fast on don't skip all roots when duplicated classes are rejected by the engine (IDEA-169825)
This commit is contained in:
@@ -10,13 +10,14 @@ import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.CompilerModuleExtension;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.rt.coverage.data.ClassData;
|
||||
import com.intellij.rt.coverage.data.LineCoverage;
|
||||
import com.intellij.rt.coverage.data.LineData;
|
||||
import com.intellij.rt.coverage.data.ProjectData;
|
||||
import com.intellij.util.PathUtil;
|
||||
import org.jacoco.agent.rt.RT;
|
||||
import org.jacoco.core.analysis.*;
|
||||
import org.jacoco.core.data.ExecutionDataReader;
|
||||
import org.jacoco.core.data.ExecutionDataStore;
|
||||
@@ -37,7 +38,7 @@ public class JaCoCoCoverageRunner extends JavaCoverageRunner {
|
||||
public ProjectData loadCoverageData(@NotNull File sessionDataFile, @Nullable CoverageSuite baseCoverageSuite) {
|
||||
final ProjectData data = new ProjectData();
|
||||
try {
|
||||
final Project project = baseCoverageSuite instanceof BaseCoverageSuite ? ((BaseCoverageSuite)baseCoverageSuite).getProject() : null;
|
||||
final Project project = baseCoverageSuite instanceof BaseCoverageSuite ? baseCoverageSuite.getProject() : null;
|
||||
if (project != null) {
|
||||
loadExecutionData(sessionDataFile, data, project);
|
||||
}
|
||||
@@ -81,7 +82,17 @@ public class JaCoCoCoverageRunner extends JavaCoverageRunner {
|
||||
if (compilerModuleExtension != null) {
|
||||
final VirtualFile[] roots = compilerModuleExtension.getOutputRoots(true);
|
||||
for (VirtualFile root : roots) {
|
||||
analyzer.analyzeAll(VfsUtil.virtualToIoFile(root));
|
||||
VfsUtilCore.processFilesRecursively(root, file -> {
|
||||
if (!file.isDirectory()) {
|
||||
try {
|
||||
analyzer.analyzeAll(file.getInputStream(), file.getPath());
|
||||
}
|
||||
catch (Exception e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -125,8 +136,8 @@ public class JaCoCoCoverageRunner extends JavaCoverageRunner {
|
||||
|
||||
public void appendCoverageArgument(final String sessionDataFilePath, final String[] patterns, final SimpleJavaParameters javaParameters,
|
||||
final boolean collectLineInfo, final boolean isSampling) {
|
||||
StringBuffer argument = new StringBuffer("-javaagent:");
|
||||
final String agentPath = PathUtil.getJarPathForClass(org.jacoco.agent.rt.RT.class);
|
||||
StringBuilder argument = new StringBuilder("-javaagent:");
|
||||
final String agentPath = PathUtil.getJarPathForClass(RT.class);
|
||||
final String parentPath = handleSpacesInPath(agentPath);
|
||||
argument.append(parentPath).append(File.separator).append(new File(agentPath).getName());
|
||||
argument.append("=");
|
||||
|
||||
Reference in New Issue
Block a user