Skip to content

Commit b483fae

Browse files
committed
Split dotty.tests.filter by comma, to select multiple
1 parent 8d28d94 commit b483fae

File tree

7 files changed

+18
-19
lines changed

7 files changed

+18
-19
lines changed

compiler/test/dotc/comptest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ object comptest extends ParallelTesting {
1010
def numberOfSlaves = 5
1111
def safeMode = false
1212
def isInteractive = true
13-
def testFilter = None
13+
def testFilter = Nil
1414
def updateCheckFiles: Boolean = false
1515

1616
val posDir = "./tests/pos/"

compiler/test/dotty/Properties.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ object Properties {
2121
/** Filter out tests not matching the regex supplied by "dotty.tests.filter"
2222
* define
2323
*/
24-
val testsFilter: Option[String] = sys.props.get("dotty.tests.filter")
24+
val testsFilter: List[String] = sys.props.get("dotty.tests.filter").fold(Nil)(_.split(',').toList)
2525

2626
/** Tests should override the checkfiles with the current output */
2727
val testsUpdateCheckfile: Boolean =

compiler/test/dotty/tools/dotc/transform/PatmatExhaustivityTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class PatmatExhaustivityTest {
6565
.filter(f => f.extension == "scala" || f.isDirectory)
6666
.filter { f =>
6767
val path = if f.isDirectory then f.path + "/" else f.path
68-
Properties.testsFilter.getOrElse("").split(',').exists(path.contains)
68+
Properties.testsFilter.isEmpty || Properties.testsFilter.exists(path.contains)
6969
}
7070
.map(f => if f.isDirectory then compileDir(f.jpath) else compileFile(f.jpath))
7171

compiler/test/dotty/tools/utils.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def scripts(path: String): Array[File] = {
1717
assert(dir.exists && dir.isDirectory, "Couldn't load scripts dir")
1818
dir.listFiles.filter { f =>
1919
val path = if f.isDirectory then f.getPath + "/" else f.getPath
20-
path.contains(Properties.testsFilter.getOrElse(""))
20+
Properties.testsFilter.isEmpty || Properties.testsFilter.exists(path.contains)
2121
}
2222
}
2323

compiler/test/dotty/tools/vulpix/ParallelTesting.scala

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ trait ParallelTesting extends RunnerOrchestration { self =>
4444
*/
4545
def isInteractive: Boolean
4646

47-
/** A string which is used to filter which tests to run, if `None` will run
48-
* all tests. All absolute paths that contain the substring `testFilter`
47+
/** A list of strings which is used to filter which tests to run, if `Nil` will run
48+
* all tests. All absolute paths that contain any of the substrings in `testFilter`
4949
* will be run
5050
*/
51-
def testFilter: Option[String]
51+
def testFilter: List[String]
5252

5353
/** Tests should override the checkfiles with the current output */
5454
def updateCheckFiles: Boolean
@@ -340,12 +340,12 @@ trait ParallelTesting extends RunnerOrchestration { self =>
340340

341341
/** All testSources left after filtering out */
342342
private val filteredSources =
343-
if (!testFilter.isDefined) testSources
343+
if (testFilter.isEmpty) testSources
344344
else testSources.filter {
345345
case JointCompilationSource(_, files, _, _, _, _) =>
346-
files.exists(file => file.getPath.contains(testFilter.get))
346+
testFilter.exists(filter => files.exists(file => file.getPath.contains(filter)))
347347
case SeparateCompilationSource(_, dir, _, _) =>
348-
dir.getPath.contains(testFilter.get)
348+
testFilter.exists(dir.getPath.contains)
349349
}
350350

351351
/** Total amount of test sources being compiled by this test */
@@ -581,9 +581,9 @@ trait ParallelTesting extends RunnerOrchestration { self =>
581581
else reportPassed()
582582
}
583583
else echo {
584-
testFilter
585-
.map(r => s"""No files matched "$r" in test""")
586-
.getOrElse("No tests available under target - erroneous test?")
584+
testFilter match
585+
case _ :: _ => s"""No files matched "${testFilter.mkString(",")}" in test"""
586+
case _ => "No tests available under target - erroneous test?"
587587
}
588588

589589
this
@@ -1269,10 +1269,9 @@ trait ParallelTesting extends RunnerOrchestration { self =>
12691269

12701270
val (dirs, files) = compilationTargets(sourceDir, fromTastyFilter)
12711271

1272-
val filteredFiles = testFilter match {
1273-
case Some(str) => files.filter(_.getPath.contains(str))
1274-
case None => files
1275-
}
1272+
val filteredFiles = testFilter match
1273+
case _ :: _ => files.filter(f => testFilter.exists(f.getPath.contains))
1274+
case _ => Nil
12761275

12771276
class JointCompilationSourceFromTasty(
12781277
name: String,

compiler/test/dotty/tools/vulpix/VulpixMetaTests.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ object VulpixMetaTests extends ParallelTesting {
2828
def numberOfSlaves = 1
2929
def safeMode = false // Don't fork a new VM after each run test
3030
def isInteractive = false // Don't beautify output for interactive use.
31-
def testFilter = None // Run all the tests.
31+
def testFilter = Nil // Run all the tests.
3232
def updateCheckFiles: Boolean = false
3333

3434
@AfterClass

compiler/test/dotty/tools/vulpix/VulpixUnitTests.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ object VulpixUnitTests extends ParallelTesting {
104104
def numberOfSlaves = 5
105105
def safeMode = sys.env.get("SAFEMODE").isDefined
106106
def isInteractive = !sys.env.contains("DRONE")
107-
def testFilter = None
107+
def testFilter = Nil
108108
def updateCheckFiles: Boolean = false
109109

110110
@AfterClass

0 commit comments

Comments
 (0)