Build Logs

stryker-mutator/stryker4s • 3.8.0:2026-01-13

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
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"
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
42Execute tests: true
43sbt project found:
44No prepare script found for project stryker-mutator/stryker4s
45##################################
46Scala version: 3.8.0
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
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"
68"++3.8.0 -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 """{"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.685s.
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 13, 2026, 3:38:42 PM
89Execute setCrossScalaVersions: 3.8.0
90OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.16) in testRunnerApi/crossScalaVersions
91OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.16) in commandRunner/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 in testRunnerApi3/crossScalaVersions
94OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0) in testRunnerApi3/crossScalaVersions
95OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.16) in core/crossScalaVersions
96OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in core3/crossScalaVersions
97OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0) in core3/crossScalaVersions
98OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.16) in sbtTestRunner/crossScalaVersions
99OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in testkit3/crossScalaVersions
100OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0) in testkit3/crossScalaVersions
101OpenCB::Changing crossVersion 3.3.6 -> 3.8.0 in sbtTestRunner3/crossScalaVersions
102OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0) in sbtTestRunner3/crossScalaVersions
103OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in sbtPlugin3/crossScalaVersions
104OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0) in sbtPlugin3/crossScalaVersions
105OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in api3/crossScalaVersions
106OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0) in api3/crossScalaVersions
107OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.16) in testkit/crossScalaVersions
108OpenCB::Changing crossVersion 3.8.0 -> 3.8.0 in commandRunner3/crossScalaVersions
109OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0) in commandRunner3/crossScalaVersions
110[info] set current project to stryker4s (in build file:/build/repo/)
111[success] Total time: 0 s, completed Jan 13, 2026, 3:38:43 PM
112[info] Setting Scala version to 3.8.0 on 7 projects.
113[info] Switching Scala version on:
114[info] api3 (3.8.0)
115[info] testRunnerApi3 (3.8.0)
116[info] commandRunner3 (3.8.0)
117[info] core3 (3.8.0)
118[info] sbtTestRunner3 (3.8.0)
119[info] testkit3 (3.8.0)
120[info] sbtPlugin3 (3.8.0)
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 13, 2026, 3:38:44 PM
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 13, 2026, 3:38:46 PM
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 13, 2026, 3:38:49 PM
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 13, 2026, 3:38:50 PM
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 13, 2026, 3:38:52 PM
163[success] Total time: 0 s, completed Jan 13, 2026, 3:38:52 PM
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.model.MutantIdTest:
202 + MutantId > should have a toString that returns a number 0.016s
203stryker4s.config.ConfigTest:
204 + concurrency > should give concurrency 4 for 10 cpu cores 0.022s
205 + concurrency > should give concurrency 7 for 24 cpu cores 0.001s
206 + concurrency > should give concurrency 6 for 20 cpu cores 0.0s
207 + concurrency > should give concurrency 1 for 1 cpu cores 0.0s
208 + concurrency > should give concurrency 3 for 6 cpu cores 0.0s
209 + concurrency > should give concurrency 8 for 28 cpu cores 0.001s
210 + concurrency > should give concurrency 2 for 2 cpu cores 0.005s
211 + concurrency > should give concurrency 9 for 32 cpu cores 0.0s
212 + concurrency > should give concurrency 4 for 12 cpu cores 0.0s
213 + concurrency > should give concurrency 2 for 3 cpu cores 0.001s
214 + concurrency > should give concurrency 5 for 16 cpu cores 0.0s
215 + concurrency > should give concurrency 3 for 8 cpu cores 0.001s
216 + concurrency > should give concurrency 2 for 4 cpu cores 0.001s
217stryker4s.run.process.ProcessRunnerTest:
218 + resolveRunner > should resolve the proper runner for the current OS 0.012s
219stryker4s.model.MutantMetadataTest:
220 + locationShow > should show the location 0.087s
221 + locationShow > should be equal to showLocation 0.001s
222stryker4s.exception.Stryker4sExceptionTest:
223 + UnableToBuildPatternMatchException > should have the correct message 0.028s
224 + InitialTestRunFailedException > should have the correct message 0.002s
225 + TestSetupException > should have the correct message 0.001s
226 + MutationRunFailedException > should have the correct message 0.005s
227 + UnableToFixCompilerErrorsException > should have a nicely formatted message 0.068s
228stryker4s.config.circe.ConfigEncoderTest:
229 + configEncoder > should be able to encode a minimal config 0.446s
230 + configEncoder > should be able to encode a filled config 0.01s
231stryker4s.report.JsonReporterTest:
232 + reportJson > should contain the report 0.252s
233 + onRunFinished > should write the report file to the report directory 0.153s
234 + onRunFinished > should info log a message 0.011s
235stryker4s.run.TestRunnerTest:
236 + timeoutRunner > initialTestRun > should complete the timeout after the initial testrun 0.064s
237 + timeoutRunner > initialTestRun > should use the reported timeout if available 0.008s
238 + timeoutRunner > initialTestRun > should not log the timeout setting if timeout has already been completed 0.004s
239 + timeoutRunner > runMutant > should timeout slow mutant runs 0.018s
240 + timeoutRunner > runMutant > should recreate the inner resource after a timeout 0.017s
241 + timeoutRunner > runMutant > should not timeout fast mutant runs 0.007s
242 + retryRunner > should retry after a first attempt fails 0.028s
243 + retryRunner > should report a mutant as Error after 3 failures 0.013s
244 + retryRunner > should only report as Error after 3 failed attempts 0.007s
245 + maxReuseTestRunner > should not recreate if reuse is not reached yet 0.023s
246 + maxReuseTestRunner > should recreate when reuse is reached 0.012s
247stryker4s.config.ConfigLoaderTest:
248 + combines a ConfigSource into Config 0.692s
249 + accumulates failures 0.043s
250stryker4s.config.ConfigOrderTest:
251 + should order ascending 0.001s
252stryker4s.report.HtmlReporterTest:
253 + indexHtml > should contain title 0.007s
254 + reportJs > should contain the report 0.003s
255 + mutation-test-elements > should write the resource 0.146s
256 + onRunFinished > should write the report files to the report directory 0.013s
257 + onRunFinished > should write the mutation-test-elements.js file to the report directory 0.006s
258 + onRunFinished > should info log a message 0.009s
259 + onRunFinished > should open the report when openReport is true 0.009s
260 + onRunFinished > should not open the report when openReport is false 0.008s
261stryker4s.report.dashboard.DashboardConfigProviderTest:
262 + resolveConfig > should resolve a Travis environment 0.056s
263 + resolveConfig > should resolve a CircleCI environment 0.005s
264 + resolveConfig > should resolve a GitHub actions environment 0.003s
265 + resolveConfig > should resolve a GitHub actions PR environment 0.0s
266 + resolveConfig > should resolve a configured environment 0.003s
267 + resolveConfig > should resolve without a module 0.001s
268 + resolveConfig > should not resolve a GitHub actions with malformed ref 0.028s
269 + resolveConfig > should not resolve empty env variables 0.005s
270 + resolveConfig > should not resolve when there is no STRYKER_DASHBOARD_API_KEY environment 0.001s
271 + resolveConfig > should not resolve when there is no project 0.001s
272 + resolveConfig > should not resolve when there is no version 0.004s
273 + resolveConfig > should return all unresolved 0.001s
274stryker4s.mutants.TreeTraverserTest:
275 + canPlace > can not place inside case guards 0.203s
276 + canPlace > can place in case body 0.005s
277 + canPlace > can not place inside annotations 0.056s
278 + canPlace > can not place inside deep term Term 0.026s
279 + canPlace > can place outside part of a Term 0.021s
280 + canPlace > can not place inside type literals 0.023s
281stryker4s.mutants.findmutants.MutantFinderTest:
282 + parseFile > should parse an existing file 0.407s
283 + parseFile > should throw an exception on a non-parseable file 0.02s
284 + parseFile > should fail on a nonexistent file 0.001s
285 + parseFile > should parse a scala-3 file 0.103s
286 + logging > should error log an unfound file 0.011s
287stryker4s.config.TestFilterTest:
288 + filter > should work with default 0.008s
289 + filter > should work with custom 0.011s
290 + filter > should work with custom and negation 0.003s
291stryker4s.report.mapper.MutantRunResultMapperTest:
292 + mapper > should map 4 files to valid MutationTestResult 0.086s
293stryker4s.mutation.MutationTypesTest:
294 + EqualityOperator > > to GreaterThan 0.001s
295 + EqualityOperator > >= to GreaterThanEqualTo 0.002s
296 + EqualityOperator > <= to LesserThanEqualTo 0.001s
297 + EqualityOperator > < to LesserThan 0.002s
298 + EqualityOperator > == to EqualTo 0.001s
299 + EqualityOperator > != to NotEqualTo 0.001s
300 + BooleanLiteral > false to False 0.006s
301 + BooleanLiteral > true to True 0.003s
302 + LogicalOperator > && to And 0.001s
303 + LogicalOperator > || to Or 0.001s
304 + StringLiteral > foo string to NonEmptyString 0.001s
305 + StringLiteral > empty string to EmptyString 0.001s
306 + StringLiteral > string interpolation to StringInterpolation 0.008s
307 + StringLiteral > q interpolation should not match StringInterpolation 0.002s
308 + StringLiteral > t interpolation should not match StringInterpolation 0.0s
309 + other cases > should return original tree on match 0.0s
310 + other cases > should convert GreaterThan to > 0.008s
311 + other cases > should convert to the proper type 0.001s
312stryker4s.extension.TreeExtensionsTest:
313 + isIn > should be false for annotations 0.018s
314 + find > should find statement in simple tree 0.006s
315 + find > should find statement in large tree 0.073s
316 + find > should return none if statement is not in tree 0.009s
317 + find > should still have parents when statement is found 0.004s
318 + transformOnce > should transform does not recursively transform new subtree 0.007s
319 + transformOnce > should transform both appearances in the tree only once 0.011s
320 + transformOnce > should return the same tree if no transformation is applied 0.001s
321 + transformOnce > should transform a parsed string and have changed syntax 0.013s
322 + collectWithContext > should collect all statements without context 0.005s
323 + collectWithContext > should collect and pass context 0.007s
324 + collectWithContext > should only evaluate functions once 0.003s
325 + collectWithContext > should not search upwards for context if one has already been found 0.007s
326 + collectWithContext > should not call context-building function if no collector is found 0.003s
327 + collectWithContext > should call with older context if not found on the currently-visiting tree 0.003s
328 + collectWithContext > should pass down each collector its own context 0.007s
329 + collectWithContext > should not pass context from separate trees 0.013s
330 + toLocation > should map a weaponregex.Location to a mutationtesting.Location 0.001s
331 + toLocation > uses correct offset for triple double-quote strings 0.001s
332stryker4s.run.ResourcePoolTest:
333 + resource > should close the resources when closing the pool 0.076s
334 + run > should divide work on the resource pool 0.033s
335 + run > should divide work over other resources if one is slower 0.051s
336 + loan > should put the resource back in the pool after use 0.015s
337stryker4s.mutants.MutatorTest:
338 + run > should return a single Tree with changed pattern match 0.745s
339 + run > should run go 0.082s
340 + logs > should log the amount of mutants found 0.03s
341 + logs > should log the amount of excluded mutants 0.068s
342 + logs > should log a warning if no mutants are found 0.02s
343 + logs > should log if all mutations are excluded 0.044s
344stryker4s.Stryker4sTest:
345 + should call mutate files and report the results 0.458s
346stryker4s.files.GlobTest:
347 + include patterns > should match no files with empty glob 0.001s
348 + include patterns > should match files 0 levels deep 0.0s
349 + include patterns > should match on the second glob if the first doesn't match 0.001s
350 + include patterns > should match files 1 level deep 0.004s
351 + include patterns > should match files multiple levels deep 0.0s
352 + include patterns > should match on multiple patterns 0.001s
353 + include patterns > should match exact matches 0.001s
354 + ignore patterns > should exclude the file specified in the excluded pattern 0.01s
355 + ignore patterns > should exclude all files specified in the excluded pattern 0.001s
356 + ignore patterns > should exclude all files based on a wildcard 0.001s
357 + ignore patterns > should not exclude files if a non-matching ignore pattern is given 0.008s
358 + should escape \\ in a path 0.001s
359 + should escape { in a path 0.0s
360 + should escape } in a path 0.0s
361 + should escape [ in a path 0.001s
362 + should escape ] in a path 0.0s
363 + should escape * in a path 0.003s
364 + should escape ? in a path 0.0s
365stryker4s.mutants.tree.MutantCollectorTest:
366 + onEnter > should only call 'isDefinedAt' on the PartialFunction once 0.019s
367 + apply > should return the mutated code 0.012s
368stryker4s.run.threshold.ThresholdCheckerTest:
369 + thresholdchecker > should return a DangerStatus with default thresholds and score 0.0 0.0s
370 + thresholdchecker > should return a SuccessStatus when the score is above threshold 0.001s
371 + thresholdchecker > should return a DangerStatus when the score equals threshold 0.0s
372 + thresholdchecker > should return an ErrorStatus when the threshold is not met 0.001s
373 + thresholdchecker > should never return WarningStatus when 'high' is equal to 'low' 0.001s
374 + thresholdchecker > should return success status when score is equal to or greater than 'high' threshold 0.0s
375 + thresholdchecker > should return warning status when score is below 'high' and above or equal to 'low' threshold 0.001s
376 + thresholdchecker > should return danger status when score is below 'low' and above or equal to 'break' threshold 0.003s
377 + thresholdchecker > should return error status when score is below 'break' 0.001s
378 + thresholdchecker > should return success for NaN 0.0s
379stryker4s.run.RollbackHandlerTest:
380 + rollbackFiles > should remove a non-compiling mutant 0.146s
381 + rollbackFiles > should return a Left if no mutants were removed 0.044s
382 + rollbackFiles > should filter out fixed files of the rollbackResult 0.059s
383stryker4s.config.source.DefaultsConfigSourceTest:
384 + loads all default values 0.014s
385stryker4s.report.ConsoleReporterTest:
386 + mutantTested > should log progress 0.037s
387 + mutantTested > should round decimal numbers 0.018s
388 + reportFinishedRun > should report killed mutants as debug 0.039s
389 + reportFinishedRun > should report a finished run with multiple mutants 0.044s
390 + reportFinishedRun > should log mutants sorted by id 0.034s
391 + reportFinishedRun > should report two line mutants properly 0.009s
392 + reportFinishedRun > should report multiline mutants properly 0.012s
393 + reportFinishedRun > should round decimal mutation scores 0.007s
394 + reportFinishedRun > should log NaN correctly as n/a 0.006s
395 + reportFinishedRun > should report the mutation score when it is info 0.003s
396 + reportFinishedRun > should report the mutation score when it is warning 0.005s
397 + reportFinishedRun > should report the mutation score when it is dangerously low 0.005s
398 + reportFinishedRun > should log when below threshold 0.009s
399 + reportFinishedRun > should log covered code if it is different to the total 0.004s
400stryker4s.config.codec.CirisConfigDecodersTest:
401 + Thresholds > should load high=85, low=65, break=10 to expected result 0.0s
402 + Thresholds > should load high=30, low=30 to expected result 0.001s
403 + Thresholds > should load low=30, break=29 to expected result 0.0s
404 + Thresholds > should load high=100 to expected result 0.0s
405 + Thresholds > should not load Thresholds(-1,60,0) 0.002s
406 + Thresholds > should not load Thresholds(80,-1,0) 0.0s
407 + Thresholds > should not load Thresholds(80,60,-1) 0.0s
408 + Thresholds > should not load Thresholds(101,60,0) 0.001s
409 + Thresholds > should not load Thresholds(80,101,0) 0.0s
410 + Thresholds > should not load Thresholds(80,60,101) 0.0s
411 + Thresholds > should not load Thresholds(50,51,0) 0.001s
412 + Thresholds > should not load Thresholds(80,50,51) 0.0s
413 + Thresholds > should not load Thresholds(80,50,50) 0.0s
414 + ScalaDialect > should parse scala30 to Scala30 0.004s
415 + ScalaDialect > should parse future to Scala3Future 0.0s
416 + ScalaDialect > should parse 33 to Scala33 0.001s
417 + ScalaDialect > should parse 37 to Scala37 0.0s
418 + ScalaDialect > should parse 3.0 to Scala30 0.001s
419 + ScalaDialect > should parse 3.5 to Scala35 0.006s
420 + ScalaDialect > should parse scala37 to Scala37 0.001s
421 + ScalaDialect > should parse 3.3 to Scala33 0.0s
422 + ScalaDialect > should parse 2.12 to Scala212 0.001s
423 + ScalaDialect > should parse scala36 to Scala36 0.0s
424 + ScalaDialect > should parse scala213source3 to Scala213Source3 0.001s
425 + ScalaDialect > should parse source3 to Scala213Source3 0.0s
426 + ScalaDialect > should parse scala212 to Scala212 0.0s
427 + ScalaDialect > should parse scala3.7 to Scala37 0.001s
428 + ScalaDialect > should parse 34 to Scala34 0.0s
429 + ScalaDialect > should parse scala3.4 to Scala34 0.001s
430 + ScalaDialect > should parse 3.7 to Scala37 0.0s
431 + ScalaDialect > should parse 3.1 to Scala32 0.003s
432 + ScalaDialect > should parse scala3.1 to Scala32 0.001s
433 + ScalaDialect > should parse 3.4 to Scala34 0.0s
434 + ScalaDialect > should parse 212 to Scala212 0.001s
435 + ScalaDialect > should parse scala34 to Scala34 0.0s
436 + ScalaDialect > should parse scala3.3 to Scala33 0.001s
437 + ScalaDialect > should parse 35 to Scala35 0.003s
438 + ScalaDialect > should parse scala3 to Scala37 0.0s
439 + ScalaDialect > should parse 2.13 to Scala213 0.001s
440 + ScalaDialect > should parse 213 to Scala213 0.003s
441 + ScalaDialect > should parse scala2.13 to Scala213 0.001s
442 + ScalaDialect > should parse 32 to Scala32 0.0s
443 + ScalaDialect > should parse 36 to Scala36 0.001s
444 + ScalaDialect > should parse scala3.2 to Scala32 0.0s
445 + ScalaDialect > should parse 31 to Scala32 0.001s
446 + ScalaDialect > should parse scala35 to Scala35 0.0s
447 + ScalaDialect > should parse scala31 to Scala32 0.001s
448 + ScalaDialect > should parse scala3future to Scala3Future 0.0s
449 + ScalaDialect > should parse dotty to Scala30 0.0s
450 + ScalaDialect > should parse 2 to Scala213 0.001s
451 + ScalaDialect > should parse scala3.6 to Scala36 0.0s
452 + ScalaDialect > should parse 3.2 to Scala32 0.001s
453 + ScalaDialect > should parse scala3.0 to Scala30 0.0s
454 + ScalaDialect > should parse scala213 to Scala213 0.0s
455 + ScalaDialect > should parse scala2.12 to Scala212 0.001s
456 + ScalaDialect > should parse scala3.5 to Scala35 0.0s
457 + ScalaDialect > should parse 3.6 to Scala36 0.001s
458 + ScalaDialect > should parse 30 to Scala30 0.0s
459 + ScalaDialect > should parse scala32 to Scala32 0.0s
460 + ScalaDialect > should parse scala33 to Scala33 0.001s
461 + ScalaDialect > should parse 3 to Scala37 0.0s
462 + ScalaDialect > should parse scala212source3 to Scala212Source3 0.001s
463 + ScalaDialect > should not parse invalid scala-dialects 0.006s
464 + ScalaDialect > should error deprecated scala-dialect scala211 0.007s
465 + ScalaDialect > should error deprecated scala-dialect scala2.11 0.001s
466 + ScalaDialect > should error deprecated scala-dialect 2.11 0.001s
467 + ScalaDialect > should error deprecated scala-dialect 211 0.006s
468 + ReporterType > should decode valid reporters 0.008s
469 + ReporterType > should not decode invalid reporters 0.004s
470 + DashboardReportType > should decode valid dashboard report types 0.001s
471 + DashboardReportType > should not decode invalid dashboard report types 0.001s
472 + Uri > should decode valid uris 0.005s
473 + Uri > should not decode invalid uris 0.003s
474 + Duration > should decode valid duration values 0.003s
475 + Duration > should fallback to milliseconds when no unit is provided 0.009s
476stryker4s.report.AggregateReporterTest:
477 + mutantTested > should do nothing if there are no reporters 0.003s
478 + mutantTested > should report to all reporters that a mutant is tested 0.104s
479 + mutantTested > should report to all reporters even if a first reporter fails 0.049s
480 + onRunFinished > should report to all reporters that a mutation run is completed 0.009s
481 + onRunFinished > should still call other reporters if a reporter throws an exception 0.001s
482 + onRunFinished > logging > should log and throw if a reporter throws an exception 0.005s
483 + onRunFinished > logging > should not log warnings if no exceptions occur 0.002s
484stryker4s.files.GlobFileResolverTest:
485 + files > should not collect the baseDir 0.003s
486 + files > should find all scala files and not the non-scala files with a default glob 0.007s
487 + files > should find matching files with custom match pattern 0.006s
488 + files > should only add a glob once even when it matches twice 0.004s
489 + files > should exclude all files in the target folder 0.007s
490 + files > should match if basePath and glob are absolute 0.008s
491stryker4s.extension.PartialFunctionOpsTest:
492 + Monoid > when combined still calls the first PF 0.005s
493 + Monoid > when combined still calls the second PF 0.001s
494 + Monoid > combines the result when both PFs match 0.006s
495 + Monoid > combines the result multiple times with combineN 0.001s
496 + Monoid > Empty Monoid is equal to empty PartialFunction 0.0s
497 + Monoid > Empty Monoid should not match on anything equal to empty PartialFunction 0.001s
498 + Monoid > should not be able to combine PF's that can't combine the result 0.008s
499stryker4s.extension.NumberExtensionsTest:
500 + roundDecimals > should round down to the given decimals 0.001s
501 + roundDecimals > should round up to the given decimals 0.009s
502 + roundDecimals > should round multiple decimals 0.001s
503 + roundDecimals > should leave NaN 0.002s
504stryker4s.run.MutantRunnerTest:
505 + apply > should return a mutationScore of 66.67 when 2 of 3 mutants are killed 0.079s
506 + apply > should return a mutationScore of 66.67 when 2 of 3 mutants are killed and 1 doesn't compile. 0.114s
507 + apply > should use static temp dir if it was requested 0.067s
508 + apply > should not clean up tmp dir on errors 0.032s
509 + apply > should not clean up tmp dir if clean-tmp-dir is disabled 0.053s
510stryker4s.extension.DurationExtensionsTest:
511 + toHumanReadable > should parse 1 second 0.0s
512 + toHumanReadable > should parse 0 duration 0.0s
513 + toHumanReadable > should parse 1 nanosecond to 0 0.0s
514 + toHumanReadable > should parse 1 ms 0.001s
515 + toHumanReadable > should parse multiple seconds 0.0s
516 + toHumanReadable > should not include units in the middle that are zero 0.0s
517 + toHumanReadable > should parse a combination of units 0.0s
518stryker4s.mutation.MethodExpressionTest:
519 + ArgMethodExpression > should match with a filter call (one argument) 0.032s
520 + ArgMethodExpression > should match with an infix filter call (one argument) 0.011s
521 + ArgMethodExpression > should match with a filter call (block with one argument) 0.002s
522 + ArgMethodExpression > should match with an infix filter call (block with one argument) 0.005s
523 + ArgMethodExpression > should match with a filter call (partial function) 0.009s
524 + ArgMethodExpression > should match with an infix filter call (partial function) 0.002s
525 + ArgMethodExpression > should match with a filter call (aux function) 0.003s
526 + ArgMethodExpression > should match with an infix filter call (aux function) 0.002s
527 + ArgMethodExpression > should not match with an infix filter call (non arguments) 0.001s
528 + ArgMethodExpression > should not match with a filter call (more than one argument) 0.002s
529 + ArgMethodExpression > should not match with an infix filter call (more than one argument) 0.006s
530 + ArgMethodExpression > should not match with a filter call (more than one argument) 2 0.001s
531 + ArgMethodExpression > should not match with an infix filter call (more than one argument) 2 0.004s
532 + ArgMethodExpression > should not match with a filter call (block more than one argument) 0.001s
533 + ArgMethodExpression > should not match with a filter property 0.001s
534 + ArgMethodExpression > should not match with an infix filter property 0.006s
535 + ArgMethodExpression > should not match with a filter import 0.01s
536 + ArgMethodExpression > should not match with a filter variable 0.001s
537 + ArgMethodExpression > should match exists to Exists 0.001s
538 + ArgMethodExpression > should match forall to Forall 0.001s
539 + ArgMethodExpression > should match take to Take 0.006s
540 + ArgMethodExpression > should match drop to Drop 0.001s
541 + ArgMethodExpression > should match takeRight to TakeRight 0.002s
542 + ArgMethodExpression > should match dropRight to DropRight 0.001s
543 + ArgMethodExpression > should match takeWhile to TakeWhile 0.002s
544 + ArgMethodExpression > should match dropWhile to DropWhile 0.005s
545 + NoArgMethodExpression > should not match with an isEmpty call (one argument) 0.001s
546 + NoArgMethodExpression > should not match with an isEmpty call (block with one argument) 0.003s
547 + NoArgMethodExpression > should not match with an isEmpty call (partial function) 0.001s
548 + NoArgMethodExpression > should not match with an isEmpty call (aux function) 0.001s
549 + NoArgMethodExpression > should not match with an isEmpty call (non arguments) 0.007s
550 + NoArgMethodExpression > should not match with an isEmpty call (more than one argument) 0.001s
551 + NoArgMethodExpression > should not match with an isEmpty call (block more than one argument) 0.008s
552 + NoArgMethodExpression > should match with an isEmpty property 0.0s
553 + NoArgMethodExpression > should not match with an isEmpty import 0.0s
554 + NoArgMethodExpression > should not match with an isEmpty variable 0.004s
555stryker4s.extension.ResourceExtensionsTest:
556 + selfRecreatingResource > should create a resource only once when not using the release F 0.007s
557 + selfRecreatingResource > should close first before creating a new Resource 0.005s
558stryker4s.extension.FileExtensionsTest:
559 + relativePath > should return the relative path on a file inside the base-dir 0.005s
560 + relativePath > should return just the file name when a file is in the base-dir 0.0s
561 + relativePath > should return the path if the given path is relative 0.001s
562 + relativePath > works if both are relative 0.0s
563 + relativePath > works if both are absolute 0.0s
564 + relativePath > works if baseDir is relative and path is absolute 0.001s
565 + relativePath > works if baseDir is absolute and path is relative 0.0s
566 + relativePath > multiple calls doesn't change the path 0.0s
567 + inSubDir > should calculate a path relative to the new subDir 0.001s
568stryker4s.report.DashboardReporterTest:
569 + buildRequest > should compose the request 0.08s
570 + buildRequest > should make a score-only request when score-only is configured 0.007s
571 + buildRequest > should add the module if it is present 0.011s
572 + onRunFinished > should send the request 0.094s
573 + onRunFinished > log when not being able to resolve dashboard config 0.007s
574 + onRunFinished > should log when a response can't be parsed to a href 0.011s
575 + onRunFinished > should log when a 401 is returned by the API 0.014s
576 + onRunFinished > should log when a error code is returned by the API 0.016s
577stryker4s.model.CompilerErrMsgTest:
578 + CompilerErrMsgTest > should have a nicely formatted show 0.001s
579stryker4s.config.source.AggregateConfigSourceTest:
580 + combines multiple sources 0.13s
581 + aggregate combines given sources and defaults 0.017s
582stryker4s.config.source.CliConfigSourceTest:
583 + should load a filled config 0.179s
584 + should parse short arguments 0.03s
585 + fails on unknown arguments 0.003s
586 + should handle multiple arguments 0.003s
587stryker4s.mutants.findmutants.MutantMatcherTest:
588 + All Matchers > should match a conditional statement 0.074s
589 + All Matchers > should match a method 0.022s
590 + All Matchers > should match a boolean and a conditional 0.017s
591 + All Matchers > should match the default case of a constructor argument 0.018s
592 + All Matchers > should match on the default case of a function argument 0.031s
593 + matchEqualityOperator matcher > should match >= sign with >, <, and == 0.017s
594 + matchEqualityOperator matcher > should match > with >=, < and == 0.015s
595 + matchEqualityOperator matcher > should match <= to <, >= and == 0.024s
596 + matchEqualityOperator matcher > should match < to <=, > and == 0.018s
597 + matchEqualityOperator matcher > should match == to != 0.008s
598 + matchEqualityOperator matcher > should match != to == 0.011s
599 + matchEqualityOperator matcher > should match === to =!= 0.003s
600 + matchEqualityOperator matcher > should match =!= to === 0.003s
601 + matchLogicalOperator matcher > should match && to || 0.003s
602 + matchLogicalOperator matcher > should match || to && 0.002s
603 + matchMethodExpression matcher > should match filter to filterNot 0.014s
604 + matchMethodExpression matcher > should match filterNot to filter 0.008s
605 + matchMethodExpression matcher > should match exists to forall 0.022s
606 + matchMethodExpression matcher > should match forall to exists 0.016s
607 + matchMethodExpression matcher > should match take to drop 0.006s
608 + matchMethodExpression matcher > should match drop to take 0.005s
609 + matchMethodExpression matcher > should match takeRight to dropRight 0.005s
610 + matchMethodExpression matcher > should match dropRight to takeRight 0.005s
611 + matchMethodExpression matcher > should match takeWhile to dropWhile 0.013s
612 + matchMethodExpression matcher > should match dropWhile to takeWhile 0.006s
613 + matchMethodExpression matcher > should match isEmpty to nonEmpty 0.01s
614 + matchMethodExpression matcher > should match nonEmpty to isEmpty 0.002s
615 + matchMethodExpression matcher > should match indexOf to lastIndexOf 0.003s
616 + matchMethodExpression matcher > should match lastIndexOf to indexOf 0.003s
617 + matchMethodExpression matcher > should match max to min 0.003s
618 + matchMethodExpression matcher > should match min to max 0.002s
619 + matchMethodExpression matcher > should match maxBy to minBy 0.007s
620 + matchMethodExpression matcher > should match minBy to maxBy 0.007s
621 + matchBooleanLiteral matcher > should match false to true 0.001s
622 + matchBooleanLiteral matcher > should match true to false 0.007s
623 + matchStringLiteral matcher > should match foo to NonEmptyString 0.008s
624 + matchStringLiteral matcher > should match empty string to StrykerWasHere 0.005s
625 + matchStringLiteral matcher > should match on interpolated strings 0.007s
626 + matchStringLiteral matcher > should match once on interpolated strings with multiple parts 0.012s
627 + matchStringLiteral matcher > should not match non-string interpolation 0.011s
628 + matchStringLiteral matcher > should not match pattern interpolation 0.019s
629 + matchStringLiteral matcher > should match pattern in string 0.006s
630 + matchStringLiteral matcher > should not match xml literals 0.119s
631 + matchStringLiteral matcher > should not match empty strings on xml literals 0.013s
632 + matchStringLiteral matcher > should match inside xml literal args 0.007s
633 + matchStringLiteral matcher > should not match xml interpolation 0.003s
634 + regexMutator > should match Regex constructor 0.159s
635 + regexMutator > should match scala.util.matching.Regex constructor 0.024s
636 + regexMutator > should match a Regex constructor with named groups 0.013s
637 + regexMutator > should match Regex String ops 0.008s
638 + regexMutator > should match Pattern.compile Regex constructor 0.007s
639 + regexMutator > should match java.util.regex.Pattern.compile Regex constructor 0.005s
640 + regexMutator > should match Pattern.compile Regex constructor with flags 0.01s
641 + regexMutator > should not match e regular string 0.001s
642 + regexMutator > should handle regexes without any mutations 0.05s
643 + no function name matching > should not match a function with a mutator name 0.012s
644 + no function name matching > should not match on a case class with a mutator name 0.004s
645 + no function name matching > should not match on a variable with a mutator name 0.004s
646 + no function name matching > should not match on type arguments 0.007s
647 + no function name matching > should not match on infix type arguments 0.001s
648 + no function name matching > should not match on type apply 0.005s
649 + no function name matching > should not match on literal type declarations 0.002s
650 + no function name matching > should not match on literal type declarations for var 0.022s
651 + no function name matching > should not match on infix literal type declarations 0.003s
652 + no function name matching > should not match on def literal return types 0.007s
653 + no function name matching > should not match on literal function types 0.005s
654 + no function name matching > should not match on type aliases 0.005s
655 + no function name matching > should not match a function with a single expression 0.001s
656 + no function name matching > should mutate if statements with true and false as condition 0.006s
657 + no function name matching > should mutate while statements with false as condition 0.015s
658 + no function name matching > should mutate do while statements with false as condition 0.013s
659 + no function name matching > should mutate conditional statements that have a literal boolean as condition only once 0.008s
660 + filtering > should filter out config excluded mutants 0.024s
661 + filtering > should filter out string mutants inside annotations 0.006s
662 + filtering > should log partition unparsable regular expressions 0.024s
663stryker4s.config.source.FileConfigSourceTest:
664 + should load a filled config 0.028s
665 + should not be able to load an empty config 0.002s
666 + should fail on an unknown reporter 0.009s
667 + should load a config with unknown keys 0.005s
668 + should filter out duplicate keys 0.005s
669 + should return a failure on a misshapen excluded-mutations 0.005s
670 + should parse duration expressions 0.004s
671 + should handle missing files 0.009s
672 + fails on other errors 0.014s
673 + logs > should log where the config is read from 0.003s
674stryker4s.mutants.tree.MutantInstrumenterTest:
675 + instrumentFile > should transform 2 mutations into a match statement with 2 mutated and 1 original 0.041s
676 + instrumentFile > should place mutants on the correct statement even if the name appears twice 0.038s
677 + instrumentFile > should apply the correct instrumenter options 0.029s
678 + instrumentFile > should log failures correctly 0.009s
679 + instrumentFile > should rethrow Stryker4sExceptions 0.002s
680stryker4s.mutants.AddAllMutationsTest:
681 + failed to add mutations > #585 (if-statement in Term.Apply) 0.098s
682 + failed to add mutations > #586 (second function call with `case`) 0.104s
683 + failed to add mutations > #776 (if-else block statement) 0.086s
684 + failed to add mutations > #776 2 0.83s
685 + failed to add mutations > each case of pattern match 0.02s
686 + failed to add mutations > try-catch-finally 0.027s
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.018s
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.0s
698 + parseArgs should parse error to ERROR 0.001s
699 + parseArgs should parse regardless of casing 0.001s
700stryker4s.run.ProcessTestRunnerTest:
701 + runMutant > should return a Survived mutant on an exitcode 0 process 0.025s
702 + runMutant > should return a Killed mutant on an exitcode 1 process 0.001s
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": 3676, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
715 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
716 "test-compile": {"status": "ok", "tookMs": 147, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
717 "test": {"status": "ok", "tookMs": 127, "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": 11469, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
725 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
726 "test-compile": {"status": "ok", "tookMs": 177, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
727 "test": {"status": "ok", "tookMs": 171, "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": 11654, "warnings": 0, "errors": 0},
735 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
736 "test-compile": {"status": "ok", "tookMs": 107, "warnings": 0, "errors": 0},
737 "test": {"status": "ok", "tookMs": 104, "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": 12348, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
745 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
746 "test-compile": {"status": "ok", "tookMs": 13026, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
747 "test": {"status": "ok", "tookMs": 3948, "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": 1073, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
755 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
756 "test-compile": {"status": "ok", "tookMs": 997, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
757 "test": {"status": "ok", "tookMs": 829, "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": 68, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
765 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
766 "test-compile": {"status": "ok", "tookMs": 102, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
767 "test": {"status": "ok", "tookMs": 100, "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": 104, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
775 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
776 "test-compile": {"status": "ok", "tookMs": 153, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
777 "test": {"status": "ok", "tookMs": 139, "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: 67 s (0:01:07.0), completed Jan 13, 2026, 3:39:59 PM
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.