Minor: reformat coverage
This commit is contained in:
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user