aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorJim Lawson2019-03-18 15:20:51 -0700
committerGitHub2019-03-18 15:20:51 -0700
commit9911b3467de2ebe92827ddc3288bd6db477cc636 (patch)
tree4e791d82069c0e94fd5c34cd674a9b9596042d8b /src/test
parenta97a81bc0f717f80bb70733795ac5337653b58c5 (diff)
Add serialization support for LoadMemoryFileType in LoadMemoryAnnotation (#1056)
* Add serialization support for LoadMemoryFileType in LoadMemoryAnnotation Add custom LoadMemoryFileTypeSerializer. Add test to verify LoadMemoryAnnotation can be correctly serialized/deserialized. * Simplify and focus LoadMemoryAnnotation serialization/deserialization. Respond to comments on earlier implementations. * Add type FileType definition for current chisel3 code.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/scala/firrtlTests/annotationTests/LoadMemoryAnnotationSpec.scala14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/test/scala/firrtlTests/annotationTests/LoadMemoryAnnotationSpec.scala b/src/test/scala/firrtlTests/annotationTests/LoadMemoryAnnotationSpec.scala
index 15b12d52..c702df13 100644
--- a/src/test/scala/firrtlTests/annotationTests/LoadMemoryAnnotationSpec.scala
+++ b/src/test/scala/firrtlTests/annotationTests/LoadMemoryAnnotationSpec.scala
@@ -2,7 +2,7 @@
package firrtlTests.annotationTests
-import firrtl.annotations.{CircuitName, ComponentName, LoadMemoryAnnotation, ModuleName}
+import firrtl.annotations._
import org.scalatest.{FreeSpec, Matchers}
class LoadMemoryAnnotationSpec extends FreeSpec with Matchers {
@@ -26,4 +26,16 @@ class LoadMemoryAnnotationSpec extends FreeSpec with Matchers {
lma.getFileName should be("./target/scala-2.12/test-classes/init_mem_subdata")
}
}
+ "LoadMemoryAnnotation should be correctly parsed from a string" in {
+ val lma = new LoadMemoryAnnotation(
+ ComponentName("ram", ModuleName("ModuleMem", CircuitName("CircuitMem"))),
+ "CircuitMem.ModuleMem.ram.dat",
+ hexOrBinary = MemoryLoadFileType.Binary,
+ originalMemoryNameOpt = Some("memory")
+ )
+
+ val annoString = JsonProtocol.serializeTry(Seq(lma)).get
+ val loadedAnnos = JsonProtocol.deserializeTry(annoString).get
+ lma should equal(loadedAnnos.head)
+ }
}