Skip to content

Commit fc1c222

Browse files
ligeeSpace Team
authored andcommitted
MT tests: add module filtering by source paths
required e.g. for IJ Community tests #KT-81053
1 parent 4e3129e commit fc1c222

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractModularizedTest.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ private val ROOT_PATH_PREFIX: String = System.getProperty("fir.bench.prefix", "/
5858
private val OUTPUT_DIR_REGEX_FILTER: String = System.getProperty("fir.bench.filter", ".*")
5959
private val MODULE_NAME_FILTER: String? = System.getProperty("fir.bench.filter.name")
6060
private val MODULE_NAME_REGEX_OUT: String? = System.getProperty("fir.bench.filter.out.name")
61+
private val CONTAINS_SOURCES_REGEX_FILTER: String? = System.getProperty("fir.bench.filter.contains.sources")
6162
internal val ENABLE_SLOW_ASSERTIONS: Boolean = System.getProperty("fir.bench.enable.slow.assertions") == "true"
6263

6364
abstract class AbstractModularizedTest : KtUsefulTestCase() {
@@ -178,6 +179,7 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() {
178179
val filterRegex = OUTPUT_DIR_REGEX_FILTER.toRegex()
179180
val moduleName = MODULE_NAME_FILTER
180181
val moduleNameRegexOutFilter = MODULE_NAME_REGEX_OUT?.toRegex()
182+
val containsSourcesFilter = CONTAINS_SOURCES_REGEX_FILTER?.toRegex()
181183
val files = root.listFiles() ?: emptyArray()
182184
val modules = files.filter {
183185
it.extension == "xml" && (moduleNameRegexOutFilter == null || !it.name.matches(moduleNameRegexOutFilter))
@@ -188,6 +190,13 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() {
188190
.also { additionalMessages += "Discovered ${it.size} modules" }
189191
.filter { it.rawOutputDir.matches(filterRegex) }
190192
.also { additionalMessages += "Filtered by regex to ${it.size} modules" }
193+
.let { modules ->
194+
if (containsSourcesFilter != null) {
195+
modules.filter { module ->
196+
module.rawSources.any { s -> containsSourcesFilter.containsMatchIn(s) }
197+
}.also { additionalMessages += "Filtered by source paths to ${it.size} modules" }
198+
} else modules
199+
}
191200
.filter { (moduleName == null) || it.name == moduleName }
192201
.also { additionalMessages += "Filtered by module name to ${it.size} modules" }
193202
.filter { !it.isCommon }

0 commit comments

Comments
 (0)