aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala13
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")
+ }
+ }
}