Fix various tests

This commit is contained in:
Ilya Chernikov
2017-09-04 11:03:55 +03:00
parent 98413f200f
commit 95035b3d72
15 changed files with 92 additions and 21 deletions
@@ -40,4 +40,10 @@ test {
systemProperty 'overwrite.output', System.getProperty("overwrite.output", "false")
systemProperty 'kotlinVersion', project.version
jvmArgs '-ea'
ignoreFailures = System.getenv("kotlin_build_ignore_test_failures") == 'yes'
environment("PROJECT_CLASSES_DIRS", sourceSets.test.output.classesDirs.asPath)
environment("PROJECT_BUILD_DIR", buildDir)
workingDir = projectDir
}
@@ -8,8 +8,13 @@ import java.io.File
class CasesPublicAPITest {
companion object {
val visibilities by lazy { readKotlinVisibilities(File("build/cases-declarations.json")) }
val baseClassPath = File("build/classes/test/cases").absoluteFile
val visibilities by lazy { readKotlinVisibilities(File(System.getenv("PROJECT_BUILD_DIR") ?: "build", "cases-declarations.json")) }
val baseClassPaths: List<File> =
(System.getenv("PROJECT_CLASSES_DIRS")?.let { it.split(File.pathSeparator) }
?: listOf("build/classes/kotlin/test/cases", "build/classes/java/test/cases"))
.mapNotNull { File(it, "cases").canonicalFile.takeIf { it.isDirectory } }
.takeIf { it.isNotEmpty() }
?: throw IllegalStateException("Unable to get classes output dirs, set PROJECT_CLASSES_DIRS environment variable")
val baseOutputPath = File("src/test/kotlin/cases")
}
@@ -42,8 +47,8 @@ class CasesPublicAPITest {
private fun snapshotAPIAndCompare(testClassRelativePath: String) {
val testClassPath = baseClassPath.resolve(testClassRelativePath)
val testClasses = testClassPath.listFiles() ?: throw IllegalStateException("Cannot list files in $testClassPath")
val testClassPaths = baseClassPaths.map { it.resolve(testClassRelativePath) }
val testClasses = testClassPaths.flatMap { it.listFiles()?.asIterable() ?: emptyList() }
val testClassStreams = testClasses.asSequence().filter { it.name.endsWith(".class") }.map { it.inputStream() }
val api = getBinaryAPI(testClassStreams, visibilities).filterOutNonPublic()