@@ -58,6 +58,7 @@ private val ROOT_PATH_PREFIX: String = System.getProperty("fir.bench.prefix", "/
58
58
private val OUTPUT_DIR_REGEX_FILTER : String = System .getProperty(" fir.bench.filter" , " .*" )
59
59
private val MODULE_NAME_FILTER : String? = System .getProperty(" fir.bench.filter.name" )
60
60
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" )
61
62
internal val ENABLE_SLOW_ASSERTIONS : Boolean = System .getProperty(" fir.bench.enable.slow.assertions" ) == " true"
62
63
63
64
abstract class AbstractModularizedTest : KtUsefulTestCase () {
@@ -178,6 +179,7 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() {
178
179
val filterRegex = OUTPUT_DIR_REGEX_FILTER .toRegex()
179
180
val moduleName = MODULE_NAME_FILTER
180
181
val moduleNameRegexOutFilter = MODULE_NAME_REGEX_OUT ?.toRegex()
182
+ val containsSourcesFilter = CONTAINS_SOURCES_REGEX_FILTER ?.toRegex()
181
183
val files = root.listFiles() ? : emptyArray()
182
184
val modules = files.filter {
183
185
it.extension == " xml" && (moduleNameRegexOutFilter == null || ! it.name.matches(moduleNameRegexOutFilter))
@@ -188,6 +190,13 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() {
188
190
.also { additionalMessages + = " Discovered ${it.size} modules" }
189
191
.filter { it.rawOutputDir.matches(filterRegex) }
190
192
.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
+ }
191
200
.filter { (moduleName == null ) || it.name == moduleName }
192
201
.also { additionalMessages + = " Filtered by module name to ${it.size} modules" }
193
202
.filter { ! it.isCommon }
0 commit comments