Build Logs
pjfanning/play-json • 3.8.1-RC1:2026-01-13
Errors
4
Warnings
65
Total Lines
1012
1##################################
2Clonning https://github.com/pjfanning/play-json.git into /build/repo using revision 3.3.0
3##################################
4Note: switching to '94cd472997c8ac9400072dfffd993343552901a8'.
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.3.3
22----
23Preparing build for 3.8.1-RC1
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.3.3"
35Replacement: val Scala3 = "3.8.1-RC1"
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.3.3"' in project/Dependencies.scala
40----
41Starting build for 3.8.1-RC1
42Execute tests: true
43sbt project found:
44Sbt version 1.11.2 is not supported, minimal supported version is 1.11.5
45Enforcing usage of sbt in version 1.11.5
46No prepare script found for project pjfanning/play-json
47##################################
48Scala version: 3.8.1-RC1
49Targets: com.github.pjfanning%play-json
50Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Dependencies.scala","pattern":"val Scala3 = \"3.3.3\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
51##################################
52Using extra scalacOptions: ,REQUIRE:-source:3.8
53Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
54[sbt_options] declare -a sbt_options=()
55[process_args] java_version = '17'
56[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
57# Executing command line:
58java
59-Dfile.encoding=UTF-8
60-Dcommunitybuild.scala=3.8.1-RC1
61-Dcommunitybuild.project.dependencies.add=
62-Xmx7G
63-Xms4G
64-Xss8M
65-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
66-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
67-jar
68/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
69"setCrossScalaVersions 3.8.1-RC1"
70"++3.8.1-RC1 -v"
71"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
72"set every credentials := Nil"
73"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
74"removeScalacOptionsStartingWith -P:wartremover"
75
76moduleMappings
77"runBuild 3.8.1-RC1 """{"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Dependencies.scala","pattern":"val Scala3 = \"3.3.3\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}""" com.github.pjfanning%play-json"
78
79[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
80[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
81[info] loading project definition from /build/repo/project
82[info] compiling 6 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
83[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
84[info] Compilation completed in 9.086s.
85[info] done compiling
86[info] loading settings for project root from build.sbt...
87[info] set current project to root (in build file:/build/repo/)
88Execute setCrossScalaVersions: 3.8.1-RC1
89OpenCB::Changing crossVersion 3.8.1-RC1 -> 3.8.1-RC1 in benchmarks/crossScalaVersions
90OpenCB::Changing crossVersion 3.8.1-RC1 -> 3.8.1-RC1 in play-jsonJVM/crossScalaVersions
91OpenCB::Changing crossVersion 3.8.1-RC1 -> 3.8.1-RC1 in docs/crossScalaVersions
92OpenCB::Changing crossVersion 3.8.1-RC1 -> 3.8.1-RC1 in root/crossScalaVersions
93[info] set current project to root (in build file:/build/repo/)
94[info] Setting Scala version to 3.8.1-RC1 on 4 projects.
95[info] Switching Scala version on:
96[info] * root (2.12.20, 2.13.16, 3.8.1-RC1)
97[info] play-jsonJVM (2.12.20, 2.13.16, 3.8.1-RC1)
98[info] benchmarks (2.12.20, 2.13.16, 3.8.1-RC1)
99[info] docs (2.12.20, 2.13.16, 3.8.1-RC1)
100[info] Excluding projects:
101[info] Reapplying settings...
102[info] set current project to root (in build file:/build/repo/)
103Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
104[info] Reapplying settings...
105[info] set current project to root (in build file:/build/repo/)
106[info] Defining Global / credentials, benchmarks / credentials and 2 others.
107[info] The new values will be used by Compile / scalafmtOnly, Global / pgpSelectPassphrase and 31 others.
108[info] Run `last` for details.
109[info] Reapplying settings...
110[info] set current project to root (in build file:/build/repo/)
111Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
112[info] Reapplying settings...
113OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
114
115 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
116 Did you mean allExcludeDependencies ?
117 , retry without global scopes
118[info] Reapplying settings...
119[info] set current project to root (in build file:/build/repo/)
120Execute removeScalacOptionsStartingWith: -P:wartremover
121[info] Reapplying settings...
122[info] set current project to root (in build file:/build/repo/)
123[success] Total time: 0 s, completed Jan 13, 2026, 8:16:51 PM
124Build config: {"projects":{"exclude":[],"overrides":{}},"java":{},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"project/Dependencies.scala","pattern":"val Scala3 = \"3.3.3\"","replaceWith":"val Scala3 = \"<SCALA_VERSION>\""}]}
125Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
126Starting build...
127Projects: Set(play-jsonJVM)
128Starting build for ProjectRef(file:/build/repo/,play-jsonJVM) (play-json)... [0/1]
129OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
130OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
131OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
132Compile scalacOptions: -unchecked, -encoding, utf8, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
133[info] compiling 33 Scala sources to /build/repo/play-json/jvm/target/scala-3.8.1-RC1/classes ...
134[warn] -- [E197] Potential Issue Warning: /build/repo/play-json/shared/src/main/scala-3/play/api/libs/json/JsMacroImpl.scala:88:4
135[warn] 88 | new Reads[A] { self =>
136[warn] | ^
137[warn] | New anonymous class definition will be duplicated at each inline site
138[warn] |
139[warn] | longer explanation available when compiling with `-explain`
140[warn] -- [E197] Potential Issue Warning: /build/repo/play-json/shared/src/main/scala-3/play/api/libs/json/JsMacroImpl.scala:448:4
141[warn] 448 | new OWrites[A] { self =>
142[warn] | ^
143[warn] | New anonymous class definition will be duplicated at each inline site
144[warn] |
145[warn] | longer explanation available when compiling with `-explain`
146[warn] -- [E029] Pattern Match Exhaustivity Warning: /build/repo/play-json/shared/src/main/scala-3/play/api/libs/json/JsMacroImpl.scala:722:14
147[warn] 722 | case WritableField(param, i, optType @ OptionTypeParameter(pt)) =>
148[warn] | ^
149[warn] | match may not be exhaustive.
150[warn] |
151[warn] | It would fail on pattern case: WritableField(_, _, _)
152[warn] |
153[warn] | longer explanation available when compiling with `-explain`
154[warn] there were 17 deprecation warnings; re-run with -deprecation for details
155[warn] four warnings found
156[info] done compiling
157[info] compiling 31 Scala sources to /build/repo/play-json/jvm/target/scala-3.8.1-RC1/test-classes ...
158[warn] -- Warning: /build/repo/play-json/shared/src/test/scala/play/api/libs/json/MacroSpec.scala:107:62
159[warn] 107 | implicit val familyReads: Reads[Family] = Json.reads[Family]
160[warn] | ^^^^^^^^^^^^^^^^^^
161[warn] |Generic type play.api.libs.json.MacroSpec.Lorem[T] is not supported as member of sealed family play.api.libs.json.MacroSpec.Family.
162[warn] -- Warning: /build/repo/play-json/shared/src/test/scala/play/api/libs/json/MacroSpec.scala:206:62
163[warn] 206 | implicit val familyWrites: OWrites[Family] = Json.writes[Family]
164[warn] | ^^^^^^^^^^^^^^^^^^^
165[warn] |Generic type play.api.libs.json.MacroSpec.Lorem[T] is not supported as a member of sealed family play.api.libs.json.MacroSpec.Family
166[warn] -- Warning: /build/repo/play-json/shared/src/test/scala/play/api/libs/json/MacroSpec.scala:383:66
167[warn] 383 | implicit val familyFormat: OFormat[Family] = Json.format[Family]
168[warn] | ^^^^^^^^^^^^^^^^^^^
169[warn] |Generic type play.api.libs.json.MacroSpec.Lorem[T] is not supported as member of sealed family play.api.libs.json.MacroSpec.Family.
170[warn] -- Warning: /build/repo/play-json/shared/src/test/scala/play/api/libs/json/MacroSpec.scala:415:66
171[warn] 415 | implicit val familyFormat: OFormat[Family] = Json.format[Family]
172[warn] | ^^^^^^^^^^^^^^^^^^^
173[warn] |Generic type play.api.libs.json.MacroSpec.Lorem[T] is not supported as member of sealed family play.api.libs.json.MacroSpec.Family.
174[warn] -- Warning: /build/repo/play-json/shared/src/test/scala/play/api/libs/json/MacroSpec.scala:454:65
175[warn] 454 | implicit val familyFormat: OFormat[Family] = Json.format[Family]
176[warn] | ^^^^^^^^^^^^^^^^^^^
177[warn] |Generic type play.api.libs.json.MacroSpec.Lorem[T] is not supported as member of sealed family play.api.libs.json.MacroSpec.Family.
178[warn] -- Warning: /build/repo/play-json/shared/src/test/scala/play/api/libs/json/MacroSpec.scala:595:60
179[warn] 595 | implicit val familyWrites: OWrites[Family] = Json.writes[Family] // Failing:
180[warn] | ^^^^^^^^^^^^^^^^^^^
181[warn] |Generic type play.api.libs.json.MacroSpec.Lorem[T] is not supported as a member of sealed family play.api.libs.json.MacroSpec.Family
182[warn] -- Warning: /build/repo/play-json/shared/src/test/scala/play/api/libs/json/MacroSpec.scala:607:76
183[warn] 607 | implicit val idReads: Reads[Id] = implicitly[Reads[String]].asInstanceOf[Reads[Id]]
184[warn] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
185[warn] | Infinite loop in function body
186[warn] | implicitly[play.api.libs.json.Reads[String]](
187[warn] | play.api.libs.json.MacroSpec.Foo.idReads).asInstanceOf[
188[warn] | play.api.libs.json.Reads[play.api.libs.json.MacroSpec.Foo.Id]]
189[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/docs/manual/working/scalaGuide/main/json/code/ScalaJsonCombinatorsSpec.scala:443:46
190[warn] 443 | userResult.must(beLike { case JsSuccess(u: User, _) => u.name === "Fiver" })
191[warn] | ^
192[warn] |the type test for User cannot be checked at runtime because it's a local class
193[warn] |
194[warn] | longer explanation available when compiling with `-explain`
195[warn] there were 6 deprecation warnings; re-run with -deprecation for details
196[warn] 9 warnings found
197[warn] there were 6 deprecation warnings; re-run with -deprecation for details
198[warn] 10 warnings found
199[info] done compiling
200[warn] javaOptions will be ignored, fork is set to false
201[info] FormatSharedSpec:
202[info] Format
203[info] - should be bimap'ed (86 milliseconds)
204[info] OFormat
205[info] - should be bimap'ed (22 milliseconds)
206[info] MacroScala3Spec:
207[info] Case class
208[info] should not be handled
209[info] - when no custom ProductOf (15 milliseconds)
210[info] should be handled
211[info] - when is declared with more than 22 fields (62 milliseconds)
212[info] JsonRichSpec:
213[info] JSON
214[info] - should create json with rich syntax (10 milliseconds)
215[info] QuotesSpec:
216[info] Product
217[info] should be inspected for elements
218[info] - when Foo (1 millisecond)
219[info] - when generic Bar *** FAILED *** (23 milliseconds)
220[info] List("(val name,List(),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class scala)),object Predef),type String))", "(val opt,List(),AppliedType(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Option),List(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Int))))", "(val scores,List(),AppliedType(TypeRef(TermRef(TermRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),object collection),object immutable),trait Seq),List(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Double))))") did not equal List("(val name,List(),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class scala)),object Predef),type String))", "(val opt,List(),AppliedType(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Option),List(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Int))))", "(val scores,List(),AppliedType(TypeRef(ThisType(TypeRef(NoPrefix,module class immutable)),trait Seq),List(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Double))))") (QuotesSpec.scala:27)
221[info] Analysis:
222[info] List(2: "(val scores,List(),AppliedType(TypeRef(TermRef(TermRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),object collection),object immutable),trait Seq),List(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Double))))" -> "(val scores,List(),AppliedType(TypeRef(ThisType(TypeRef(NoPrefix,module class immutable)),trait Seq),List(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Double))))")
223[info] when of non-case class
224[info] - when there is no ProductOf (3 milliseconds)
225[info] - when it's defined a ill-typed ProductOf (0 milliseconds)
226[info] when it's defined a well-typed ProductOf
227[info] - when by import *** FAILED *** (2 milliseconds)
228[info] List() did not equal List("(val name,List(),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class scala)),object Predef),type String))", "(val age,List(),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Int))") (QuotesSpec.scala:57)
229[info] Analysis:
230[info] Nil$(0: -> "(val name,List(),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class scala)),object Predef),type String))", 1: -> "(val age,List(),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Int))")
231[info] - when by local val *** FAILED *** (1 millisecond)
232[info] List() did not equal List("(val name,List(),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class scala)),object Predef),type String))", "(val age,List(),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Int))") (QuotesSpec.scala:63)
233[info] Analysis:
234[info] Nil$(0: -> "(val name,List(),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class scala)),object Predef),type String))", 1: -> "(val age,List(),TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Int))")
235[info] should be created
236[info] - when from Foo (2 milliseconds)
237[info] - when from generic Bar (2 milliseconds)
238[info] - when from BigFat (4 milliseconds)
239[info] when from non-case class
240[info] - when fail when there is no Conversion[T, _ <: Product] (1 millisecond)
241[info] - when fail when Conversion[T, _ <: Product] defined without ProductOf (3 milliseconds)
242[info] - when be successful when conversion is provided (1 millisecond)
243[info] should be transformed
244[info] - when Foo (0 milliseconds)
245[info] - when generic Bar (0 milliseconds)
246[info] - when BigFat (1 millisecond)
247[info] Direct known subtypes
248[info] - should be resolved for sealed trait (1 millisecond)
249[info] JsonValidSharedSpec:
250[info] JSON reads
251[info] - should validate simple types (190 milliseconds)
252[info] - should invalidate wrong simple type conversion (9 milliseconds)
253[info] - should validate simple numbered type conversion (0 milliseconds)
254[info] - should return JsResult with correct values for isSuccess and isError (1 millisecond)
255[info] - should validate JsObject to Map (4 milliseconds)
256[info] - should invalidate JsObject to Map with wrong type conversion (4 milliseconds)
257[info] - should validate JsObject to Map with custom key type (25 milliseconds)
258[info] - should validate JsArray to List (11 milliseconds)
259[info] - should invalidate JsArray to List with wrong type conversion (5 milliseconds)
260[info] - should validate JsArray of stream to List (0 milliseconds)
261[info] - should invalidate JsArray of stream to List with wrong type conversion (0 milliseconds)
262[info] should validate UUID
263[info] - when there is a correct UUID (4 milliseconds)
264[info] - when reject malformed UUIDs (1 millisecond)
265[info] - when reject well-formed but incorrect UUIDS in strict mode (0 milliseconds)
266[info] - should validate Enums (41 milliseconds)
267[info] - should read fields with null values (2 milliseconds)
268[info] - should validate options using validateOpt (7 milliseconds)
269[info] JSON JsResult
270[info] - should recover from error (3 milliseconds)
271[info] JSON case class/tuple validation
272[info] - should validate simple reads (1 millisecond)
273[info] should validate reads on the root path
274[info] - when reads (15 milliseconds)
275[info] - when readNullables (1 millisecond)
276[info] - when readNullables for missing root path fragment (8 milliseconds)
277[info] - when readNullables for badly formed root path (0 milliseconds)
278[info] - when readNullables for null root path (0 milliseconds)
279[info] - should validate simple constraints (2 milliseconds)
280[info] - should test JsPath.create (3 milliseconds)
281[info] - should validate simple case class reads/writes (16 milliseconds)
282[info] - should validate simple case class format with custom apply/unapply (2 milliseconds)
283[info] - should validate simple case class format (2 milliseconds)
284[info] - should JsObject tupled reads (0 milliseconds)
285[info] - should JsObject tupled reads new syntax (3 milliseconds)
286[info] - should JsObject tupled writes (2 milliseconds)
287[info] - should JsObject tupled format (2 milliseconds)
288[info] - should Format simpler syntax without constraints (2 milliseconds)
289[info] - should Format simpler syntax with constraints (3 milliseconds)
290[info] - should Compose reads (7 milliseconds)
291[info] - should Apply min/max correctly on ordered types (2 milliseconds)
292[info] JSON generators
293[info] - should Build JSON from JSON Reads (9 milliseconds)
294[info] JSON Reads
295[info] - should report correct path for validation errors (5 milliseconds)
296[info] - should mix reads constraints (5 milliseconds)
297[info] - should recursive reads (2 milliseconds)
298[info] - should recursive writes (2 milliseconds)
299[info] - should recursive formats (3 milliseconds)
300[info] - should lots of fields to read (7 milliseconds)
301[info] - should single field case class (3 milliseconds)
302[info] - should reduce Reads[JsObject] (1 millisecond)
303[info] - should reduce Reads[JsArray] (6 milliseconds)
304[info] - should reduce Reads[JsArray] no type (2 milliseconds)
305[info] - should serialize JsError to json (5 milliseconds)
306[info] - should prune json (1 millisecond)
307[info] JSON Writes
308[info] - should manage option (3 milliseconds)
309[info] - should join (4 milliseconds)
310[info] JSON Format
311[info] - should manage option (3 milliseconds)
312[info] JsResult
313[info] - should be usable in for-comprehensions (2 milliseconds)
314[info] should be a functor
315[info] - when JsSuccess (2 milliseconds)
316[info] - when JsError (1 millisecond)
317[info] - should have filtering methods that allow users to customize the error (1 millisecond)
318[info] MacroSpec:
319[info] Reads
320[info] - should be generated for simple case class (274 milliseconds)
321[info] - should as Format for a simple generic case class (7 milliseconds)
322[info] - should refuse value other than JsObject when properties are optional (17 milliseconds)
323[info] - should ignore Option alias (25 milliseconds)
324[info] should be generated for a sealed family
325[info] - when using the _value syntax (6 milliseconds)
326[info] - when using the compact syntax (7 milliseconds)
327[info] Writes
328[info] - should be generated for simple case class (6 milliseconds)
329[info] - should as Format for a generic case class (2 milliseconds)
330[info] - should ignore Option alias (9 milliseconds)
331[info] - should be generated for a sealed family (11 milliseconds)
332[info] Macro
333[info] should handle case class with self type as nested type parameter
334[info] - when to generate Reads (8 milliseconds)
335[info] - when to generate Writes (5 milliseconds)
336[info] - when to generate Format (4 milliseconds)
337[info] should handle generic case class with multiple generic parameters
338[info] - when to generate Reads (1 millisecond)
339[info] - when to generate Writes (4 milliseconds)
340[info] - when to generate Format (2 milliseconds)
341[info] should handle generic case class with multiple generic parameters and self references
342[info] - when to generate Reads (6 milliseconds)
343[info] - when to generate Writes (3 milliseconds)
344[info] - when to generate Format (9 milliseconds)
345[info] - should handle sealed family (9 milliseconds)
346[info] - should handle sealed family with custom discriminator name (17 milliseconds)
347[info] - should handle sealed family with typeNaming (24 milliseconds)
348[info] - should handle case objects as empty JsObject (5 milliseconds)
349[info] - should handle refinement type as case class field (30 milliseconds)
350[info] - should handle nesting class (13 milliseconds)
351[info] - should handle case class with generic type and default field (8 milliseconds)
352[info] - should handle case class with generic type and overridden default field (3 milliseconds)
353[info] - should field ordering (9 milliseconds)
354[info] WritesSpec
355[info] ScalaJsonAutomatedSpec
356[info] JsResultSpec:
357[info] JSON Result
358[info] - should be functor (5 milliseconds)
359[info] - should be converted to Success (1 millisecond)
360[info] - should be converted to basic Failure (2 milliseconds)
361[info] - should be created from a Success (0 milliseconds)
362[info] - should be created from a Failure (0 milliseconds)
363[info] JsSuccess
364[info] - should be recovered (6 milliseconds)
365[info] JsError
366[info] - should be recovered (1 millisecond)
367[info] JsResult
368[info] - should return true for JsSuccess(x)#contains(x) (1 millisecond)
369[info] - should return false for JsSuccess(x)#contains(y) (0 milliseconds)
370[info] - should return false for JsError(_)#contains(_) (2 milliseconds)
371[info] - should return true for JsSuccess(x)#exists(p) if p(x) == true (1 millisecond)
372[info] - should return false for JsSuccess(x)#exists(p) if p(x) == false (1 millisecond)
373[info] - should return false for JsError(_).exists(_) (1 millisecond)
374[info] JsSuccess#forall
375[info] - should return true for JsSuccess(x * 2).forall(_ % 2 == 0) (7 milliseconds)
376[info] - should return false for JsSuccess(x, {x < 0}).forall(_ >) (0 milliseconds)
377[info] JsError#forall
378[info] - should return true (7 milliseconds)
379[info] Scala JSON automated should
380[info] Local date/time should
381[info] for case class
382[info] JsObjectSerializationSpec
383[info] + produce a Reads (364 ms)
384[info] + be written as number (246 ms)
385[info] JsObject should
386[info] + be written with default implicit as '2011-12-03T10:15:30' (247 ms)
387[info] + do the same thing as a manual Reads (355 ms)
388[info] + produce a Writes (355 ms)
389[info] + be written with custom pattern as '03/12/2011, 10:15:30' (248 ms)
390[info] + produce a Format (358 ms)
391[info] + serialize/deserialize correctly (126 ms)
392[info] + produce a Writes with SnakeCase (8 ms)
393[info] Offset date/time should
394[info] + produce a Format with SnakeCase (16 ms)
395[info] Total for specification JsObjectSerializationSpec
396[info] Finished in 145 ms
397[info] 1 example, 0 failure, 0 error
398[info] + produce a Reads with SnakeCase (6 ms)
399[info] + produce a Format with Custom Naming (14 ms)
400[info] WritesSharedSpec:
401[info] Functional Writes
402[info] - should be successful for the simple case class Location (1 millisecond)
403[info] + automatically serialize a case class to JSON (5 ms)
404[info] - should be contramap'ed (1 millisecond)
405[info] should be narrow'ed
406[info] - when simple JSON value (0 milliseconds)
407[info] - when JSON object (4 milliseconds)
408[info] Traversable Writes
409[info] - should write Seqs (0 milliseconds)
410[info] + automatically convert JSON to a case class (2 ms)
411[info] - should write SortedSets (14 milliseconds)
412[info] + be written with default implicit as '2011-12-03T10:15:30-01:30' (248 ms)
413[info] - should write mutable SortedSets (9 milliseconds)
414[info] Map Writes
415[info] - should write lazy maps (2 milliseconds)
416[info] - should write a map nested in a seq (0 milliseconds)
417[info] Iterable writes
418[info] + be written with custom pattern as '03/12/2011, 10:15:30 (-01:30)' (7 ms)
419[info] - should write maps (1 millisecond)
420[info] Big integer Writes
421[info] - should write as JsNumber (5 milliseconds)
422[info] EnumFormat
423[info] + automatically convert JSON for a sealed family (17 ms)
424[info] - should serialize correctly enum with custom names (0 milliseconds)
425[info] URI
426[info] - should be written as string (1 millisecond)
427[info] Tuples
428[info] should be written with custom field names
429[info] - when tuple2 (1 millisecond)
430[info] - when tuple3 (0 milliseconds)
431[info] - when tuple4 (0 milliseconds)
432[info] Identity writes
433[info] - should be resolved as Writes[JsArray] for ["foo",2] (0 milliseconds)
434[info] - should be resolved as Writes[JsValue] for ["foo",2] (1 millisecond)
435[info] - should be resolved as Writes[JsBoolean] for true (0 milliseconds)
436[info] + automatically convert custom JSON for a sealed family (20 ms)
437[info] - should be resolved as Writes[JsValue] for false (0 milliseconds)
438[info] - should be resolved as Writes[JsNull$] for null (0 milliseconds)
439[info] - should be resolved as Writes[JsValue] for null (1 millisecond)
440[info] - should be resolved as Writes[JsNumber] for 1 (0 milliseconds)
441[info] - should be resolved as Writes[JsValue] for 1 (0 milliseconds)
442[info] - should be resolved as Writes[JsObject] for {"foo":1} (0 milliseconds)
443[info] + produce a json object with nulls (3 ms)
444[info] Zoned date/time should
445[info] - should be resolved as Writes[JsValue] for {"foo":1} (0 milliseconds)
446[info] - should be resolved as OWrites[JsObject] for {"foo":1} (0 milliseconds)
447[info] - should be resolved as Writes[JsString] for "foo" (0 milliseconds)
448[info] - should be resolved as Writes[JsValue] for "foo" (0 milliseconds)
449[info] + be written as number (4 ms)
450[info] Total for specification ScalaJsonAutomatedSpec
451[info] Finished in 466 ms
452[info] 13 examples, 0 failure, 0 error
453[info] + be written with default implicit as '2011-12-03T10:15:30+01:00[Europe/Paris]' (13 ms)
454[info] JsObjectSpec:
455[info] JsObject.deepMerge
456[info] - should not fail when the objects are empty (4 milliseconds)
457[info] - should merge correctly when the source object is empty (4 milliseconds)
458[info] - should merge correctly when the incoming object is empty (1 millisecond)
459[info] JsObject.deepMerge should keep existing attributes where there is no collision and
460[info] - should overwrite existing attributes on collision when value is not a JsArray or JsObject (0 milliseconds)
461[info] - should recursively merge where elements are both of type JsArray or both of type JsObject (1 millisecond)
462[info] - should properly merge a deep structure (3 milliseconds)
463[info] JsObject.++
464[info] - should preserve order of fields (1 millisecond)
465[info] JsObject.+
466[info] - should preserve order of fields (1 millisecond)
467[info] JsObject.-
468[info] - should preserve order of fields (0 milliseconds)
469[info] JsObject
470[info] - should accept null fields when calling Json.obj (0 milliseconds)
471[info] - should accept null fields when calling Json.arr (1 millisecond)
472[info] JsonExtensionSpec:
473[info] JsonExtension
474[info] - should create a reads[User] (15 milliseconds)
475[info] - should create a writes[User] (1 millisecond)
476[info] - should create a format[User] (7 milliseconds)
477[info] - should create a reads[Dog] (7 milliseconds)
478[info] - should create a writes[Dog] (4 milliseconds)
479[info] - should create a format[Dog] (6 milliseconds)
480[info] + be written with default implicit as '2011-12-03T10:15:30+06:30' (9 ms)
481[info] - should create a reads[RecUser] (10 milliseconds)
482[info] + be written with custom pattern as '03/12/2011, 10:15:30' (5 ms)
483[info] - should create a writes[RecUser] (9 milliseconds)
484[info] - should create a format[RecUser] (7 milliseconds)
485[info] Local date should
486[info] + be written as number (1 ms)
487[info] - should create a reads[User1] (7 milliseconds)
488[info] - should create a writes[User1] (3 milliseconds)
489[info] + be written with default implicit as '2011-12-03' (3 ms)
490[info] - should create a format[User1] (6 milliseconds)
491[info] - should create a format[WrappedGenericInt] (7 milliseconds)
492# WARNING: Unable to get Instrumentation. Dynamic Attach failed. You may add this JAR as -javaagent manually, or supply -Djdk.attach.allowAttachSelf
493[info] - should create a format[WrappedGenericIntString] (10 milliseconds)
494[info] should VarArgsOnly reads, writes, format
495[info] - should formats should be able to read and write (3 milliseconds)
496[info] - should reads should be able to read valid Json and ignore invalid Json (1 millisecond)
497[info] - should writes should be able to spit out valid json (0 milliseconds)
498[info] should LastVarArg reads, writes, format
499[info] - should formats should be able to read and write (1 millisecond)
500[info] - should reads should be able to read valid Json and ignore invalid Json (3 milliseconds)
501[info] - should writes should be able to spit out valid json (0 milliseconds)
502[info] + be written with custom pattern as '03/12/2011' (1 ms)
503[info] - should manage Map[String, User] (2 milliseconds)
504[info] - should manage Boxed class (3 milliseconds)
505[info] - should test 21 fields (13 milliseconds)
506[info] - should test inception with overridden object (1 millisecond)
507[info] - should test case class 1 field (3 milliseconds)
508[info] Local time should
509[info] - should test case class 1 field option (2 milliseconds)
510[info] - should test case class 1 field list (3 milliseconds)
511[info] - should test case class 1 field set (3 milliseconds)
512[info] + be written as number (1 ms)
513[info] - should test case class 1 field map (4 milliseconds)
514[info] - should test case class 1 field seq[Dog] (17 milliseconds)
515[info] + be written with default implicit as '10:15:30' (1 ms)
516[info] - should test case reads in companion object (12 milliseconds)
517[info] + be written with custom pattern as '10.15.30' (1 ms)
518[info] - should test case single-field in companion object (17 milliseconds)
519[info] - should test hygiene (11 milliseconds)
520[info] Instant should
521[info] - should create a format[CustomApply] (5 milliseconds)
522[info] - should create a writes[UserProfile] with SnakeCase (16 milliseconds)
523[info] - should create a reads[UserProfile] with SnakeCase (3 milliseconds)
524[info] + be written as number (1 ms)
525[info] + be written with default implicit as '2011-12-03T10:15:30Z' (1 ms)
526[info] - should create a format[UserProfile] with SnakeCase (12 milliseconds)
527[info] - should create a writes[UserProfile] with PascalCase (5 milliseconds)
528[info] + be written with custom pattern as '03/12/2011, 10:15:30' (1 ms)
529[info] - should create a reads[UserProfile] with PascalCase (2 milliseconds)
530[info] - should create a format[UserProfile] with PascalCase (6 milliseconds)
531[info] - should create a writes[UserProfile] with CustomNaming (1 millisecond)
532[info] - should create a reads[UserProfile] with CustomNaming (5 milliseconds)
533[info] ZoneId should
534[info] - should create a format[UserProfile] with CustomNaming (9 milliseconds)
535[info] + be written as time zone string America/Los_Angeles (1 ms)
536[info] - should create a stacked format[UserProfile] with SnakeCase (12 milliseconds)
537[info] - should create a Writes[Optional] with optionHandlers=WritesNull (6 milliseconds)
538[info] - should create a Format[Optional] with optionHandlers=WritesNull (2 milliseconds)
539[info] + be written as time zone string UTC (1 ms)
540[info] JsonMemoryFootprintSpec:
541[info] + be written as time zone string CET (1 ms)
542[info] Json.parse
543[info] + be written as time zone string UTC-8 (0 ms)
544[info] OWrites should
545[info] + be transformed with JsObject function (2 ms)
546[info] + be transformed with a value transformation (6 ms)
547[info] + be transformed with an object transformation (1 ms)
548# WARNING: Unable to attach Serviceability Agent. Unable to attach even with module exceptions: [org.openjdk.jol.vm.sa.SASupportException: Sense failed., org.openjdk.jol.vm.sa.SASupportException: Sense failed., org.openjdk.jol.vm.sa.SASupportException: Sense failed.]
549[info] + be transformed with another OWrites (1 ms)
550[info] Locale should
551[info] + be fr-FR and be written as JSON object (1 ms)
552[info] + be fr-CA and be written as JSON object (3 ms)
553[info] + be fr and be written as JSON object (2 ms)
554[info] - obj0 (569 milliseconds)
555[info] + be fr-Latn-FR-polyton-a-foo-b-bar-u-bar-foo-ka-ipsum-kb-value and be written as JSON object (20 ms)
556[info] + be fr-FR and be written as JSON string (tag) (17 ms)
557[info] - obj1 (33 milliseconds)
558[info] + be fr-CA and be written as JSON string (tag) (17 ms)
559[info] + be fr and be written as JSON string (tag) (0 ms)
560[info] + be fr-Latn-FR-polyton-a-foo-b-bar-u-bar-foo-ka-ipsum-kb-value and be written as JSON string (tag) (4 ms)
561[info] Java Duration should
562[info] - obj4 (41 milliseconds)
563[info] + be written as milliseconds (5 ms)
564[info] - arr0 (7 milliseconds)
565[info] - arr1 (3 milliseconds)
566[info] - arr4 (3 milliseconds)
567[info] - num0 (6 milliseconds)
568[info] - num0.1 (4 milliseconds)
569[info] + be written as ISO string (16 ms)
570[info] - num0.5 (5 milliseconds)
571[info] - numLongMax (5 milliseconds)
572[info] Java Period should
573[info] - numDoubleMax (11 milliseconds)
574[info] - true (1 millisecond)
575[info] - false (1 millisecond)
576[info] + be written as ISO string 'P2D' (1 ms)
577[info] - null (0 milliseconds)
578[info] JsObject
579[info] + be written as ISO string 'P19D' (0 ms)
580[info] + be written as ISO string 'P4M19D' (1 ms)
581[info] - obj0 ++ obj0 (2 milliseconds)
582[info] - obj0 ++ obj1 (66 milliseconds)
583[info] Map should
584[info] - obj1 ++ obj0 (9 milliseconds)
585[info] + be successfully written with custom (locale) keys (1 ms)
586[info] - obj1.value (9 milliseconds)
587[info] malicious
588[info] Total for specification WritesSpec
589[info] Finished in 1 second, 383 ms
590[info] 40 examples, 0 failure, 0 error
591[info] JsonValidSpec
592[info] JSON reads should
593[info] + validate Dates (12 ms)
594[info] ScalaJsonCombinatorsSpec
595[info] + verifyingIf reads (28 ms)
596[info] Scala JSON should
597[info] + validate JsObject to Map without loosing precision (4 ms)
598[info] - obj0 (146 milliseconds)
599[info] Total for specification JsonValidSpec
600[info] Finished in 97 ms
601[info] 3 examples, 0 failure, 0 error
602[info] + allow using JsPath (72 ms)
603[info] + allow creating simple Reads (8 ms)
604[info] + allow creating complex Reads (18 ms)
605[info] + allow creating complex Reads in a single statement (17 ms)
606[info] + allow mapping Reads using usual combinators (16 ms)
607[info] + allow filtering Reads results with combinators (15 ms)
608[info] + allow pre-processing Reads with combinators (4 ms)
609Name: Watership Down
610[info] + allow mapping Reads with convenience combinators (2 ms)
611[info] + allow validation with Reads (16 ms)
612[info] + allow creating Reads for model (6 ms)
613[info] ScalaJsonSpec
614[info] + allow creating Writes for model (16 ms)
615[info] + allow transforming values with Writes (21 ms)
616[info] Scala JSON should
617[info] + allow creating Reads/Writes for recursive types (20 ms)
618[info] + parse json (6 ms)
619[info] + allow creating Format from components (3 ms)
620[info] + allow constructing json using case classes (6 ms)
621[info] + allow creating Format from combinators (13 ms)
622[info] + allow constructing json using factory methods (3 ms)
623[info] + allow functional combinators on Format (10 ms)
624[info] Total for specification ScalaJsonCombinatorsSpec
625[info] Finished in 306 ms
626[info] 16 examples, 0 failure, 0 error
627[info] + allow constructing json using builder (3 ms)
628[info] + allow converting simple types (2 ms)
629[info] + allow converting of models (9 ms)
630[info] + allow converting models preferred (9 ms)
631Name: Watership Down
632[info] + allow traversing JsValue tree (19 ms)
633[info] + allow converting JsValue to String (10 ms)
634[info] + allow converting JsValue using as (6 ms)
635[info] + allow converting JsValue using asOpt (6 ms)
636[info] + allow converting JsValue using validate (11 ms)
637[info] + allow converting JsValue to model (7 ms)
638[info] + handle simple tuples (6 ms)
639[info] Total for specification ScalaJsonSpec
640[info] Finished in 204 ms
641[info] 14 examples, 0 failure, 0 error
642[info] - obj1 (572 milliseconds)
643[info] - nums (360 milliseconds)
644[info] - arr0 (48 milliseconds)
645[info] - arr1 (157 milliseconds)
646[info] JsonSharedSpec:
647[info] JSON
648[info] - should equals JsObject independently of field order (36 milliseconds)
649[info] - should support basic array operations (14 milliseconds)
650[info] - should serialize and deserialize maps properly (13 milliseconds)
651[info] - should serialize and deserialize (14 milliseconds)
652[info] - should convert to a json object (11 milliseconds)
653[info] - should create object using builder (1 millisecond)
654[info] - should convert to a byte array containing the UTF-8 representation (19 milliseconds)
655[info] Complete JSON should create full object
656[info] - when serialize long integers correctly (2 milliseconds)
657[info] - when serialize short integers correctly (7 milliseconds)
658[info] - when serialize bytes correctly (7 milliseconds)
659[info] - when serialize and deserialize BigDecimals (6 milliseconds)
660[info] - when write BigDecimals with large exponents in scientific notation (1 millisecond)
661[info] - when write negative BigDecimals with large exponents in scientific notation (1 millisecond)
662[info] - when write BigDecimals with large negative exponents in scientific notation (2 milliseconds)
663[info] - when write BigDecimals with small exponents as a plain string (2 milliseconds)
664[info] - when write BigDecimals with small negative exponents as a plain string (2 milliseconds)
665[info] - when write BigDecimals with integer base (1 millisecond)
666[info] - when serialize and deserialize Lists (5 milliseconds)
667[info] - when Map[String,String] should be turned into JsValue (12 milliseconds)
668[info] - when can parse recursive object (15 milliseconds)
669[info] - when can parse null values in Object (2 milliseconds)
670[info] - when can parse null values in Array (3 milliseconds)
671[info] - when null root object should be parsed as JsNull (2 milliseconds)
672[info] - when JSON pretty print (7 milliseconds)
673[info] - when asciiStringify should escape non-ascii characters (5 milliseconds)
674[info] - when asciiStringify should escape ascii characters properly (1 millisecond)
675[info] JSON Writes
676[info] - should write list/seq/set/map (7 milliseconds)
677[info] - should write in 2nd level (17 milliseconds)
678[info] - should preserve field ordering (5 milliseconds)
679[info] ReadsSharedSpec:
680[info] Reads
681[info] should not repath the second result on flatMap
682[info] - when in case of success (1 millisecond)
683[info] - when in case of failure (1 millisecond)
684[info] - should widen (2 milliseconds)
685[info] - should be failed (1 millisecond)
686[info] Map
687[info] - should be successfully read with string keys (1 millisecond)
688[info] should be read with character keys which
689[info] - are characters (0 milliseconds)
690[info] - are not characters (1 millisecond)
691[info] should be read with boolean keys which
692[info] - are booleans (0 milliseconds)
693[info] - are not booleans (0 milliseconds)
694[info] - should be read with byte keys (0 milliseconds)
695[info] - should be read with short keys (0 milliseconds)
696[info] - should be read with int keys (1 millisecond)
697[info] - should be read with long keys (0 milliseconds)
698[info] - should be read with float keys (0 milliseconds)
699[info] - should be read with double keys (0 milliseconds)
700[info] - should be read with Reads'able keys (1 millisecond)
701[info] Compose
702[info] - should preprocess a JSON object using a Reads (3 milliseconds)
703[info] - should preprocess a JSON object using a function (2 milliseconds)
704[info] Reads result
705[info] - should be flat-mapped (0 milliseconds)
706[info] Functional Reads
707[info] - should be successful for simple case class Owner (0 milliseconds)
708[info] BigDecimal Reads
709[info] - should be successful for JsString("123") (0 milliseconds)
710[info] - should be successful for JsString("23") (1 millisecond)
711[info] - should be successful for JsString("1.23") (0 milliseconds)
712[info] - should be successful for JsString("1E+1") (0 milliseconds)
713[info] - should fail for '1..0' (5 milliseconds)
714[info] - should fail for 'A' (0 milliseconds)
715[info] BigInteger Reads
716[info] - should be successful for JsString("123") (1 millisecond)
717[info] - should be successful for JsNumber(123) (0 milliseconds)
718[info] - should be successful for JsString("23") (0 milliseconds)
719[info] - should be successful for JsNumber(23) (0 milliseconds)
720[info] - should fails for '1.0' (8 milliseconds)
721[info] - should fails for 'A' (0 milliseconds)
722[info] EnumFormat
723[info] - should deserialize correctly enum with custom names (1 millisecond)
724[info] URI
725[info] - should be read from JsString (0 milliseconds)
726[info] - should not be read from invalid JsString (67 milliseconds)
727[info] Tuple
728[info] should be read with custom element names
729[info] - when tuple2 (1 millisecond)
730[info] - when tuple3 (5 milliseconds)
731[info] - when tuple4 (4 milliseconds)
732[info] Identity reads
733[info] - should be resolved for ["foo",2] as JsArray (0 milliseconds)
734[info] - should be resolved for ["foo",2] as JsValue (0 milliseconds)
735[info] - should be resolved for false as JsBoolean (0 milliseconds)
736[info] - should be resolved for true as JsValue (4 milliseconds)
737[info] - should be resolved for null as JsNull$ (1 millisecond)
738[info] - should be resolved for null as JsValue (0 milliseconds)
739[info] - should be resolved for 1 as JsNumber (0 milliseconds)
740[info] - should be resolved for 1 as JsValue (0 milliseconds)
741[info] - should be resolved for {"foo":1} as JsObject (0 milliseconds)
742[info] - should be resolved for {"foo":1} as JsValue (0 milliseconds)
743[info] - should be resolved for "foo" as JsString (0 milliseconds)
744[info] - should be resolved for "foo" as JsValue (0 milliseconds)
745[info] JsPathSpec:
746[info] JsPath
747[info] - should retrieve simple path (1 millisecond)
748[info] - should retrieve path with array index (9 milliseconds)
749[info] - should retrieve 1-level recursive path (1 millisecond)
750[info] - should retrieve 2-level recursive path (0 milliseconds)
751[info] - should retrieve 2-level middle recursive path (1 millisecond)
752[info] - should retrieve simple indexed path (0 milliseconds)
753[info] - should retrieve 2-level recursive indexed path #1 (1 millisecond)
754[info] - should retrieve 2-level recursive indexed path #2 (1 millisecond)
755[info] - should retrieve recursive in jsobject and jsarray #1 (0 milliseconds)
756[info] - should retrieve recursive in jsobject and jsarray #2 (3 milliseconds)
757[info] - should retrieve with symbol keys (0 milliseconds)
758[info] - should prune field from 1-level JsObject (1 millisecond)
759[info] - should get JsPath till last node (0 milliseconds)
760[info] - should read deep nullable nested fields (12 milliseconds)
761[info] JsonTransSpec:
762[info] JSON transformers
763[info] - should pick a value at a path (0 milliseconds)
764[info] - should pick a branch (0 milliseconds)
765[info] - should copy input JSON and update a branch (merge the updated branch with input JSON) (0 milliseconds)
766[info] - should pick a branch and update its content (0 milliseconds)
767[info] - should put a value in a new branch (don't keep passed json) (0 milliseconds)
768[info] - should create a new path by copying a branch (1 millisecond)
769[info] - should copy full json and prune a branch (0 milliseconds)
770[info] - should pick a single branch and prune a sub-branch (0 milliseconds)
771[info] - should copy the full json and update a 2nd-level path and then prune a subbranch (1 millisecond)
772[info] - should deepMerge when reducing JsObjects (0 milliseconds)
773[info] should report the correct path in the JsError
774[info] - when the field to modify doesn't exist (6 milliseconds)
775[info] - when the reader is the wrong type (1 millisecond)
776[info] TupleSpec:
777[info] Reading/Write tuples
778[info] - should work for small tuples (6 milliseconds)
779[info] - should work for large tuples (6 milliseconds)
780[info] - should work for nested tuples (4 milliseconds)
781[info] JSON Reads
782[info] Local date/time should
783[info] + be successfully read from number (1 ms)
784[info] + not be read from invalid number (1 ms)
785[info] + not be read from invalid string (2 ms)
786[info] be successfully read with default implicit
787[info] + from '2011-12-03T10:15:30' (0 ms)
788[info] + from '2011-12-03T10:15:30+01:00' (with TZ offset) (1 ms)
789[info] + from '2011-12-03T10:15:30+01:00[Europe/Paris]' (with time zone) (1 ms)
790[info] + be successfully read with custom pattern from '03/12/2011, 10:15:30' (1 ms)
791[info] not be read from invalid corrected string
792[info] JSON
793[info] Complete JSON should create full object
794[info] + with custom date format (3 ms)
795[info] with default/lenient date format should
796[info] + with default/lenient date format with millis and UTC zone (1 ms)
797[info] + with default/lenient date format with millis and ISO8601 zone (2 ms)
798[info] + with default/lenient date format with no millis and UTC zone (5 ms)
799[info] + with default implicit (1 ms)
800[info] + with default/lenient date format with no millis and ISO8601 zone (2 ms)
801[info] + with default/lenient date format with millis (1 ms)
802[info] + with custom formatter (1 ms)
803[info] + with default/lenient date format without millis or time zone (1 ms)
804[info] be successfully read from corrected string
805[info] when parsing numbers
806[info] + with default implicit (2 ms)
807[info] + with custom formatter (2 ms)
808[info] for Long should
809[info] Offset date/time should
810[info] + success for valid positive number (2 ms)
811[info] + success for valid negative number (2 ms)
812[info] not be read
813[info] + success for max value (5 ms)
814[info] + success for min value (2 ms)
815[info] + fail for positive number out of Long limits (6 ms)
816[info] + fail for negative number out of Long limits (2 ms)
817[info] for Integer should
818[info] + from an invalid string (5 ms)
819[info] + success for valid positive number (1 ms)
820[info] + from a number (2 ms)
821[info] + success for valid negative number (1 ms)
822[info] be successfully read with default implicit
823[info] + from '2011-12-03T10:15:30-05:00' (3 ms)
824[info] + fail for positive number out of Int limits (1 ms)
825[info] + be successfully read with custom pattern from '03/12/2011, 10:15:30' (3 ms)
826[info] + fail for negative number out of Int limits (2 ms)
827[info] not be read from invalid corrected string
828[info] for Float should
829[info] + success for valid positive number (3 ms)
830[info] + success for valid negative number (4 ms)
831[info] + success for max value (4 ms)
832[info] + success for min value (1 ms)
833[info] + with default implicit (2 ms)
834[info] + with custom formatter (2 ms)
835[info] for Double should
836[info] + success for valid positive number (1 ms)
837[info] be successfully read from corrected string
838[info] + success for valid negative number (1 ms)
839[info] + with default implicit (2 ms)
840[info] + with custom formatter (4 ms)
841[info] + success when parsing max value (1 ms)
842[info] + success when parsing min value (4 ms)
843[info] Zoned date/time should
844[info] for BigDecimals should
845[info] + maintain precision when parsing BigDecimals within precision limit (1 ms)
846[info] + truncate when exceeding the precision limit (2 ms)
847[info] + drop trailing zeros for non-zero decimal by default (1 ms)
848[info] + drop single trailing zero decimal by default (1 ms)
849[info] + be successfully read from number (2 ms)
850[info] + drop multiple trailing zero decimals by default (0 ms)
851[info] + drop multiple trailing zero decimals from zero value by default (1 ms)
852[info] + drop multiple trailing zero decimals from multiple of ten (1 ms)
853[info] + not be read from invalid string (2 ms)
854[info] + integer multiple of ten unchanged (3 ms)
855[info] + not be read from invalid number (4 ms)
856[info] + integer zero unchanged (6 ms)
857[info] + drop multiple trailing zeros for non-zero decimal with preserveZeroDecimal=true (1 ms)
858[info] be successfully read with default implicit
859[info] + from '2011-12-03T10:15:30+01:00' (with TZ offset) (2 ms)
860[info] + do not drop single trailing zero decimal with preserveZeroDecimal=true (1 ms)
861[info] + preserve a single trailing zero decimal with preserveZeroDecimal=true (4 ms)
862[info] + preserve a single trailing zero decimal from zero decimal with preserveZeroDecimal=true (2 ms)
863[info] + preserve a single trailing zero decimal from multiple of ten with preserveZeroDecimal=true (3 ms)
864[info] + integer multiple of ten with preserveZeroDecimal=true (3 ms)
865[info] + integer zero with preserveZeroDecimal=true (7 ms)
866[info] + success when not exceeding the scale limit for positive numbers (2 ms)
867[info] + from '2011-12-03T10:15:30+01:00[Europe/Paris]' (with time zone) (3 ms)
868[info] + success when not exceeding the scale limit for negative numbers (4 ms)
869[info] + be successfully read with custom pattern from '03/12/2011, 10:15:30+08:00' (2 ms)
870[info] + success when not exceeding the number of digits limit for negative numbers (3 ms)
871[info] not be read from invalid corrected string
872[info] + success when not exceeding the number of digits limit for positive numbers (4 ms)
873[info] + with default implicit (2 ms)
874[info] + fail when exceeding the scale limit for positive numbers (3 ms)
875[info] + with custom formatter (2 ms)
876[info] + fail when exceeding the scale limit for negative numbers (3 ms)
877[info] be successfully read from corrected string
878[info] + with default implicit (0 ms)
879[info] + fail when exceeding the number of digits limit for positive numbers (38 ms)
880[info] + with custom formatter (2 ms)
881[info] + fail when exceeding the number of digits limit for negative numbers (19 ms)
882[info] Local date should
883[info] + Optional parameters in JSON should generate post w/o date (3 ms)
884[info] + be successfully read from number (5 ms)
885[info] + Invalid parameters shoud be ignored (1 ms)
886[info] + not be read from invalid number (4 ms)
887[info] + Serialize and deserialize Jackson ObjectNodes (42 ms)
888[info] + not be read from invalid string (5 ms)
889[info] + Serialize and deserialize Jackson ArrayNodes (5 ms)
890[info] + be successfully read with default implicit from '2011-12-03' (0 ms)
891[info] + Deserialize integer JsNumber as Jackson number node (1 ms)
892[info] + be successfully read with custom pattern from '03/12/2011' (0 ms)
893[info] + Deserialize float JsNumber as Jackson number node (3 ms)
894[info] not be read from invalid corrected string
895[info] + with default implicit (16 ms)
896[info] + Serialize JsNumbers with integers correctly (18 ms)
897[info] + Serialize JsNumbers with decimal points correctly (6 ms)
898[info] + Serialize JsNumbers with e notation correctly (2 ms)
899[info] + with custom formatter (4 ms)
900[info] + parse from InputStream (9 ms)
901[info] + keep isomorphism between serialized and deserialized data (3 ms)
902[info] be successfully read from corrected string
903[info] Total for specification JSON
904[info] Finished in 610 ms
905[info] 60 examples, 82 expectations, 0 failure, 0 error
906[info] + with default implicit (3 ms)
907[info] + with custom formatter (1 ms)
908[info] Local time should
909[info] + be successfully read from number (3 ms)
910[info] + not be read from invalid number (1 ms)
911[info] + not be read from invalid string (1 ms)
912[info] + be successfully read with default implicit from '10:15:30' (1 ms)
913[info] + be successfully read with custom pattern from '10.15.30' (1 ms)
914[info] not be read from invalid corrected string
915[info] + with default implicit (2 ms)
916[info] + with custom formatter (2 ms)
917[info] be successfully read from corrected string
918[info] + with default implicit (1 ms)
919[info] + with custom formatter (1 ms)
920[info] Instant should
921[info] + be successfully read from number (1 ms)
922[info] + not be read from invalid number (3 ms)
923[info] + not be read from invalid string (5 ms)
924[info] be successfully read with default implicit
925[info] + from '2015-05-01T13:00:00Z' (with zeros) (2 ms)
926[info] + from '2011-12-03T10:15:30Z' (2 ms)
927[info] + from '2015-05-01T13:00:00+02:00' (with TZ offset and zeros) (1 ms)
928[info] + from '2011-12-03T10:15:30+01:00' (with TZ offset) (1 ms)
929[info] + from '2011-12-03T10:15:30+01:00[Europe/Paris]' (with time zone) (2 ms)
930[info] + from '2011-12-03T00:00:00+01:00[Europe/Paris]' (with time zone) (1 ms)
931[info] + be successfully read with custom pattern from '03/12/2011, 10:15:30 Z' (1 ms)
932[info] not be read from invalid corrected string
933[info] + with default implicit (2 ms)
934[info] + with custom formatter (0 ms)
935[info] be successfully read from corrected string
936[info] + with default implicit (1 ms)
937[info] + with custom formatter (1 ms)
938[info] ZoneId should
939[info] + be successfully read from America/Los_Angeles (0 ms)
940[info] + be successfully read from UTC (0 ms)
941[info] + be successfully read from CET (0 ms)
942[info] + be successfully read from UTC-8 (2 ms)
943[info] + not be read from number (1 ms)
944[info] + not be read from unknown time zone (3 ms)
945[info] + not be read from malformed time zone (2 ms)
946[info] Locale should
947[info] + be fr-FR and be read as JSON object (5 ms)
948[info] + be fr-CA and be read as JSON object (5 ms)
949[info] + be fr and be read as JSON object (5 ms)
950[info] + be fr-Latn-FR-polyton-a-foo-b-bar-u-bar-foo-ka-ipsum-kb-value and be read as JSON object (5 ms)
951[info] + be fr-FR and be read from JSON string (tag) (3 ms)
952[info] + be fr-CA and be read from JSON string (tag) (2 ms)
953[info] + be fr and be read from JSON string (tag) (2 ms)
954[info] + be fr-Latn-FR-polyton-a-foo-b-bar-u-bar-foo-ka-ipsum-kb-value and be read from JSON string (tag) (2 ms)
955[info] Java Duration should
956[info] + be parsed from "PT1S" as JsSuccess(PT1S,) (4 ms)
957[info] + be parsed from "1 seconds" as JsError(List((,List(JsonValidationError(List(error.invalid.duration),ArraySeq()))))) (4 ms)
958[info] + be parsed from "foo" as JsError(List((,List(JsonValidationError(List(error.invalid.duration),ArraySeq()))))) (4 ms)
959[info] + be parsed from 1000 as JsSuccess(PT1S,) (1 ms)
960[info] + be parsed from 1.234 as JsError(List((,List(JsonValidationError(List(error.expected.long),ArraySeq()))))) (1 ms)
961[info] Java Period should
962[info] + be parsed from "P2D" as JsSuccess(P2D,) (0 ms)
963[info] + be parsed from 2 as JsSuccess(P2D,) (1 ms)
964[info] + be parsed from "2 days" as JsError(List((,List(JsonValidationError(List(error.invalid.stringPeriod),ArraySeq()))))) (1 ms)
965[info] + be parsed from "P2W" as JsSuccess(P14D,) (1 ms)
966[info] + be parsed from "P19D" as JsSuccess(P19D,) (0 ms)
967[info] + be parsed from 19 as JsSuccess(P19D,) (0 ms)
968[info] + be parsed from "P2M19D" as JsSuccess(P2M19D,) (0 ms)
969[info] + be parsed from "foo" as JsError(List((,List(JsonValidationError(List(error.invalid.stringPeriod),ArraySeq()))))) (0 ms)
970[info] + be parsed from 1.234 as JsError(List((,List(JsonValidationError(List(error.expected.int),ArraySeq()))))) (0 ms)
971[info] + be parsed as days from '2' as P2D (1 ms)
972[info] + be parsed as days from '19' as P19D (1 ms)
973[info] + be parsed as weeks (2 ms)
974[info] + be parsed as months (0 ms)
975[info] + be parsed as years (0 ms)
976[info] Long numbers should
977[info] + parse a long number (0 ms)
978[info] + parse a negative long number (1 ms)
979[info] + not read from invalid number (2 ms)
980[info] + parse a large long number 2 (3 ms)
981[info] BigDecimal numbers should
982[info] + parse long string (2 ms)
983[info] + not parse string exceeding digit limit (3 ms)
984[info] + parse string with acceptable scale (1 ms)
985[info] + not parse string exceeding scale limit (1 ms)
986[info] BigInt numbers should
987[info] + parse long string (2 ms)
988[info] + not parse string exceeding digit limit (0 ms)
989[info] Map should
990[info] + be successfully read with custom (locale) keys (1 ms)
991[info] Total for specification JSON Reads
992[info] Finished in 1 second, 230 ms
993[info] 106 examples, 0 failure, 0 error
994
995************************
996Build summary:
997[{
998 "module": "play-json",
999 "compile": {"status": "ok", "tookMs": 19428, "warnings": 3, "errors": 0, "sourceVersion": "3.8"},
1000 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
1001 "test-compile": {"status": "ok", "tookMs": 26236, "warnings": 9, "errors": 0, "sourceVersion": "3.8"},
1002 "test": {"status": "failed", "tookMs": 20839, "passed": 589, "failed": 3, "ignored": 0, "skipped": 0, "total": 592, "byFramework": [{"framework": "specs2", "stats": {"passed": 253, "failed": 0, "ignored": 0, "skipped": 0, "total": 253}},{"framework": "unknown", "stats": {"passed": 336, "failed": 3, "ignored": 0, "skipped": 0, "total": 339}}]},
1003 "publish": {"status": "skipped", "tookMs": 0},
1004 "metadata": {
1005 "crossScalaVersions": ["2.12.20", "2.13.16", "3.3.3"]
1006}
1007}]
1008************************
1009[error] Scala3CommunityBuild$ProjectBuildFailureException: 1 module(s) finished with failures: play-json
1010[error] (Global / runBuild) Scala3CommunityBuild$ProjectBuildFailureException: 1 module(s) finished with failures: play-json
1011[error] Total time: 68 s (0:01:08.0), completed Jan 13, 2026, 8:18:00 PM
1012[0JBuild failed, not retrying.