diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala | 12 |
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)"""") + } } |
