Minor: reformat coverage

This commit is contained in:
Nikolay Krasko
2018-01-18 20:35:47 +03:00
parent 6d7c779df2
commit 4d2061d836
@@ -40,8 +40,6 @@ import org.jetbrains.kotlin.psi.KtFile
import java.io.File import java.io.File
class KotlinCoverageExtension : JavaCoverageEngineExtension() { class KotlinCoverageExtension : JavaCoverageEngineExtension() {
private val LOG = Logger.getInstance(KotlinCoverageExtension::class.java)
override fun isApplicableTo(conf: RunConfigurationBase?): Boolean = conf is KotlinRunConfiguration override fun isApplicableTo(conf: RunConfigurationBase?): Boolean = conf is KotlinRunConfiguration
override fun suggestQualifiedName(sourceFile: PsiFile, classes: Array<out PsiClass>, names: MutableSet<String>): Boolean { override fun suggestQualifiedName(sourceFile: PsiFile, classes: Array<out PsiClass>, names: MutableSet<String>): Boolean {
@@ -55,9 +53,10 @@ class KotlinCoverageExtension : JavaCoverageEngineExtension() {
return false return false
} }
// Implements API added in IDEA 14.1 override fun getSummaryCoverageInfo(
override fun getSummaryCoverageInfo(coverageAnnotator: JavaCoverageAnnotator, coverageAnnotator: JavaCoverageAnnotator,
element: PsiNamedElement): PackageAnnotator.ClassCoverageInfo? { element: PsiNamedElement
): PackageAnnotator.ClassCoverageInfo? {
if (element !is KtFile) { if (element !is KtFile) {
return null return null
} }
@@ -67,17 +66,18 @@ class KotlinCoverageExtension : JavaCoverageEngineExtension() {
return if (qualifiedNames == null) null else totalCoverageForQualifiedNames(coverageAnnotator, qualifiedNames) return if (qualifiedNames == null) null else totalCoverageForQualifiedNames(coverageAnnotator, qualifiedNames)
} }
// Implements API added in IDEA 14.1
override fun keepCoverageInfoForClassWithoutSource(bundle: CoverageSuitesBundle, classFile: File): Boolean { override fun keepCoverageInfoForClassWithoutSource(bundle: CoverageSuitesBundle, classFile: File): Boolean {
// TODO check scope and source roots // TODO check scope and source roots
return true // keep everything, sort it out later return true // keep everything, sort it out later
} }
override fun collectOutputFiles(srcFile: PsiFile, override fun collectOutputFiles(
output: VirtualFile?, srcFile: PsiFile,
testoutput: VirtualFile?, output: VirtualFile?,
suite: CoverageSuitesBundle, testoutput: VirtualFile?,
classFiles: MutableSet<File>): Boolean { suite: CoverageSuitesBundle,
classFiles: MutableSet<File>
): Boolean {
if (srcFile is KtFile) { if (srcFile is KtFile) {
val fileIndex = ProjectRootManager.getInstance(srcFile.getProject()).fileIndex val fileIndex = ProjectRootManager.getInstance(srcFile.getProject()).fileIndex
if (fileIndex.isInLibraryClasses(srcFile.getVirtualFile()) || if (fileIndex.isInLibraryClasses(srcFile.getVirtualFile()) ||
@@ -103,15 +103,17 @@ class KotlinCoverageExtension : JavaCoverageEngineExtension() {
if (existingClassFiles.isEmpty()) { if (existingClassFiles.isEmpty()) {
return null return null
} }
LOG.debug("Classfiles: [${existingClassFiles.joinToString { it.name }}]") LOG.debug("ClassFiles: [${existingClassFiles.joinToString { it.name }}]")
return existingClassFiles.map { return existingClassFiles.map {
val relativePath = VfsUtilCore.getRelativePath(it, outputRoot!!)!! val relativePath = VfsUtilCore.getRelativePath(it, outputRoot!!)!!
StringUtil.trimEnd(relativePath, ".class").replace("/", ".") StringUtil.trimEnd(relativePath, ".class").replace("/", ".")
} }
} }
private fun totalCoverageForQualifiedNames(coverageAnnotator: JavaCoverageAnnotator, private fun totalCoverageForQualifiedNames(
qualifiedNames: List<String>): PackageAnnotator.ClassCoverageInfo { coverageAnnotator: JavaCoverageAnnotator,
qualifiedNames: List<String>
): PackageAnnotator.ClassCoverageInfo {
val result = PackageAnnotator.ClassCoverageInfo() val result = PackageAnnotator.ClassCoverageInfo()
result.totalClassCount = 0 result.totalClassCount = 0
qualifiedNames.forEach { qualifiedNames.forEach {
@@ -124,8 +126,7 @@ class KotlinCoverageExtension : JavaCoverageEngineExtension() {
result.totalLineCount += classInfo.totalLineCount result.totalLineCount += classInfo.totalLineCount
result.fullyCoveredLineCount += classInfo.fullyCoveredLineCount result.fullyCoveredLineCount += classInfo.fullyCoveredLineCount
result.partiallyCoveredLineCount += classInfo.partiallyCoveredLineCount result.partiallyCoveredLineCount += classInfo.partiallyCoveredLineCount
} } else {
else {
LOG.debug("Found no coverage for $it") LOG.debug("Found no coverage for $it")
} }
} }
@@ -138,12 +139,12 @@ class KotlinCoverageExtension : JavaCoverageEngineExtension() {
if (packageOutputDir == null) return listOf() if (packageOutputDir == null) return listOf()
val prefixes = collectClassFilePrefixes(file) val prefixes = collectClassFilePrefixes(file)
LOG.debug("Classfile prefixes: [${prefixes.joinToString(", ")}]") LOG.debug("ClassFile prefixes: [${prefixes.joinToString(", ")}]")
return packageOutputDir.children.filter { return packageOutputDir.children.filter { packageFile ->
file -> prefixes.any { prefixes.any {
(file.name.startsWith(it + "$") && FileUtilRt.getExtension(file.name) == "class") || (packageFile.name.startsWith(it + "$") && FileUtilRt.getExtension(packageFile.name) == "class") ||
file.name == it + ".class" packageFile.name == it + ".class"
} }
} }
} }