KT-34862 use abi snapshot instead of build history files
Use jar snapshot instead build history file to avoid using time stamps and support remote gradle cache
This commit is contained in:
+4
-2
@@ -30,9 +30,10 @@ abstract class AbstractIncrementalMultiModuleCompilerRunnerTest<Args : CommonCom
|
||||
private val nameToModules = mutableMapOf<String, MutableSet<IncrementalModuleEntry>>()
|
||||
private val jarToClassListFile = mutableMapOf<File, File>()
|
||||
private val jarToModule = mutableMapOf<File, IncrementalModuleEntry>()
|
||||
private val jarToAbiSnapshot = mutableMapOf<File, File>()
|
||||
|
||||
protected val incrementalModuleInfo: IncrementalModuleInfo by lazy {
|
||||
IncrementalModuleInfo(workingDir, workingDir, dirToModule, nameToModules, jarToClassListFile, jarToModule)
|
||||
IncrementalModuleInfo(workingDir, workingDir, dirToModule, nameToModules, jarToClassListFile, jarToModule, jarToAbiSnapshot)
|
||||
}
|
||||
|
||||
protected abstract val modulesApiHistory: ApiHistory
|
||||
@@ -97,8 +98,9 @@ abstract class AbstractIncrementalMultiModuleCompilerRunnerTest<Args : CommonCom
|
||||
val moduleBuildDir = File(outDir, moduleName)
|
||||
val moduleCacheDir = File(cacheDir, moduleName)
|
||||
val moduleBuildHistoryFile = buildHistoryFile(moduleCacheDir)
|
||||
val abiSnapshotFile = abiSnapshotFile(moduleCacheDir)
|
||||
|
||||
val moduleEntry = IncrementalModuleEntry(workingDir.absolutePath, moduleName, outDir, moduleBuildHistoryFile)
|
||||
val moduleEntry = IncrementalModuleEntry(workingDir.absolutePath, moduleName, outDir, moduleBuildHistoryFile, abiSnapshotFile)
|
||||
|
||||
dirToModule[moduleBuildDir] = moduleEntry
|
||||
nameToModules.getOrPut(moduleName) { mutableSetOf() }.add(moduleEntry)
|
||||
|
||||
+3
@@ -177,6 +177,9 @@ abstract class AbstractIncrementalCompilerRunnerTestBase<Args : CommonCompilerAr
|
||||
@JvmStatic
|
||||
protected fun buildHistoryFile(cacheDir: File): File = File(cacheDir, "build-history.bin")
|
||||
|
||||
@JvmStatic
|
||||
protected fun abiSnapshotFile(cacheDir: File): File = File(cacheDir, IncrementalCompilerRunner.ABI_SNAPSHOT_FILE_NAME)
|
||||
|
||||
private const val ARGUMENTS_FILE_NAME = "args.txt"
|
||||
|
||||
private fun parseAdditionalArgs(testDir: File): List<String> {
|
||||
|
||||
+8
-3
@@ -26,9 +26,11 @@ class ModulesApiHistoryAndroidTest {
|
||||
private lateinit var appRoot: File
|
||||
private lateinit var appKotlinDestination: File
|
||||
private lateinit var appHistory: File
|
||||
private lateinit var appAbiSnapshot: File
|
||||
private lateinit var libRoot: File
|
||||
private lateinit var libKotlinDestination: File
|
||||
private lateinit var libHistory: File
|
||||
private lateinit var libAbiSnapshot: File
|
||||
|
||||
private lateinit var androidHistory: ModulesApiHistoryAndroid
|
||||
|
||||
@@ -38,8 +40,9 @@ class ModulesApiHistoryAndroidTest {
|
||||
|
||||
appRoot = projectRoot.resolve("app")
|
||||
appHistory = appRoot.resolve("build/tmp/kotlin/app_history.bin")
|
||||
appAbiSnapshot = appRoot.resolve("build/tmp/kotlin/app_abi_snapshot.bin")
|
||||
appKotlinDestination = appRoot.resolve("build/tmp/kotlin-classes").apply { mkdirs() }
|
||||
val appEntry = IncrementalModuleEntry(":app", "app", appRoot.resolve("build"), appHistory)
|
||||
val appEntry = IncrementalModuleEntry(":app", "app", appRoot.resolve("build"), appHistory, appAbiSnapshot)
|
||||
appRoot.resolve("build/intermediates/classes/meta-inf/").apply {
|
||||
mkdirs()
|
||||
resolve("app.kotlin_module").createNewFile()
|
||||
@@ -47,8 +50,9 @@ class ModulesApiHistoryAndroidTest {
|
||||
|
||||
libRoot = projectRoot.resolve("lib")
|
||||
libHistory = libRoot.resolve("lib/build/tmp/kotlin/lib_history.bin")
|
||||
libAbiSnapshot = libRoot.resolve("lib/build/tmp/kotlin/lib_abi_snapshot.bin")
|
||||
libKotlinDestination = libRoot.resolve("build/tmp/kotlin-classes").apply { mkdirs() }
|
||||
val libEntry = IncrementalModuleEntry(":lib", "lib", libRoot.resolve("build"), libHistory)
|
||||
val libEntry = IncrementalModuleEntry(":lib", "lib", libRoot.resolve("build"), libHistory, libAbiSnapshot)
|
||||
libRoot.resolve("build/intermediates/classes/meta-inf/").apply {
|
||||
mkdirs()
|
||||
resolve("lib.kotlin_module").createNewFile()
|
||||
@@ -60,7 +64,8 @@ class ModulesApiHistoryAndroidTest {
|
||||
dirToModule = mapOf(appKotlinDestination to appEntry, libKotlinDestination to libEntry),
|
||||
nameToModules = mapOf("app" to setOf(appEntry), "lib" to setOf(libEntry)),
|
||||
jarToClassListFile = mapOf(),
|
||||
jarToModule = mapOf()
|
||||
jarToModule = mapOf(),
|
||||
jarToAbiSnapshot = mapOf()
|
||||
)
|
||||
|
||||
androidHistory = ModulesApiHistoryAndroid(info)
|
||||
|
||||
Reference in New Issue
Block a user