Add black box spec tests validation
This commit is contained in:
@@ -67,8 +67,7 @@ class TestExceptionsComparator(wholeFile: File) {
|
|||||||
(e.original.cause ?: e.original).run {
|
(e.original.cause ?: e.original).run {
|
||||||
casesAsString + toString() + stackTrace[0]?.let { ls + it }
|
casesAsString + toString() + stackTrace[0]?.let { ls + it }
|
||||||
}
|
}
|
||||||
is TestsCompilerError, is TestsInfrastructureError -> casesAsString + (e.original.cause ?: e.original).toString()
|
is TestsCompilerError, is TestsCompiletimeError, is TestsInfrastructureError -> casesAsString + (e.original.cause ?: e.original).toString()
|
||||||
is TestsCompiletimeError -> throw e.original
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -546,10 +546,11 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
|
|||||||
e1.printStackTrace();
|
e1.printStackTrace();
|
||||||
System.err.println("-----------------------------------------------------------------------------");
|
System.err.println("-----------------------------------------------------------------------------");
|
||||||
}
|
}
|
||||||
fail("See exceptions above");
|
System.err.println("See exceptions above");
|
||||||
} else {
|
} else {
|
||||||
fail("Compilation failure");
|
System.err.println("Compilation failure");
|
||||||
}
|
}
|
||||||
|
throw e;
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
throw new TestsCompilerError(e);
|
throw new TestsCompilerError(e);
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-1
@@ -10,7 +10,10 @@ import org.jetbrains.kotlin.TestExceptionsComparator
|
|||||||
import org.jetbrains.kotlin.spec.parsers.CommonParser
|
import org.jetbrains.kotlin.spec.parsers.CommonParser
|
||||||
import org.jetbrains.kotlin.spec.parsers.CommonPatterns.packagePattern
|
import org.jetbrains.kotlin.spec.parsers.CommonPatterns.packagePattern
|
||||||
import org.jetbrains.kotlin.spec.utils.GeneralConfiguration.TESTDATA_PATH
|
import org.jetbrains.kotlin.spec.utils.GeneralConfiguration.TESTDATA_PATH
|
||||||
|
import org.jetbrains.kotlin.spec.validators.BlackBoxTestTypeValidator
|
||||||
|
import org.jetbrains.kotlin.spec.validators.SpecTestValidationException
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||||
|
import org.junit.Assert
|
||||||
import java.io.*
|
import java.io.*
|
||||||
|
|
||||||
abstract class AbstractBlackBoxCodegenTestSpec : AbstractBlackBoxCodegenTest() {
|
abstract class AbstractBlackBoxCodegenTestSpec : AbstractBlackBoxCodegenTest() {
|
||||||
@@ -47,11 +50,19 @@ abstract class AbstractBlackBoxCodegenTestSpec : AbstractBlackBoxCodegenTest() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun doMultiFileTest(wholeFile: File, files: MutableList<TestFile>, javaFilesDir: File?) {
|
override fun doMultiFileTest(wholeFile: File, files: MutableList<TestFile>, javaFilesDir: File?) {
|
||||||
val (specTest, _) = CommonParser.parseSpecTest(
|
val (specTest, testLinkedType) = CommonParser.parseSpecTest(
|
||||||
wholeFile.canonicalPath,
|
wholeFile.canonicalPath,
|
||||||
mapOf("main.kt" to FileUtil.loadFile(wholeFile, true))
|
mapOf("main.kt" to FileUtil.loadFile(wholeFile, true))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val validator = BlackBoxTestTypeValidator(wholeFile, specTest)
|
||||||
|
|
||||||
|
try {
|
||||||
|
validator.validatePathConsistency(testLinkedType)
|
||||||
|
} catch (e: SpecTestValidationException) {
|
||||||
|
Assert.fail(e.description)
|
||||||
|
}
|
||||||
|
|
||||||
println(specTest)
|
println(specTest)
|
||||||
|
|
||||||
includeHelpers(wholeFile, files)
|
includeHelpers(wholeFile, files)
|
||||||
|
|||||||
@@ -21,7 +21,10 @@ import java.io.File
|
|||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
|
|
||||||
object CommonParser {
|
object CommonParser {
|
||||||
fun String.withUnderscores() = replace(" ", "_").toUpperCase()
|
fun String.withUnderscores() = replace(" ", "_")
|
||||||
|
.replace(File.separator, "_")
|
||||||
|
.toUpperCase()
|
||||||
|
|
||||||
fun String.splitByComma() = split(Regex(""",\s*"""))
|
fun String.splitByComma() = split(Regex(""",\s*"""))
|
||||||
fun String.splitByPathSeparator() = split(File.separator)
|
fun String.splitByPathSeparator() = split(File.separator)
|
||||||
fun String.withSpaces() = replace("_", " ")
|
fun String.withSpaces() = replace("_", " ")
|
||||||
|
|||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.spec.validators
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.spec.models.AbstractSpecTest
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
|
class BlackBoxTestTypeValidator(
|
||||||
|
testDataFile: File,
|
||||||
|
private val testInfo: AbstractSpecTest
|
||||||
|
) : AbstractTestValidator(testInfo, testDataFile) {
|
||||||
|
override fun computeTestTypes() = mapOf(1 to testInfo.testType)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user