Analysis API: move reference resolve testsdata with errors to dedicated folders

This commit is contained in:
Ilya Kirillov
2022-01-26 10:56:43 +01:00
parent 1a2de65421
commit 4530041cbb
74 changed files with 335 additions and 465 deletions
@@ -82,6 +82,8 @@ class TestGroup(
val annotations: List<AnnotationModel>,
val targetBackendComputer: TargetBackendComputer
) {
val testDataRoot: String
get() = this@TestGroup.testDataRoot
val baseDir: String
get() = this@TestGroup.testsRoot
@@ -106,6 +108,7 @@ class TestGroup(
// directives TARGET_BACKEND/DONT_TARGET_EXACT_BACKEND won't be generated
targetBackend: TargetBackend? = null,
excludeDirs: List<String> = listOf(),
excludeDirsRecursively: List<String> = listOf(),
filenameStartsLowerCase: Boolean? = null, // assert that file is properly named
skipIgnored: Boolean = false, // pretty meaningless flag, affects only few test names in one test runner
deep: Int? = null, // specifies how deep recursive search will follow directory with testdata
@@ -128,7 +131,7 @@ class TestGroup(
SimpleTestClassModel(
rootFile, recursive, excludeParentDirs,
compiledPattern, compiledExcludedPattern, filenameStartsLowerCase, testMethod, className,
realTargetBackend, excludeDirs, skipIgnored, testRunnerMethodName, additionalRunnerArguments, deep, annotations,
realTargetBackend, excludeDirs, excludeDirsRecursively, skipIgnored, testRunnerMethodName, additionalRunnerArguments, deep, annotations,
extractTagsFromDirectory(rootFile), methodModels
)
}
@@ -25,7 +25,7 @@ object SimpleTestClassModelTestAllFilesPresentMethodGenerator : MethodGenerator<
override fun generateBody(method: SimpleTestClassModel.TestAllFilesPresentMethodModel, p: Printer) {
with(method) {
val exclude = StringBuilder()
for (dir in classModel.excludeDirs) {
for (dir in classModel.excludeDirs + classModel.excludeDirsRecursively) {
exclude.append(", \"")
exclude.append(StringUtil.escapeStringCharacters(dir))
exclude.append("\"")
@@ -25,6 +25,7 @@ class SimpleTestClassModel(
private val testClassName: String,
val targetBackend: TargetBackend,
excludeDirs: Collection<String>,
excludeDirsRecursively: Collection<String>,
private val skipIgnored: Boolean,
private val testRunnerMethodName: String,
private val additionalRunnerArguments: List<String>,
@@ -37,6 +38,7 @@ class SimpleTestClassModel(
get() = testClassName
val excludeDirs: Set<String> = excludeDirs.toSet()
val excludeDirsRecursively: Set<String> = excludeDirsRecursively.toSet()
override val innerTestClasses: Collection<TestClassModel> by lazy {
if (!rootFile.isDirectory || !recursive || deep != null && deep < 1) {
@@ -45,7 +47,7 @@ class SimpleTestClassModel(
val children = mutableListOf<TestClassModel>()
val files = rootFile.listFiles() ?: return@lazy emptyList()
for (file in files) {
if (file.isDirectory && dirHasFilesInside(file) && !excludeDirs.contains(file.name)) {
if (file.isDirectory && dirHasFilesInside(file) && !excludeDirs.contains(file.name) && !excludeDirsRecursively.contains(file.name)) {
val innerTestClassName = fileNameToJavaIdentifier(file)
children.add(
SimpleTestClassModel(
@@ -59,6 +61,7 @@ class SimpleTestClassModel(
innerTestClassName,
targetBackend,
excludesStripOneDirectory(file.name),
excludeDirsRecursively,
skipIgnored,
testRunnerMethodName,
additionalRunnerArguments,