aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala b/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala
index 6dd018eb..b2d029f5 100644
--- a/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala
+++ b/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala
@@ -3,9 +3,10 @@
package firrtlTests.annotationTests
import firrtl._
-import firrtl.annotations.{JsonProtocol, NoTargetAnnotation, UnserializableAnnotationException}
+import firrtl.annotations._
import firrtl.ir._
import firrtl.options.Dependency
+import firrtl.transforms.DontTouchAnnotation
import scala.util.Failure
import _root_.logger.{LogLevel, LogLevelAnnotation, Logger}
import org.scalatest.flatspec.AnyFlatSpec
@@ -77,4 +78,13 @@ class JsonProtocolSpec extends AnyFlatSpec with Matchers {
e.getMessage should include("Classes defined in method bodies are not supported")
}
}
+ "JsonProtocol.serializeRecover" should "emit even annotations that cannot be serialized" in {
+ case class MyAnno(x: Int) extends NoTargetAnnotation
+ val target = CircuitTarget("Top").module("Foo").ref("x")
+ val annos = MyAnno(3) :: DontTouchAnnotation(target) :: Nil
+ val res = JsonProtocol.serializeRecover(annos)
+ res should include(""""class":"firrtl.annotations.UnserializeableAnnotation",""")
+ res should include(""""error":"Classes defined in method bodies are not supported.",""")
+ res should include(""""content":"MyAnno(3)"""")
+ }
}