Introduce base class for codegen and diagnostic tests
Extract base TestFile and TestModule classes. Move coroutinePackage related logic to base class
This commit is contained in:
+7
-9
@@ -27,24 +27,22 @@ abstract class AbstractBlackBoxCodegenTestSpec : AbstractBlackBoxCodegenTest() {
|
||||
private fun addPackageDirectiveToHelperFile(helperContent: String, packageName: String?) =
|
||||
helperContent.replace(HELPERS_PACKAGE_VARIABLE, if (packageName == null) "" else "package $packageName")
|
||||
|
||||
private fun includeHelpers(wholeFile: File, files: MutableList<TestFile>, specTest: AbstractSpecTest) {
|
||||
if (specTest.helpers == null) return
|
||||
private fun includeHelpers(wholeFile: File, files: List<TestFile>, specTest: AbstractSpecTest): List<TestFile> {
|
||||
if (specTest.helpers == null) return files
|
||||
|
||||
val fileContent = FileUtil.loadFile(wholeFile, true)
|
||||
val packageName = packagePattern.matcher(fileContent).let {
|
||||
if (it.find()) it.group("packageName") else null
|
||||
}
|
||||
|
||||
specTest.helpers.forEach {
|
||||
return files + specTest.helpers.map {
|
||||
val filename = "$it.kt"
|
||||
val helperContent = FileUtil.loadFile(File("$HELPERS_PATH/$filename"), true)
|
||||
files.add(
|
||||
TestFile(filename, addPackageDirectiveToHelperFile(helperContent, packageName))
|
||||
)
|
||||
TestFile(filename, addPackageDirectiveToHelperFile(helperContent, packageName))
|
||||
}
|
||||
}
|
||||
|
||||
override fun doMultiFileTest(wholeFile: File, files: MutableList<TestFile>) {
|
||||
override fun doMultiFileTest(wholeFile: File, files: List<TestFile>) {
|
||||
val (specTest, testLinkedType) = CommonParser.parseSpecTest(
|
||||
wholeFile.canonicalPath,
|
||||
mapOf("main.kt" to FileUtil.loadFile(wholeFile, true))
|
||||
@@ -60,9 +58,9 @@ abstract class AbstractBlackBoxCodegenTestSpec : AbstractBlackBoxCodegenTest() {
|
||||
|
||||
println(specTest)
|
||||
|
||||
includeHelpers(wholeFile, files, specTest)
|
||||
val filesWithHelpers = includeHelpers(wholeFile, files, specTest)
|
||||
|
||||
val runTest = { super.doMultiFileTest(wholeFile, files, specTest.unexpectedBehavior) }
|
||||
val runTest = { super.doMultiFileTest(wholeFile, filesWithHelpers, specTest.unexpectedBehavior) }
|
||||
|
||||
if (specTest.exception == null) {
|
||||
runTest()
|
||||
|
||||
Reference in New Issue
Block a user