Skip to content

Commit 1f2c78b

Browse files
author
Mantas Sakalauskas
authored
feat(specs2): scala3 support for runner (#1334)
1 parent ab1bc5b commit 1f2c78b

File tree

3 files changed

+18
-11
lines changed

3 files changed

+18
-11
lines changed

src/java/io/bazel/rulesscala/specs2/Specs2RunnerBuilder.scala

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package io.bazel.rulesscala.specs2
22

3-
import java.util
4-
import java.util.regex.Pattern
5-
63
import io.bazel.rulesscala.test_discovery.FilteredRunnerBuilder.FilteringRunnerBuilder
74
import io.bazel.rulesscala.test_discovery._
85
import org.junit.runner.notification.RunNotifier
@@ -11,13 +8,16 @@ import org.junit.runners.Suite
118
import org.junit.runners.model.RunnerBuilder
129
import org.specs2.concurrent.ExecutionEnv
1310
import org.specs2.control.Action
14-
import org.specs2.data.Trees._
11+
import org.specs2.fp.Tree.Node
1512
import org.specs2.fp.{Tree, TreeLoc}
1613
import org.specs2.main.{Arguments, CommandLine, Select}
1714
import org.specs2.specification.core.{Env, Fragment, SpecStructure}
1815
import org.specs2.specification.process.Stats
1916

17+
import java.util
18+
import java.util.regex.Pattern
2019
import scala.collection.JavaConverters._
20+
import scala.collection.immutable.Iterable
2121
import scala.language.reflectiveCalls
2222
import scala.util.Try
2323
import scala.util.control.NonFatal
@@ -63,14 +63,21 @@ class FilteredSpecs2ClassRunner(testClass: Class[_], testFilter: Pattern)
6363

6464
private def createFilteredDescription(specStructure: SpecStructure, ee: ExecutionEnv): Description = {
6565
val descTree = createDescriptionTree(ee).map(_._2)
66-
descTree.toTree.bottomUp {
67-
(description: Description, children: Stream[Description]) =>
66+
67+
def bottomUp[A, B](t: Tree[A], f: ((A, Iterable[B]) => B)): Tree[B] = {
68+
val tbs = t.subForest.map(t => bottomUp(t, f))
69+
Node(f(t.rootLabel, tbs.map(_.rootLabel)), tbs)
70+
}
71+
72+
bottomUp(descTree.toTree, {
73+
(description: Description, children: Iterable[Description]) =>
6874
children.filter(matchingFilter).foreach {
6975
child => description.addChild(child)
7076
}
7177
description
72-
}.rootLabel
78+
}).rootLabel
7379

80+
descTree.getLabel
7481
}
7582

7683
def matchesFilter: Boolean = {
@@ -118,7 +125,7 @@ class FilteredSpecs2ClassRunner(testClass: Class[_], testFilter: Pattern)
118125
* "Do stuff" in {
119126
* ...
120127
* }
121-
* }
128+
* }
122129
* }
123130
*
124131
* Is represented as the following description:

src/java/io/bazel/rulesscala/test_discovery/DiscoveredTestSuite.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ object PrefixSuffixTestDiscoveringSuite {
148148

149149
private def hasTestAnnotatedMethodsInCurrentClass(testClass: Class[_]): Boolean =
150150
testClass.getDeclaredMethods.exists { method =>
151-
method.getAnnotations.exists { annotation: Annotation =>
151+
method.getAnnotations.exists { (annotation: Annotation) =>
152152
testAnnotation.isAssignableFrom(annotation.annotationType)
153153
}
154154
}

src/java/io/bazel/rulesscala/test_discovery/FilteredRunnerBuilder.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package io.bazel.rulesscala.test_discovery
22

3+
import FilteredRunnerBuilder.FilteringRunnerBuilder
4+
35
import java.lang.annotation.Annotation
46
import java.util
57
import java.util.regex.Pattern
6-
7-
import io.bazel.rulesscala.test_discovery.FilteredRunnerBuilder.FilteringRunnerBuilder
88
import org.junit.Test
99
import org.junit.runner.Runner
1010
import org.junit.runners.BlockJUnit4ClassRunner

0 commit comments

Comments
 (0)