summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests/Module.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/chiselTests/Module.scala')
-rw-r--r--src/test/scala/chiselTests/Module.scala28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/test/scala/chiselTests/Module.scala b/src/test/scala/chiselTests/Module.scala
index 932c94a5..7703e876 100644
--- a/src/test/scala/chiselTests/Module.scala
+++ b/src/test/scala/chiselTests/Module.scala
@@ -3,8 +3,12 @@
package chiselTests
import chisel3._
-import chisel3.stage.ChiselStage
import chisel3.experimental.DataMirror
+import chisel3.stage.{ChiselGeneratorAnnotation, ChiselStage, NoRunFirrtlCompilerAnnotation}
+import firrtl.annotations.NoTargetAnnotation
+import firrtl.options.Unserializable
+
+import scala.io.Source
class SimpleIO extends Bundle {
val in = Input(UInt(32.W))
@@ -140,6 +144,17 @@ class ModuleSpec extends ChiselPropSpec with Utils {
assert(checkModule(this))
})
}
+
+ property("object chisel3.util.experimental.getAnnotations should return current annotations.") {
+ case class DummyAnnotation() extends NoTargetAnnotation with Unserializable
+ (new ChiselStage).transform(Seq(
+ ChiselGeneratorAnnotation(() => new RawModule {
+ assert(chisel3.util.experimental.getAnnotations().contains(DummyAnnotation()))
+ }),
+ DummyAnnotation(),
+ NoRunFirrtlCompilerAnnotation))
+ }
+
property("DataMirror.modulePorts should work") {
ChiselStage.elaborate(new Module {
val io = IO(new Bundle { })
@@ -174,4 +189,15 @@ class ModuleSpec extends ChiselPropSpec with Utils {
}
ChiselStage.elaborate(new RawModule with Foo)
}
+
+ property("getVerilogString(new PlusOne() should produce a valid Verilog string") {
+ val s = getVerilogString(new PlusOne())
+ assert(s.contains("assign io_out = io_in + 32'h1"))
+ }
+
+ property("emitVerilog((new PlusOne()..) shall produce a valid Verilog file in a subfolder") {
+ emitVerilog(new PlusOne(), Array("--target-dir", "generated"))
+ val s = Source.fromFile("generated/PlusOne.v").mkString("")
+ assert(s.contains("assign io_out = io_in + 32'h1"))
+ }
}