Reduce classpath for class loader in CodegenTestCase

There's no point in adding JDK (mock or full) roots to it, as well as
stdlib/reflect/test (they are loaded by the parent class loader, created
in ForTestCompileRuntime)
This commit is contained in:
Alexander Udalov
2017-07-11 13:08:28 +03:00
parent 743278d456
commit c9b14c5a45
5 changed files with 50 additions and 37 deletions
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.android.synthetic.test
import com.intellij.openapi.util.io.FileUtil
import com.intellij.util.ArrayUtil
import com.intellij.util.Processor
import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots
import org.jetbrains.kotlin.codegen.AbstractBlackBoxCodegenTest
import org.jetbrains.kotlin.codegen.CodegenTestFiles
import org.jetbrains.kotlin.config.CompilerConfiguration
@@ -26,6 +27,7 @@ import org.jetbrains.kotlin.test.ConfigurationKind
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.TestJdkKind
import java.io.File
import java.net.URL
import java.util.*
import java.util.regex.Pattern
@@ -56,6 +58,10 @@ abstract class AbstractAndroidBoxTest : AbstractBlackBoxCodegenTest() {
}
}
override fun getClassPathURLs(): Array<URL> {
return myEnvironment.configuration.jvmClasspathRoots.map { it.toURI().toURL() }.toTypedArray()
}
private fun getFakeFiles(path: String): Collection<String> {
return FileUtil.findFilesByMask(Pattern.compile("^Fake.*\\.kt$"), File(path.replace(getTestName(true), ""))).map { relativePath(it) }
}
@@ -102,4 +108,4 @@ abstract class AbstractAndroidBoxTest : AbstractBlackBoxCodegenTest() {
)
blackBox()
}
}
}