diff options
| author | Schuyler Eldridge | 2018-10-25 16:27:49 -0400 |
|---|---|---|
| committer | Schuyler Eldridge | 2018-10-25 16:27:49 -0400 |
| commit | f64388e7cfe71004df93ddeef88447978f37ecb1 (patch) | |
| tree | 3af980704f34346d4e983348a269885ffe6a8910 /src/test/scala/chiselTests | |
| parent | 2416d1d44a2bd73bd0556437ece7a7a24d649a7a (diff) | |
Check BaseModule.name for NullPointerException
This wraps the evaluation of BaseModule.name in try/catch to look for a
NullPointerException that may result from trying to evaluate desiredName
before it's ready. This catches a test case of using a desiredName that
depends on a later defined eager subinstance.
h/t @jackkoenig
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Diffstat (limited to 'src/test/scala/chiselTests')
| -rw-r--r-- | src/test/scala/chiselTests/Module.scala | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/Module.scala b/src/test/scala/chiselTests/Module.scala index dc44838a..b3d1899c 100644 --- a/src/test/scala/chiselTests/Module.scala +++ b/src/test/scala/chiselTests/Module.scala @@ -65,7 +65,14 @@ class ModuleRewrap extends Module { 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 { @@ -147,4 +154,8 @@ class ModuleSpec extends ChiselPropSpec { 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") + } } |
