[IR, Native] KLIB ABI tests: backup but don't overwrite artifacts

^KT-50775
This commit is contained in:
Dmitriy Dolovov
2022-01-20 18:27:12 +03:00
parent 3648ae222c
commit 7df68af664
2 changed files with 23 additions and 4 deletions
@@ -54,7 +54,8 @@ abstract class AbstractKlibABITestCase : KtUsefulTestCase() {
buildDir = buildDir,
stdlibFile = stdlibFile(),
buildKlib = ::buildKlib,
buildBinaryAndRun = ::buildBinaryAndRun
buildBinaryAndRun = ::buildBinaryAndRun,
onNonEmptyBuildDirectory = { directory -> directory.listFiles()?.forEach(File::deleteRecursively) }
)
companion object {
@@ -63,7 +64,8 @@ abstract class AbstractKlibABITestCase : KtUsefulTestCase() {
buildDir: File,
stdlibFile: File,
buildKlib: (moduleName: String, moduleSourceDir: File, moduleDependencies: Collection<File>, klibFile: File) -> Unit,
buildBinaryAndRun: (mainModuleKlibFile: File, allDependencies: Collection<File>) -> Unit
buildBinaryAndRun: (mainModuleKlibFile: File, allDependencies: Collection<File>) -> Unit,
onNonEmptyBuildDirectory: (directory: File) -> Unit
) {
val projectName = testDir.name
@@ -111,7 +113,8 @@ abstract class AbstractKlibABITestCase : KtUsefulTestCase() {
modification.execute(moduleTestDir, moduleBuildDirs.sourceDir)
}
if (klibFile.exists()) klibFile.delete() // TODO: maybe backup?
if (!moduleBuildDirs.outputDir.list().isNullOrEmpty())
onNonEmptyBuildDirectory(moduleBuildDirs.outputDir)
val moduleDependencies = moduleStep.dependencies.map { dependencyName ->
if (dependencyName == "stdlib")