diff options
| author | Jack Koenig | 2020-09-04 17:20:01 -0700 |
|---|---|---|
| committer | GitHub | 2020-09-05 00:20:01 +0000 |
| commit | 47c81ee3e68c96e94dafa389cb53b162e996a4df (patch) | |
| tree | e976c5b9adcec16a6215863eda811617c64c5f1c /src/test | |
| parent | b25c90f27bcf5ff61d7f0d16fb274759a628a500 (diff) | |
Better error messages for unserializable annotations (#1885)
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") + } + } } |
