Build Logs

stryker-mutator/stryker4s • 3.8.0-RC6:2026-01-08

Errors

11

Warnings

0

Total Lines

790

1##################################
2Clonning https://github.com/stryker-mutator/stryker4s.git into /build/repo using revision v0.19.1
3##################################
4Note: switching to 'b3f4106b10f31888a9d4e3a1ab558235090344e6'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21Would override fixed Scala version: 3.7.3
22----
23Preparing build for 3.8.0-RC6
24Scala binary version found: 3.8
25Implicitly using source version 3.8
26Scala binary version found: 3.8
27Implicitly using source version 3.8
28Would try to apply common scalacOption (best-effort, sbt/mill only):
29Append: ,REQUIRE:-source:3.8
30Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
31
32Try apply source patch:
33Path: project/Dependencies.scala
34Pattern: val scala3 = "3.7.3"
35Replacement: val scala3 = "3.8.0-RC6"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (17))
38Compiled project (Scala 3.7.3, JVM (17))
39Successfully applied pattern 'val scala3 = "3.7.3"' in project/Dependencies.scala
40----
41Starting build for 3.8.0-RC6
42Execute tests: true
43sbt project found:
44No prepare script found for project stryker-mutator/stryker4s
45##################################
46Scala version: 3.8.0-RC6
47Targets: io.stryker-mutator%stryker4s-api io.stryker-mutator%stryker4s-command-runner io.stryker-mutator%stryker4s-core io.stryker-mutator%stryker4s-sbt-testrunner io.stryker-mutator%stryker4s-testkit io.stryker-mutator%stryker4s-testrunner-api
48Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.7.3\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
49##################################
50Using extra scalacOptions: ,REQUIRE:-source:3.8
51Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
52[sbt_options] declare -a sbt_options=()
53[process_args] java_version = '17'
54[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
55# Executing command line:
56java
57-Dfile.encoding=UTF-8
58-Dcommunitybuild.scala=3.8.0-RC6
59-Dcommunitybuild.project.dependencies.add=
60-Xmx7G
61-Xms4G
62-Xss8M
63-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
64-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
65-jar
66/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
67"setCrossScalaVersions 3.8.0-RC6"
68"++3.8.0-RC6 -v"
69"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
70"set every credentials := Nil"
71"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
72"removeScalacOptionsStartingWith -P:wartremover"
73
74moduleMappings
75"runBuild 3.8.0-RC6 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.7.3\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" io.stryker-mutator%stryker4s-api io.stryker-mutator%stryker4s-command-runner io.stryker-mutator%stryker4s-core io.stryker-mutator%stryker4s-sbt-testrunner io.stryker-mutator%stryker4s-testkit io.stryker-mutator%stryker4s-testrunner-api"
76
77[info] [launcher] getting org.scala-sbt sbt 1.11.6 (this may take some time)...
78[info] welcome to sbt 1.11.6 (Eclipse Adoptium Java 17.0.8)
79[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
80[info] loading project definition from /build/repo/project
81[info] compiling 6 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
82[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
83[info] Compilation completed in 8.952s.
84[info] done compiling
85[info] loading settings for project stryker4s from build.sbt...
86[info] resolving key references (23719 settings) ...
87[info] set current project to stryker4s (in build file:/build/repo/)
88[success] Total time: 0 s, completed Jan 8, 2026, 1:27:39 AM
89Execute setCrossScalaVersions: 3.8.0-RC6
90OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.16) in commandRunner/crossScalaVersions
91OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.16) in testRunnerApi/crossScalaVersions
92OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.16) in api/crossScalaVersions
93OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC6 in testRunnerApi3/crossScalaVersions
94OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in testRunnerApi3/crossScalaVersions
95OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.16) in core/crossScalaVersions
96OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in core3/crossScalaVersions
97OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in core3/crossScalaVersions
98OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.16) in sbtTestRunner/crossScalaVersions
99OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in testkit3/crossScalaVersions
100OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in testkit3/crossScalaVersions
101OpenCB::Changing crossVersion 3.3.6 -> 3.8.0-RC6 in sbtTestRunner3/crossScalaVersions
102OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in sbtTestRunner3/crossScalaVersions
103OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in sbtPlugin3/crossScalaVersions
104OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in sbtPlugin3/crossScalaVersions
105OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in api3/crossScalaVersions
106OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in api3/crossScalaVersions
107OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.16) in testkit/crossScalaVersions
108OpenCB::Changing crossVersion 3.8.0-RC6 -> 3.8.0-RC6 in commandRunner3/crossScalaVersions
109OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC6) in commandRunner3/crossScalaVersions
110[info] set current project to stryker4s (in build file:/build/repo/)
111[success] Total time: 0 s, completed Jan 8, 2026, 1:27:41 AM
112[info] Setting Scala version to 3.8.0-RC6 on 7 projects.
113[info] Switching Scala version on:
114[info] api3 (3.8.0-RC6)
115[info] testRunnerApi3 (3.8.0-RC6)
116[info] commandRunner3 (3.8.0-RC6)
117[info] core3 (3.8.0-RC6)
118[info] sbtTestRunner3 (3.8.0-RC6)
119[info] testkit3 (3.8.0-RC6)
120[info] sbtPlugin3 (3.8.0-RC6)
121[info] Excluding projects:
122[info] testRunnerApi (2.13.16)
123[info] commandRunner2_12 (2.12.20)
124[info] core2_12 (2.12.20)
125[info] testkit2_12 (2.12.20)
126[info] sbtPlugin (2.12.20)
127[info] * stryker4s (2.12.20)
128[info] api2_12 (2.12.20)
129[info] sbtTestRunner2_12 (2.12.20)
130[info] testRunnerApi2_12 (2.12.20)
131[info] api (2.13.16)
132[info] core (2.13.16)
133[info] commandRunner (2.13.16)
134[info] sbtTestRunner (2.13.16)
135[info] testkit (2.13.16)
136[info] Reapplying settings...
137[info] set current project to stryker4s (in build file:/build/repo/)
138[success] Total time: 0 s, completed Jan 8, 2026, 1:27:42 AM
139Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
140[info] Reapplying settings...
141[info] set current project to stryker4s (in build file:/build/repo/)
142[success] Total time: 0 s, completed Jan 8, 2026, 1:27:44 AM
143[info] Defining Global / credentials, api / credentials and 19 others.
144[info] The new values will be used by Global / pgpSelectPassphrase, Global / pgpSigningKey and 105 others.
145[info] Run `last` for details.
146[info] Reapplying settings...
147[info] set current project to stryker4s (in build file:/build/repo/)
148[success] Total time: 0 s, completed Jan 8, 2026, 1:27:46 AM
149Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
150[info] Reapplying settings...
151OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
152
153 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
154 Did you mean core3 / allExcludeDependencies ?
155 , retry without global scopes
156[info] Reapplying settings...
157[info] set current project to stryker4s (in build file:/build/repo/)
158[success] Total time: 0 s, completed Jan 8, 2026, 1:27:48 AM
159Execute removeScalacOptionsStartingWith: -P:wartremover
160[info] Reapplying settings...
161[info] set current project to stryker4s (in build file:/build/repo/)
162[success] Total time: 0 s, completed Jan 8, 2026, 1:27:49 AM
163[success] Total time: 0 s, completed Jan 8, 2026, 1:27:49 AM
164Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.7.3\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
165Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
166Starting build...
167Projects: Set(testRunnerApi, api3, testRunnerApi3, commandRunner3, core3, sbtTestRunner3, testkit3)
168Starting build for ProjectRef(file:/build/repo/,api3) (stryker4s-api)... [0/7]
169OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
170OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
171OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
172OpenCB::Filter out '-Xfatal-warnings', matches setting pattern '^-?-Xfatal-warnings'
173Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wvalue-discard, -Wnonunit-statement, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
174[info] compiling 2 Scala sources to /build/repo/modules/api/target/jvm-3/classes ...
175[info] done compiling
176Starting build for ProjectRef(file:/build/repo/,sbtTestRunner3) (stryker4s-sbt-testrunner)... [1/7]
177Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wvalue-discard, -Wnonunit-statement, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
178[info] Compiling 1 protobuf files to /build/repo/modules/testRunnerApi/target/jvm-3/src_managed/main/scalapb
179[info] compiling 18 Scala sources to /build/repo/modules/testRunnerApi/target/jvm-3/classes ...
180[info] done compiling
181[info] compiling 7 Scala sources to /build/repo/modules/sbtTestRunner/target/jvm-3/classes ...
182[info] done compiling
183Starting build for ProjectRef(file:/build/repo/,testRunnerApi) (stryker4s-testrunner-api)... [2/7]
184OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.13.16 module Scope(Select(ProjectRef(file:/build/repo/,testRunnerApi)), Zero, Zero, Zero)
185OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.13.16 module Scope(Select(ProjectRef(file:/build/repo/,testRunnerApi)), Select(ConfigKey(compile)), Zero, Zero)
186Compile scalacOptions: -encoding, utf8, -unchecked, -language:existentials, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xlint:adapted-args, -Xlint:constant, -Xlint:delayedinit-select, -Xlint:deprecation, -Xlint:doc-detached, -Xlint:implicit-recursion, -Xlint:implicit-not-found, -Xlint:inaccessible, -Xlint:infer-any, -Xlint:missing-interpolator, -Xlint:nullary-unit, -Xlint:option-implicit, -Xlint:package-object-classes, -Xlint:poly-implicit-overload, -Xlint:private-shadow, -Xlint:stars-align, -Xlint:strict-unsealed-patmat, -Xlint:type-parameter-shadow, -Xlint:-byname-implicit, -Wdead-code, -Wextra-implicit, -Wnumeric-widen, -Wnonunit-statement, -Wunused:nowarn, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:patvars, -Wunused:privates, -Xsource:3, -release, 11, -Xplugin:/root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/kind-projector_2.13.16/0.13.3/kind-projector_2.13.16-0.13.3.jar, -Wconf:msg=can be rewritten automatically under:s
187OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.13.16 module Scope(Select(ProjectRef(file:/build/repo/,testRunnerApi)), Select(ConfigKey(compile)), Select(compile), Zero)
188[info] Compiling 1 protobuf files to /build/repo/modules/testRunnerApi/target/jvm-2.13/src_managed/main/scalapb
189[info] compiling 18 Scala sources to /build/repo/modules/testRunnerApi/target/jvm-2.13/classes ...
190[info] done compiling
191OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.13.16 module Scope(Select(ProjectRef(file:/build/repo/,testRunnerApi)), Select(ConfigKey(test)), Zero, Zero)
192OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.13.16 module Scope(Select(ProjectRef(file:/build/repo/,testRunnerApi)), Select(ConfigKey(test)), Select(compile), Zero)
193Starting build for ProjectRef(file:/build/repo/,core3) (stryker4s-core)... [3/7]
194Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wvalue-discard, -Wnonunit-statement, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
195[info] compiling 85 Scala sources to /build/repo/modules/core/target/jvm-3/classes ...
196[info] done compiling
197[info] compiling 4 Scala sources to /build/repo/modules/testkit/target/jvm-3/classes ...
198[info] done compiling
199[info] compiling 57 Scala sources to /build/repo/modules/core/target/jvm-3/test-classes ...
200[info] done compiling
201stryker4s.extension.NumberExtensionsTest:
202 + roundDecimals > should round down to the given decimals 0.036s
203 + roundDecimals > should round up to the given decimals 0.009s
204 + roundDecimals > should round multiple decimals 0.001s
205 + roundDecimals > should leave NaN 0.001s
206stryker4s.model.CompilerErrMsgTest:
207 + CompilerErrMsgTest > should have a nicely formatted show 0.005s
208stryker4s.files.GlobTest:
209 + include patterns > should match no files with empty glob 0.006s
210 + include patterns > should match files 0 levels deep 0.005s
211 + include patterns > should match on the second glob if the first doesn't match 0.005s
212 + include patterns > should match files 1 level deep 0.0s
213 + include patterns > should match files multiple levels deep 0.0s
214 + include patterns > should match on multiple patterns 0.006s
215 + include patterns > should match exact matches 0.0s
216 + ignore patterns > should exclude the file specified in the excluded pattern 0.002s
217 + ignore patterns > should exclude all files specified in the excluded pattern 0.001s
218 + ignore patterns > should exclude all files based on a wildcard 0.013s
219 + ignore patterns > should not exclude files if a non-matching ignore pattern is given 0.007s
220 + should escape \\ in a path 0.004s
221 + should escape { in a path 0.001s
222 + should escape } in a path 0.001s
223 + should escape [ in a path 0.001s
224 + should escape ] in a path 0.0s
225 + should escape * in a path 0.001s
226 + should escape ? in a path 0.0s
227stryker4s.extension.ResourceExtensionsTest:
228 + selfRecreatingResource > should create a resource only once when not using the release F 0.289s
229 + selfRecreatingResource > should close first before creating a new Resource 0.008s
230stryker4s.mutants.tree.MutantCollectorTest:
231 + onEnter > should only call 'isDefinedAt' on the PartialFunction once 0.142s
232 + apply > should return the mutated code 0.076s
233stryker4s.config.codec.CirisConfigDecodersTest:
234 + Thresholds > should load high=85, low=65, break=10 to expected result 0.001s
235 + Thresholds > should load high=30, low=30 to expected result 0.003s
236 + Thresholds > should load low=30, break=29 to expected result 0.0s
237 + Thresholds > should load high=100 to expected result 0.001s
238 + Thresholds > should not load Thresholds(-1,60,0) 0.016s
239 + Thresholds > should not load Thresholds(80,-1,0) 0.0s
240 + Thresholds > should not load Thresholds(80,60,-1) 0.001s
241 + Thresholds > should not load Thresholds(101,60,0) 0.0s
242 + Thresholds > should not load Thresholds(80,101,0) 0.0s
243 + Thresholds > should not load Thresholds(80,60,101) 0.0s
244 + Thresholds > should not load Thresholds(50,51,0) 0.007s
245 + Thresholds > should not load Thresholds(80,50,51) 0.0s
246 + Thresholds > should not load Thresholds(80,50,50) 0.001s
247 + ScalaDialect > should parse scala30 to Scala30 0.006s
248 + ScalaDialect > should parse future to Scala3Future 0.0s
249 + ScalaDialect > should parse 33 to Scala33 0.004s
250 + ScalaDialect > should parse 37 to Scala37 0.001s
251 + ScalaDialect > should parse 3.0 to Scala30 0.0s
252 + ScalaDialect > should parse 3.5 to Scala35 0.001s
253 + ScalaDialect > should parse scala37 to Scala37 0.001s
254 + ScalaDialect > should parse 3.3 to Scala33 0.003s
255 + ScalaDialect > should parse 2.12 to Scala212 0.001s
256 + ScalaDialect > should parse scala36 to Scala36 0.0s
257 + ScalaDialect > should parse scala213source3 to Scala213Source3 0.001s
258 + ScalaDialect > should parse source3 to Scala213Source3 0.001s
259 + ScalaDialect > should parse scala212 to Scala212 0.001s
260 + ScalaDialect > should parse scala3.7 to Scala37 0.0s
261 + ScalaDialect > should parse 34 to Scala34 0.0s
262 + ScalaDialect > should parse scala3.4 to Scala34 0.001s
263 + ScalaDialect > should parse 3.7 to Scala37 0.001s
264 + ScalaDialect > should parse 3.1 to Scala32 0.0s
265 + ScalaDialect > should parse scala3.1 to Scala32 0.001s
266 + ScalaDialect > should parse 3.4 to Scala34 0.001s
267 + ScalaDialect > should parse 212 to Scala212 0.0s
268 + ScalaDialect > should parse scala34 to Scala34 0.001s
269 + ScalaDialect > should parse scala3.3 to Scala33 0.0s
270 + ScalaDialect > should parse 35 to Scala35 0.001s
271 + ScalaDialect > should parse scala3 to Scala37 0.001s
272 + ScalaDialect > should parse 2.13 to Scala213 0.0s
273 + ScalaDialect > should parse 213 to Scala213 0.001s
274 + ScalaDialect > should parse scala2.13 to Scala213 0.0s
275 + ScalaDialect > should parse 32 to Scala32 0.001s
276 + ScalaDialect > should parse 36 to Scala36 0.0s
277 + ScalaDialect > should parse scala3.2 to Scala32 0.001s
278 + ScalaDialect > should parse 31 to Scala32 0.0s
279 + ScalaDialect > should parse scala35 to Scala35 0.001s
280 + ScalaDialect > should parse scala31 to Scala32 0.0s
281 + ScalaDialect > should parse scala3future to Scala3Future 0.0s
282 + ScalaDialect > should parse dotty to Scala30 0.0s
283 + ScalaDialect > should parse 2 to Scala213 0.0s
284 + ScalaDialect > should parse scala3.6 to Scala36 0.001s
285 + ScalaDialect > should parse 3.2 to Scala32 0.0s
286 + ScalaDialect > should parse scala3.0 to Scala30 0.001s
287 + ScalaDialect > should parse scala213 to Scala213 0.0s
288 + ScalaDialect > should parse scala2.12 to Scala212 0.001s
289 + ScalaDialect > should parse scala3.5 to Scala35 0.0s
290 + ScalaDialect > should parse 3.6 to Scala36 0.001s
291 + ScalaDialect > should parse 30 to Scala30 0.0s
292 + ScalaDialect > should parse scala32 to Scala32 0.001s
293 + ScalaDialect > should parse scala33 to Scala33 0.0s
294 + ScalaDialect > should parse 3 to Scala37 0.0s
295 + ScalaDialect > should parse scala212source3 to Scala212Source3 0.0s
296 + ScalaDialect > should not parse invalid scala-dialects 0.005s
297 + ScalaDialect > should error deprecated scala-dialect scala211 0.002s
298 + ScalaDialect > should error deprecated scala-dialect scala2.11 0.001s
299 + ScalaDialect > should error deprecated scala-dialect 2.11 0.001s
300 + ScalaDialect > should error deprecated scala-dialect 211 0.001s
301 + ReporterType > should decode valid reporters 0.004s
302 + ReporterType > should not decode invalid reporters 0.001s
303 + DashboardReportType > should decode valid dashboard report types 0.002s
304 + DashboardReportType > should not decode invalid dashboard report types 0.003s
305 + Uri > should decode valid uris 0.004s
306 + Uri > should not decode invalid uris 0.005s
307 + Duration > should decode valid duration values 0.013s
308 + Duration > should fallback to milliseconds when no unit is provided 0.002s
309stryker4s.mutants.tree.MutantInstrumenterTest:
310 + instrumentFile > should transform 2 mutations into a match statement with 2 mutated and 1 original 0.834s
311 + instrumentFile > should place mutants on the correct statement even if the name appears twice 0.143s
312 + instrumentFile > should apply the correct instrumenter options 0.055s
313 + instrumentFile > should log failures correctly 0.031s
314 + instrumentFile > should rethrow Stryker4sExceptions 0.009s
315stryker4s.config.ConfigOrderTest:
316 + should order ascending 0.004s
317stryker4s.report.dashboard.DashboardConfigProviderTest:
318 + resolveConfig > should resolve a Travis environment 0.083s
319 + resolveConfig > should resolve a CircleCI environment 0.009s
320 + resolveConfig > should resolve a GitHub actions environment 0.006s
321 + resolveConfig > should resolve a GitHub actions PR environment 0.001s
322 + resolveConfig > should resolve a configured environment 0.009s
323 + resolveConfig > should resolve without a module 0.0s
324 + resolveConfig > should not resolve a GitHub actions with malformed ref 0.034s
325 + resolveConfig > should not resolve empty env variables 0.0s
326 + resolveConfig > should not resolve when there is no STRYKER_DASHBOARD_API_KEY environment 0.001s
327 + resolveConfig > should not resolve when there is no project 0.004s
328 + resolveConfig > should not resolve when there is no version 0.006s
329 + resolveConfig > should return all unresolved 0.0s
330stryker4s.report.ConsoleReporterTest:
331 + mutantTested > should log progress 0.53s
332 + mutantTested > should round decimal numbers 0.033s
333 + reportFinishedRun > should report killed mutants as debug 0.044s
334 + reportFinishedRun > should report a finished run with multiple mutants 0.037s
335 + reportFinishedRun > should log mutants sorted by id 0.032s
336 + reportFinishedRun > should report two line mutants properly 0.006s
337 + reportFinishedRun > should report multiline mutants properly 0.007s
338 + reportFinishedRun > should round decimal mutation scores 0.009s
339 + reportFinishedRun > should log NaN correctly as n/a 0.008s
340 + reportFinishedRun > should report the mutation score when it is info 0.007s
341 + reportFinishedRun > should report the mutation score when it is warning 0.009s
342 + reportFinishedRun > should report the mutation score when it is dangerously low 0.008s
343 + reportFinishedRun > should log when below threshold 0.006s
344 + reportFinishedRun > should log covered code if it is different to the total 0.013s
345stryker4s.extension.TreeExtensionsTest:
346 + isIn > should be false for annotations 0.071s
347 + find > should find statement in simple tree 0.004s
348 + find > should find statement in large tree 0.051s
349 + find > should return none if statement is not in tree 0.012s
350 + find > should still have parents when statement is found 0.002s
351 + transformOnce > should transform does not recursively transform new subtree 0.01s
352 + transformOnce > should transform both appearances in the tree only once 0.026s
353 + transformOnce > should return the same tree if no transformation is applied 0.006s
354 + transformOnce > should transform a parsed string and have changed syntax 0.014s
355 + collectWithContext > should collect all statements without context 0.003s
356 + collectWithContext > should collect and pass context 0.004s
357 + collectWithContext > should only evaluate functions once 0.004s
358 + collectWithContext > should not search upwards for context if one has already been found 0.009s
359 + collectWithContext > should not call context-building function if no collector is found 0.008s
360 + collectWithContext > should call with older context if not found on the currently-visiting tree 0.01s
361 + collectWithContext > should pass down each collector its own context 0.011s
362 + collectWithContext > should not pass context from separate trees 0.006s
363 + toLocation > should map a weaponregex.Location to a mutationtesting.Location 0.001s
364 + toLocation > uses correct offset for triple double-quote strings 0.003s
365stryker4s.report.mapper.MutantRunResultMapperTest:
366 + mapper > should map 4 files to valid MutationTestResult 0.133s
367stryker4s.config.ConfigLoaderTest:
368 + combines a ConfigSource into Config 0.134s
369 + accumulates failures 0.03s
370stryker4s.config.TestFilterTest:
371 + filter > should work with default 0.005s
372 + filter > should work with custom 0.012s
373 + filter > should work with custom and negation 0.001s
374stryker4s.extension.DurationExtensionsTest:
375 + toHumanReadable > should parse 1 second 0.001s
376 + toHumanReadable > should parse 0 duration 0.0s
377 + toHumanReadable > should parse 1 nanosecond to 0 0.001s
378 + toHumanReadable > should parse 1 ms 0.0s
379 + toHumanReadable > should parse multiple seconds 0.001s
380 + toHumanReadable > should not include units in the middle that are zero 0.003s
381 + toHumanReadable > should parse a combination of units 0.0s
382stryker4s.Stryker4sTest:
383 + should call mutate files and report the results 0.655s
384stryker4s.config.ConfigTest:
385 + concurrency > should give concurrency 4 for 10 cpu cores 0.0s
386 + concurrency > should give concurrency 7 for 24 cpu cores 0.0s
387 + concurrency > should give concurrency 6 for 20 cpu cores 0.0s
388 + concurrency > should give concurrency 1 for 1 cpu cores 0.001s
389 + concurrency > should give concurrency 3 for 6 cpu cores 0.0s
390 + concurrency > should give concurrency 8 for 28 cpu cores 0.0s
391 + concurrency > should give concurrency 2 for 2 cpu cores 0.0s
392 + concurrency > should give concurrency 9 for 32 cpu cores 0.0s
393 + concurrency > should give concurrency 4 for 12 cpu cores 0.001s
394 + concurrency > should give concurrency 2 for 3 cpu cores 0.0s
395 + concurrency > should give concurrency 5 for 16 cpu cores 0.0s
396 + concurrency > should give concurrency 3 for 8 cpu cores 0.0s
397 + concurrency > should give concurrency 2 for 4 cpu cores 0.0s
398stryker4s.exception.Stryker4sExceptionTest:
399 + UnableToBuildPatternMatchException > should have the correct message 0.016s
400 + InitialTestRunFailedException > should have the correct message 0.001s
401 + TestSetupException > should have the correct message 0.001s
402 + MutationRunFailedException > should have the correct message 0.001s
403 + UnableToFixCompilerErrorsException > should have a nicely formatted message 0.002s
404stryker4s.run.threshold.ThresholdCheckerTest:
405 + thresholdchecker > should return a DangerStatus with default thresholds and score 0.0 0.0s
406 + thresholdchecker > should return a SuccessStatus when the score is above threshold 0.001s
407 + thresholdchecker > should return a DangerStatus when the score equals threshold 0.002s
408 + thresholdchecker > should return an ErrorStatus when the threshold is not met 0.001s
409 + thresholdchecker > should never return WarningStatus when 'high' is equal to 'low' 0.0s
410 + thresholdchecker > should return success status when score is equal to or greater than 'high' threshold 0.001s
411 + thresholdchecker > should return warning status when score is below 'high' and above or equal to 'low' threshold 0.0s
412 + thresholdchecker > should return danger status when score is below 'low' and above or equal to 'break' threshold 0.009s
413 + thresholdchecker > should return error status when score is below 'break' 0.001s
414 + thresholdchecker > should return success for NaN 0.001s
415stryker4s.report.HtmlReporterTest:
416 + indexHtml > should contain title 0.013s
417 + reportJs > should contain the report 0.052s
418 + mutation-test-elements > should write the resource 0.077s
419 + onRunFinished > should write the report files to the report directory 0.014s
420 + onRunFinished > should write the mutation-test-elements.js file to the report directory 0.003s
421 + onRunFinished > should info log a message 0.001s
422 + onRunFinished > should open the report when openReport is true 0.002s
423 + onRunFinished > should not open the report when openReport is false 0.001s
424stryker4s.report.DashboardReporterTest:
425 + buildRequest > should compose the request 0.229s
426 + buildRequest > should make a score-only request when score-only is configured 0.005s
427 + buildRequest > should add the module if it is present 0.009s
428 + onRunFinished > should send the request 0.052s
429 + onRunFinished > log when not being able to resolve dashboard config 0.004s
430 + onRunFinished > should log when a response can't be parsed to a href 0.009s
431 + onRunFinished > should log when a 401 is returned by the API 0.009s
432 + onRunFinished > should log when a error code is returned by the API 0.006s
433stryker4s.config.source.DefaultsConfigSourceTest:
434 + loads all default values 0.012s
435stryker4s.report.JsonReporterTest:
436 + reportJson > should contain the report 0.004s
437 + onRunFinished > should write the report file to the report directory 0.001s
438 + onRunFinished > should info log a message 0.007s
439stryker4s.files.GlobFileResolverTest:
440 + files > should not collect the baseDir 0.009s
441 + files > should find all scala files and not the non-scala files with a default glob 0.013s
442 + files > should find matching files with custom match pattern 0.01s
443 + files > should only add a glob once even when it matches twice 0.005s
444 + files > should exclude all files in the target folder 0.013s
445 + files > should match if basePath and glob are absolute 0.007s
446stryker4s.mutants.findmutants.MutantFinderTest:
447 + parseFile > should parse an existing file 0.016s
448 + parseFile > should throw an exception on a non-parseable file 0.007s
449 + parseFile > should fail on a nonexistent file 0.002s
450 + parseFile > should parse a scala-3 file 0.061s
451 + logging > should error log an unfound file 0.003s
452stryker4s.config.source.AggregateConfigSourceTest:
453 + combines multiple sources 0.171s
454 + aggregate combines given sources and defaults 0.013s
455stryker4s.model.MutantMetadataTest:
456 + locationShow > should show the location 0.016s
457 + locationShow > should be equal to showLocation 0.0s
458stryker4s.mutants.findmutants.MutantMatcherTest:
459 + All Matchers > should match a conditional statement 0.245s
460 + All Matchers > should match a method 0.087s
461 + All Matchers > should match a boolean and a conditional 0.049s
462 + All Matchers > should match the default case of a constructor argument 0.08s
463 + All Matchers > should match on the default case of a function argument 0.055s
464 + matchEqualityOperator matcher > should match >= sign with >, <, and == 0.015s
465 + matchEqualityOperator matcher > should match > with >=, < and == 0.019s
466 + matchEqualityOperator matcher > should match <= to <, >= and == 0.008s
467 + matchEqualityOperator matcher > should match < to <=, > and == 0.01s
468 + matchEqualityOperator matcher > should match == to != 0.004s
469 + matchEqualityOperator matcher > should match != to == 0.005s
470 + matchEqualityOperator matcher > should match === to =!= 0.007s
471 + matchEqualityOperator matcher > should match =!= to === 0.014s
472 + matchLogicalOperator matcher > should match && to || 0.008s
473 + matchLogicalOperator matcher > should match || to && 0.003s
474 + matchMethodExpression matcher > should match filter to filterNot 0.031s
475 + matchMethodExpression matcher > should match filterNot to filter 0.017s
476 + matchMethodExpression matcher > should match exists to forall 0.012s
477 + matchMethodExpression matcher > should match forall to exists 0.012s
478 + matchMethodExpression matcher > should match take to drop 0.01s
479 + matchMethodExpression matcher > should match drop to take 0.017s
480 + matchMethodExpression matcher > should match takeRight to dropRight 0.014s
481 + matchMethodExpression matcher > should match dropRight to takeRight 0.006s
482 + matchMethodExpression matcher > should match takeWhile to dropWhile 0.019s
483 + matchMethodExpression matcher > should match dropWhile to takeWhile 0.005s
484 + matchMethodExpression matcher > should match isEmpty to nonEmpty 0.004s
485 + matchMethodExpression matcher > should match nonEmpty to isEmpty 0.006s
486 + matchMethodExpression matcher > should match indexOf to lastIndexOf 0.014s
487 + matchMethodExpression matcher > should match lastIndexOf to indexOf 0.006s
488 + matchMethodExpression matcher > should match max to min 0.005s
489 + matchMethodExpression matcher > should match min to max 0.005s
490 + matchMethodExpression matcher > should match maxBy to minBy 0.009s
491 + matchMethodExpression matcher > should match minBy to maxBy 0.007s
492 + matchBooleanLiteral matcher > should match false to true 0.002s
493 + matchBooleanLiteral matcher > should match true to false 0.01s
494 + matchStringLiteral matcher > should match foo to NonEmptyString 0.01s
495 + matchStringLiteral matcher > should match empty string to StrykerWasHere 0.01s
496 + matchStringLiteral matcher > should match on interpolated strings 0.021s
497 + matchStringLiteral matcher > should match once on interpolated strings with multiple parts 0.011s
498 + matchStringLiteral matcher > should not match non-string interpolation 0.006s
499 + matchStringLiteral matcher > should not match pattern interpolation 0.038s
500 + matchStringLiteral matcher > should match pattern in string 0.01s
501 + matchStringLiteral matcher > should not match xml literals 0.104s
502 + matchStringLiteral matcher > should not match empty strings on xml literals 0.008s
503 + matchStringLiteral matcher > should match inside xml literal args 0.012s
504 + matchStringLiteral matcher > should not match xml interpolation 0.007s
505 + regexMutator > should match Regex constructor 0.127s
506 + regexMutator > should match scala.util.matching.Regex constructor 0.011s
507 + regexMutator > should match a Regex constructor with named groups 0.006s
508 + regexMutator > should match Regex String ops 0.004s
509 + regexMutator > should match Pattern.compile Regex constructor 0.005s
510 + regexMutator > should match java.util.regex.Pattern.compile Regex constructor 0.008s
511 + regexMutator > should match Pattern.compile Regex constructor with flags 0.014s
512 + regexMutator > should not match e regular string 0.001s
513 + regexMutator > should handle regexes without any mutations 0.06s
514 + no function name matching > should not match a function with a mutator name 0.007s
515 + no function name matching > should not match on a case class with a mutator name 0.006s
516 + no function name matching > should not match on a variable with a mutator name 0.007s
517 + no function name matching > should not match on type arguments 0.018s
518 + no function name matching > should not match on infix type arguments 0.002s
519 + no function name matching > should not match on type apply 0.008s
520 + no function name matching > should not match on literal type declarations 0.004s
521 + no function name matching > should not match on literal type declarations for var 0.016s
522 + no function name matching > should not match on infix literal type declarations 0.005s
523 + no function name matching > should not match on def literal return types 0.002s
524 + no function name matching > should not match on literal function types 0.021s
525 + no function name matching > should not match on type aliases 0.01s
526 + no function name matching > should not match a function with a single expression 0.004s
527 + no function name matching > should mutate if statements with true and false as condition 0.017s
528 + no function name matching > should mutate while statements with false as condition 0.022s
529 + no function name matching > should mutate do while statements with false as condition 0.015s
530 + no function name matching > should mutate conditional statements that have a literal boolean as condition only once 0.016s
531 + filtering > should filter out config excluded mutants 0.019s
532 + filtering > should filter out string mutants inside annotations 0.016s
533 + filtering > should log partition unparsable regular expressions 0.016s
534stryker4s.model.MutantIdTest:
535 + MutantId > should have a toString that returns a number 0.001s
536stryker4s.extension.FileExtensionsTest:
537 + relativePath > should return the relative path on a file inside the base-dir 0.001s
538 + relativePath > should return just the file name when a file is in the base-dir 0.0s
539 + relativePath > should return the path if the given path is relative 0.0s
540 + relativePath > works if both are relative 0.001s
541 + relativePath > works if both are absolute 0.0s
542 + relativePath > works if baseDir is relative and path is absolute 0.001s
543 + relativePath > works if baseDir is absolute and path is relative 0.0s
544 + relativePath > multiple calls doesn't change the path 0.0s
545 + inSubDir > should calculate a path relative to the new subDir 0.002s
546stryker4s.config.source.FileConfigSourceTest:
547 + should load a filled config 0.024s
548 + should not be able to load an empty config 0.002s
549 + should fail on an unknown reporter 0.013s
550 + should load a config with unknown keys 0.008s
551 + should filter out duplicate keys 0.006s
552 + should return a failure on a misshapen excluded-mutations 0.005s
553 + should parse duration expressions 0.004s
554 + should handle missing files 0.008s
555 + fails on other errors 0.024s
556 + logs > should log where the config is read from 0.006s
557stryker4s.mutation.MutationTypesTest:
558 + EqualityOperator > > to GreaterThan 0.004s
559 + EqualityOperator > >= to GreaterThanEqualTo 0.003s
560 + EqualityOperator > <= to LesserThanEqualTo 0.001s
561 + EqualityOperator > < to LesserThan 0.0s
562 + EqualityOperator > == to EqualTo 0.001s
563 + EqualityOperator > != to NotEqualTo 0.0s
564 + BooleanLiteral > false to False 0.003s
565 + BooleanLiteral > true to True 0.001s
566 + LogicalOperator > && to And 0.0s
567 + LogicalOperator > || to Or 0.0s
568 + StringLiteral > foo string to NonEmptyString 0.0s
569 + StringLiteral > empty string to EmptyString 0.001s
570 + StringLiteral > string interpolation to StringInterpolation 0.001s
571 + StringLiteral > q interpolation should not match StringInterpolation 0.0s
572 + StringLiteral > t interpolation should not match StringInterpolation 0.001s
573 + other cases > should return original tree on match 0.003s
574 + other cases > should convert GreaterThan to > 0.004s
575 + other cases > should convert to the proper type 0.001s
576stryker4s.run.MutantRunnerTest:
577 + apply > should return a mutationScore of 66.67 when 2 of 3 mutants are killed 0.102s
578 + apply > should return a mutationScore of 66.67 when 2 of 3 mutants are killed and 1 doesn't compile. 0.118s
579 + apply > should use static temp dir if it was requested 0.073s
580 + apply > should not clean up tmp dir on errors 0.058s
581 + apply > should not clean up tmp dir if clean-tmp-dir is disabled 0.092s
582stryker4s.extension.PartialFunctionOpsTest:
583 + Monoid > when combined still calls the first PF 0.008s
584 + Monoid > when combined still calls the second PF 0.004s
585 + Monoid > combines the result when both PFs match 0.004s
586 + Monoid > combines the result multiple times with combineN 0.001s
587 + Monoid > Empty Monoid is equal to empty PartialFunction 0.0s
588 + Monoid > Empty Monoid should not match on anything equal to empty PartialFunction 0.001s
589 + Monoid > should not be able to combine PF's that can't combine the result 0.011s
590stryker4s.config.source.CliConfigSourceTest:
591 + should load a filled config 0.077s
592 + should parse short arguments 0.021s
593 + fails on unknown arguments 0.007s
594 + should handle multiple arguments 0.007s
595stryker4s.config.circe.ConfigEncoderTest:
596 + configEncoder > should be able to encode a minimal config 0.01s
597 + configEncoder > should be able to encode a filled config 0.006s
598stryker4s.mutants.MutatorTest:
599 + run > should return a single Tree with changed pattern match 0.085s
600 + run > should run go 0.047s
601 + logs > should log the amount of mutants found 0.03s
602 + logs > should log the amount of excluded mutants 0.037s
603 + logs > should log a warning if no mutants are found 0.021s
604 + logs > should log if all mutations are excluded 0.015s
605stryker4s.mutants.TreeTraverserTest:
606 + canPlace > can not place inside case guards 0.004s
607 + canPlace > can place in case body 0.002s
608 + canPlace > can not place inside annotations 0.002s
609 + canPlace > can not place inside deep term Term 0.002s
610 + canPlace > can place outside part of a Term 0.004s
611 + canPlace > can not place inside type literals 0.002s
612stryker4s.mutation.MethodExpressionTest:
613 + ArgMethodExpression > should match with a filter call (one argument) 0.002s
614 + ArgMethodExpression > should match with an infix filter call (one argument) 0.014s
615 + ArgMethodExpression > should match with a filter call (block with one argument) 0.002s
616 + ArgMethodExpression > should match with an infix filter call (block with one argument) 0.003s
617 + ArgMethodExpression > should match with a filter call (partial function) 0.008s
618 + ArgMethodExpression > should match with an infix filter call (partial function) 0.002s
619 + ArgMethodExpression > should match with a filter call (aux function) 0.007s
620 + ArgMethodExpression > should match with an infix filter call (aux function) 0.001s
621 + ArgMethodExpression > should not match with an infix filter call (non arguments) 0.001s
622 + ArgMethodExpression > should not match with a filter call (more than one argument) 0.002s
623 + ArgMethodExpression > should not match with an infix filter call (more than one argument) 0.001s
624 + ArgMethodExpression > should not match with a filter call (more than one argument) 2 0.009s
625 + ArgMethodExpression > should not match with an infix filter call (more than one argument) 2 0.003s
626 + ArgMethodExpression > should not match with a filter call (block more than one argument) 0.007s
627 + ArgMethodExpression > should not match with a filter property 0.001s
628 + ArgMethodExpression > should not match with an infix filter property 0.006s
629 + ArgMethodExpression > should not match with a filter import 0.021s
630 + ArgMethodExpression > should not match with a filter variable 0.004s
631 + ArgMethodExpression > should match exists to Exists 0.001s
632 + ArgMethodExpression > should match forall to Forall 0.004s
633 + ArgMethodExpression > should match take to Take 0.001s
634 + ArgMethodExpression > should match drop to Drop 0.001s
635 + ArgMethodExpression > should match takeRight to TakeRight 0.004s
636 + ArgMethodExpression > should match dropRight to DropRight 0.001s
637 + ArgMethodExpression > should match takeWhile to TakeWhile 0.001s
638 + ArgMethodExpression > should match dropWhile to DropWhile 0.001s
639 + NoArgMethodExpression > should not match with an isEmpty call (one argument) 0.001s
640 + NoArgMethodExpression > should not match with an isEmpty call (block with one argument) 0.001s
641 + NoArgMethodExpression > should not match with an isEmpty call (partial function) 0.008s
642 + NoArgMethodExpression > should not match with an isEmpty call (aux function) 0.001s
643 + NoArgMethodExpression > should not match with an isEmpty call (non arguments) 0.001s
644 + NoArgMethodExpression > should not match with an isEmpty call (more than one argument) 0.004s
645 + NoArgMethodExpression > should not match with an isEmpty call (block more than one argument) 0.002s
646 + NoArgMethodExpression > should match with an isEmpty property 0.001s
647 + NoArgMethodExpression > should not match with an isEmpty import 0.003s
648 + NoArgMethodExpression > should not match with an isEmpty variable 0.001s
649stryker4s.run.TestRunnerTest:
650 + timeoutRunner > initialTestRun > should complete the timeout after the initial testrun 0.019s
651 + timeoutRunner > initialTestRun > should use the reported timeout if available 0.012s
652 + timeoutRunner > initialTestRun > should not log the timeout setting if timeout has already been completed 0.002s
653 + timeoutRunner > runMutant > should timeout slow mutant runs 0.015s
654 + timeoutRunner > runMutant > should recreate the inner resource after a timeout 0.011s
655 + timeoutRunner > runMutant > should not timeout fast mutant runs 0.003s
656 + retryRunner > should retry after a first attempt fails 0.028s
657 + retryRunner > should report a mutant as Error after 3 failures 0.011s
658 + retryRunner > should only report as Error after 3 failed attempts 0.009s
659 + maxReuseTestRunner > should not recreate if reuse is not reached yet 0.02s
660 + maxReuseTestRunner > should recreate when reuse is reached 0.01s
661stryker4s.run.ResourcePoolTest:
662 + resource > should close the resources when closing the pool 0.027s
663 + run > should divide work on the resource pool 0.038s
664 + run > should divide work over other resources if one is slower 0.038s
665 + loan > should put the resource back in the pool after use 0.011s
666stryker4s.run.process.ProcessRunnerTest:
667 + resolveRunner > should resolve the proper runner for the current OS 0.002s
668stryker4s.run.RollbackHandlerTest:
669 + rollbackFiles > should remove a non-compiling mutant 0.09s
670 + rollbackFiles > should return a Left if no mutants were removed 0.037s
671 + rollbackFiles > should filter out fixed files of the rollbackResult 0.035s
672stryker4s.report.AggregateReporterTest:
673 + mutantTested > should do nothing if there are no reporters 0.005s
674 + mutantTested > should report to all reporters that a mutant is tested 0.105s
675 + mutantTested > should report to all reporters even if a first reporter fails 0.036s
676 + onRunFinished > should report to all reporters that a mutation run is completed 0.006s
677 + onRunFinished > should still call other reporters if a reporter throws an exception 0.002s
678 + onRunFinished > logging > should log and throw if a reporter throws an exception 0.001s
679 + onRunFinished > logging > should not log warnings if no exceptions occur 0.002s
680stryker4s.mutants.AddAllMutationsTest:
681 + failed to add mutations > #585 (if-statement in Term.Apply) 0.104s
682 + failed to add mutations > #586 (second function call with `case`) 0.117s
683 + failed to add mutations > #776 (if-else block statement) 0.048s
684 + failed to add mutations > #776 2 1.042s
685 + failed to add mutations > each case of pattern match 0.02s
686 + failed to add mutations > try-catch-finally 0.025s
687Starting build for ProjectRef(file:/build/repo/,commandRunner3) (stryker4s-command-runner)... [4/7]
688Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wvalue-discard, -Wnonunit-statement, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
689[info] compiling 5 Scala sources to /build/repo/modules/commandRunner/target/jvm-3/classes ...
690[info] done compiling
691[info] compiling 3 Scala sources to /build/repo/modules/commandRunner/target/jvm-3/test-classes ...
692[info] done compiling
693stryker4s.run.Stryker4sArgumentHandlerTest:
694 + parseArgs should set the default logLevel to INFO 0.014s
695 + parseArgs should parse trace to TRACE 0.001s
696 + parseArgs should parse info to INFO 0.0s
697 + parseArgs should parse warn to WARN 0.001s
698 + parseArgs should parse error to ERROR 0.0s
699 + parseArgs should parse regardless of casing 0.0s
700stryker4s.run.ProcessTestRunnerTest:
701 + runMutant > should return a Survived mutant on an exitcode 0 process 0.026s
702 + runMutant > should return a Killed mutant on an exitcode 1 process 0.002s
703 + runMutant > should return a TimedOut mutant on a TimedOut process 0.001s
704 + initialTestRun > should have isSuccessful false when the initial test run fails 0.003s
705Starting build for ProjectRef(file:/build/repo/,testRunnerApi3) (stryker4s-testrunner-api)... [5/7]
706Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wnonunit-statement, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, --java-output-version:17, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
707Starting build for ProjectRef(file:/build/repo/,testkit3) (stryker4s-testkit)... [6/7]
708Compile scalacOptions: -encoding, utf8, -unchecked, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -Xkind-projector, -Wvalue-discard, -Wnonunit-statement, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
709
710************************
711Build summary:
712[{
713 "module": "stryker4s-api",
714 "compile": {"status": "ok", "tookMs": 3822, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
715 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
716 "test-compile": {"status": "ok", "tookMs": 158, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
717 "test": {"status": "ok", "tookMs": 125, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
718 "publish": {"status": "skipped", "tookMs": 0},
719 "metadata": {
720 "crossScalaVersions": ["2.12.20", "3.7.3"]
721}
722},{
723 "module": "stryker4s-sbt-testrunner",
724 "compile": {"status": "ok", "tookMs": 11439, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
725 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
726 "test-compile": {"status": "ok", "tookMs": 181, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
727 "test": {"status": "ok", "tookMs": 173, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
728 "publish": {"status": "skipped", "tookMs": 0},
729 "metadata": {
730 "crossScalaVersions": ["2.12.20", "3.7.3"]
731}
732},{
733 "module": "stryker4s-testrunner-api",
734 "compile": {"status": "ok", "tookMs": 11965, "warnings": 0, "errors": 0},
735 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
736 "test-compile": {"status": "ok", "tookMs": 98, "warnings": 0, "errors": 0},
737 "test": {"status": "ok", "tookMs": 91, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
738 "publish": {"status": "skipped", "tookMs": 0},
739 "metadata": {
740 "crossScalaVersions": ["2.12.20", "3.7.3"]
741}
742},{
743 "module": "stryker4s-core",
744 "compile": {"status": "ok", "tookMs": 12691, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
745 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
746 "test-compile": {"status": "ok", "tookMs": 13223, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
747 "test": {"status": "ok", "tookMs": 4028, "passed": 441, "failed": 0, "ignored": 0, "skipped": 0, "total": 441, "byFramework": [{"framework": "munit", "stats": {"passed": 441, "failed": 0, "ignored": 0, "skipped": 0, "total": 441}}]},
748 "publish": {"status": "skipped", "tookMs": 0},
749 "metadata": {
750 "crossScalaVersions": ["2.12.20", "3.7.3"]
751}
752},{
753 "module": "stryker4s-command-runner",
754 "compile": {"status": "ok", "tookMs": 1285, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
755 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
756 "test-compile": {"status": "ok", "tookMs": 1146, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
757 "test": {"status": "ok", "tookMs": 807, "passed": 10, "failed": 0, "ignored": 0, "skipped": 0, "total": 10, "byFramework": [{"framework": "munit", "stats": {"passed": 10, "failed": 0, "ignored": 0, "skipped": 0, "total": 10}}]},
758 "publish": {"status": "skipped", "tookMs": 0},
759 "metadata": {
760 "crossScalaVersions": ["2.12.20", "3.7.3"]
761}
762},{
763 "module": "stryker4s-testrunner-api",
764 "compile": {"status": "ok", "tookMs": 55, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
765 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
766 "test-compile": {"status": "ok", "tookMs": 116, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
767 "test": {"status": "ok", "tookMs": 112, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
768 "publish": {"status": "skipped", "tookMs": 0},
769 "metadata": {
770 "crossScalaVersions": ["2.12.20", "3.7.3"]
771}
772},{
773 "module": "stryker4s-testkit",
774 "compile": {"status": "ok", "tookMs": 118, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
775 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
776 "test-compile": {"status": "ok", "tookMs": 167, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
777 "test": {"status": "ok", "tookMs": 132, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
778 "publish": {"status": "skipped", "tookMs": 0},
779 "metadata": {
780 "crossScalaVersions": ["2.12.20", "3.7.3"]
781}
782}]
783************************
784[success] Total time: 70 s (0:01:10.0), completed Jan 8, 2026, 1:28:59 AM
785[0JChecking patch project/plugins.sbt...
786Checking patch project/Dependencies.scala...
787Checking patch build.sbt...
788Applied patch project/plugins.sbt cleanly.
789Applied patch project/Dependencies.scala cleanly.
790Applied patch build.sbt cleanly.