diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala b/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala index 54a94edb..44ad7d1f 100644 --- a/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala +++ b/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala @@ -3,12 +3,14 @@ package firrtlTests.annotationTests import firrtl._ -import firrtl.annotations.{JsonProtocol, NoTargetAnnotation} +import firrtl.annotations.{JsonProtocol, NoTargetAnnotation, UnserializableAnnotationException} import firrtl.ir._ import firrtl.options.Dependency +import scala.util.Failure import _root_.logger.{LogLevel, LogLevelAnnotation, Logger} import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should._ +import org.scalatest.Inside._ case class AnAnnotation( info: Info, @@ -66,4 +68,13 @@ class JsonProtocolSpec extends AnyFlatSpec with Matchers { compiler.execute(CircuitState(circuit, Nil)) } } + "Trying to serialize annotations that cannot be serialized" should "tell you why" in { + case class MyAnno(x: Int) extends NoTargetAnnotation + inside(JsonProtocol.serializeTry(MyAnno(3) :: Nil)) { + case Failure(e: UnserializableAnnotationException) => + e.getMessage should include("MyAnno") + // From json4s Exception + e.getMessage should include("Classes defined in method bodies are not supported") + } + } } |
