Simplify lazy caches tests

Original commit: c9012b10c5
This commit is contained in:
Alexey Tsvetkov
2015-11-19 14:48:56 +03:00
parent ccc54dfb51
commit 8839938183
17 changed files with 75 additions and 65 deletions
@@ -54,6 +54,10 @@ import java.util.*
internal val CACHE_DIRECTORY_NAME = "kotlin"
@TestOnly
public fun getCacheDirectoryName(): String =
CACHE_DIRECTORY_NAME
public class IncrementalCacheImpl(
private val target: ModuleBuildTarget,
paths: BuildDataPaths
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.config.IncrementalCompilation
import org.jetbrains.kotlin.jps.incremental.CacheVersion
import org.jetbrains.kotlin.jps.incremental.CacheVersionProvider
import org.jetbrains.kotlin.jps.incremental.KotlinDataContainerTarget
import org.jetbrains.kotlin.jps.incremental.getCacheDirectoryName
import org.jetbrains.kotlin.jps.incremental.storage.BasicMapsOwner
import org.jetbrains.kotlin.utils.Printer
import java.io.File
@@ -86,41 +87,46 @@ public abstract class AbstractIncrementalLazyCachesTest : AbstractIncrementalJps
val p = Printer(sb)
val targets = projectDescriptor.allModuleTargets
val paths = projectDescriptor.dataManager.dataPaths
val versionProvider = CacheVersionProvider(paths)
val versions = CacheVersionProvider(paths)
dumpCachesForTarget(p, paths, KotlinDataContainerTarget, versionProvider.dataContainerVersion())
dumpCachesForTarget(p, paths, KotlinDataContainerTarget, versions.dataContainerVersion())
for (target in targets.sortedBy { it.presentableName }) {
dumpCachesForTarget(p, paths, target, versionProvider.normalVersion(target), versionProvider.experimentalVersion(target))
dumpCachesForTarget(p, paths, target, versions.normalVersion(target), versions.experimentalVersion(target),
subdirectory = getCacheDirectoryName())
}
return sb.toString()
}
private fun dumpCachesForTarget(p: Printer, paths: BuildDataPaths, target: BuildTarget<*>, vararg cacheVersions: CacheVersion) {
private fun dumpCachesForTarget(
p: Printer,
paths: BuildDataPaths,
target: BuildTarget<*>,
vararg cacheVersions: CacheVersion,
subdirectory: String? = null
) {
p.println(target)
p.pushIndent()
val dataRoot = paths.getTargetDataRoot(target)
val dataRoot = paths.getTargetDataRoot(target).let { if (subdirectory != null) File(it, subdirectory) else it }
cacheVersions
.map { it.formatVersionFile }
.filter { it.exists() }
.sortedBy { it.name }
.forEach { p.println(it.relativeTo(dataRoot)) }
.forEach { p.println(it.name) }
val cacheNames = kotlinCacheNames(dataRoot)
cacheNames.sorted().forEach { p.println(it) }
kotlinCacheNames(dataRoot).sorted().forEach { p.println(it) }
p.popIndent()
}
private fun kotlinCacheNames(dataRoot: File): List<String> {
private fun kotlinCacheNames(dir: File): List<String> {
val result = arrayListOf<String>()
for (file in dataRoot.walk()) {
for (file in dir.walk()) {
if (file.isFile && file.extension == BasicMapsOwner.CACHE_EXTENSION) {
result.add(file.relativeTo(dataRoot))
result.add(file.name)
}
}
@@ -7,7 +7,7 @@ kotlin-data-container
Module 'module' production
experimental-format-version.txt
format-version.txt
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -1,7 +1,7 @@
kotlin-data-container
Module 'module' production
format-version.txt
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -1,9 +1,9 @@
kotlin-data-container
Module 'module' production
format-version.txt
kotlin/inline-functions.tab
kotlin/inlined-to.tab
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
inline-functions.tab
inlined-to.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -1,6 +1,6 @@
kotlin-data-container
Module 'module' production
format-version.txt
kotlin/proto.tab
kotlin/source-to-classes.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -7,6 +7,6 @@ kotlin-data-container
Module 'module' production
experimental-format-version.txt
format-version.txt
kotlin/proto.tab
kotlin/source-to-classes.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -1,8 +1,8 @@
kotlin-data-container
Module 'module' production
format-version.txt
kotlin/constants.tab
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
constants.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -7,8 +7,8 @@ kotlin-data-container
Module 'module' production
experimental-format-version.txt
format-version.txt
kotlin/constants.tab
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
constants.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -1,7 +1,7 @@
kotlin-data-container
Module 'module' production
format-version.txt
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -7,7 +7,7 @@ kotlin-data-container
Module 'module' production
experimental-format-version.txt
format-version.txt
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -1,9 +1,9 @@
kotlin-data-container
Module 'module' production
format-version.txt
kotlin/inline-functions.tab
kotlin/inlined-to.tab
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
inline-functions.tab
inlined-to.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -7,9 +7,9 @@ kotlin-data-container
Module 'module' production
experimental-format-version.txt
format-version.txt
kotlin/inline-functions.tab
kotlin/inlined-to.tab
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
inline-functions.tab
inlined-to.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -1,8 +1,8 @@
kotlin-data-container
Module 'module' production
format-version.txt
kotlin/inline-functions.tab
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
inline-functions.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -7,8 +7,8 @@ kotlin-data-container
Module 'module' production
experimental-format-version.txt
format-version.txt
kotlin/inline-functions.tab
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
inline-functions.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -1,7 +1,7 @@
kotlin-data-container
Module 'module' production
format-version.txt
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests
@@ -7,7 +7,7 @@ kotlin-data-container
Module 'module' production
experimental-format-version.txt
format-version.txt
kotlin/package-parts.tab
kotlin/proto.tab
kotlin/source-to-classes.tab
package-parts.tab
proto.tab
source-to-classes.tab
Module 'module' tests