diff options
| author | Adam Izraelevitz | 2020-03-06 18:03:55 -0800 |
|---|---|---|
| committer | GitHub | 2020-03-07 02:03:55 +0000 |
| commit | dd72b24dde5b28aef4a3728fdb770e26f5dbc54d (patch) | |
| tree | 908ab02e878509a1734562851baa82732cfa8d18 /src/test | |
| parent | 140a29a851a9e5b0b1cd486cc5ba53c3ff763f27 (diff) | |
Add firrtl-json serializers (#1430)
* Add firrtl-json serializers
* Added support for ports, info. Added docs and tests
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala b/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala new file mode 100644 index 00000000..2dce89db --- /dev/null +++ b/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala @@ -0,0 +1,42 @@ +// See LICENSE for license details. + +package firrtlTests.annotationTests + +import firrtl.Parser +import firrtl.annotations.{Annotation, JsonProtocol, NoTargetAnnotation} +import firrtl.ir._ +import org.scalatest.{FlatSpec, Matchers, PropSpec} + +case class AnAnnotation( + info: Info, + cir: Circuit, + mod: DefModule, + port: Port, + statement: Statement, + expr: Expression, + tpe: Type +) extends NoTargetAnnotation + +class JsonProtocolSpec extends FlatSpec with Matchers { + "JsonProtocol" should "serialize and deserialize FIRRTL types" in { + + val circuit = + """circuit Top: @[FPU.scala 509:25] + | module Top: + | input x: UInt + | output y: UInt + | y <= add(x, x) + |""".stripMargin + val cir = Parser.parse(circuit) + val mod = cir.modules.head + val port = mod.ports.head + val stmt = mod.asInstanceOf[Module].body + val expr = stmt.asInstanceOf[Block].stmts.head.asInstanceOf[Connect].expr + val tpe = port.tpe + val inputAnnos = Seq(AnAnnotation(cir.info, cir, mod, port, stmt, expr, tpe)) + val annosString = JsonProtocol.serialize(inputAnnos) + val outputAnnos = JsonProtocol.deserialize(annosString) + inputAnnos should be (outputAnnos) + } + +} |
