summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSchuyler Eldridge2018-10-28 11:30:45 -0400
committerGitHub2018-10-28 11:30:45 -0400
commit44124f2ec92cf24814a8343ae3faef9abe916626 (patch)
tree3af980704f34346d4e983348a269885ffe6a8910 /src
parent600405254c20c14fb3389aa4758ec27dffe992d0 (diff)
parentf64388e7cfe71004df93ddeef88447978f37ecb1 (diff)
Merge pull request #912 from seldridge/c911
Make BaseModule.name lazy
Diffstat (limited to 'src')
-rw-r--r--src/test/scala/chiselTests/Module.scala20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/Module.scala b/src/test/scala/chiselTests/Module.scala
index 968e7578..b3d1899c 100644
--- a/src/test/scala/chiselTests/Module.scala
+++ b/src/test/scala/chiselTests/Module.scala
@@ -62,6 +62,19 @@ class ModuleRewrap extends Module {
val inst2 = Module(inst)
}
+class ModuleWrapper(gen: => Module) extends Module {
+ val io = IO(new Bundle{})
+ val child = Module(gen)
+ override val desiredName = s"${child.desiredName}Wrapper"
+}
+
+class NullModuleWrapper extends Module {
+ val io = IO(new Bundle{})
+ override lazy val desiredName = s"${child.desiredName}Wrapper"
+ println(s"My name is ${name}")
+ val child = Module(new ModuleWire)
+}
+
class ModuleSpec extends ChiselPropSpec {
property("ModuleVec should elaborate") {
@@ -138,4 +151,11 @@ class ModuleSpec extends ChiselPropSpec {
"a" -> m.a, "b" -> m.b))
})
}
+ property("A desiredName parameterized by a submodule should work") {
+ Driver.elaborate(() => new ModuleWrapper(new ModuleWire)).name should be ("ModuleWireWrapper")
+ }
+ property("A name generating a null pointer exception should provide a good error message") {
+ (the [Exception] thrownBy (Driver.elaborate(() => new NullModuleWrapper)))
+ .getMessage should include ("desiredName of chiselTests.NullModuleWrapper is null")
+ }
}