diff options
| author | Jim Lawson | 2016-12-19 12:27:15 -0800 |
|---|---|---|
| committer | GitHub | 2016-12-19 12:27:15 -0800 |
| commit | 4eebd787312792f7a3722af61ab7e6349081d3b4 (patch) | |
| tree | 333fe66fba7ea7337fa1f6ffe1ec905cd2f724f3 /src | |
| parent | 0233f704e83d380b1fe8311dfffa3f44f74b506b (diff) | |
| parent | dd4650d29ed18ec610ad7561f4e9c990ba887a3d (diff) | |
Merge pull request #360 from ucb-bar/exceptionfix
Throw exceptions for cloneType failures - fix #358
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/scala/chiselTests/MissingCloneBindingExceptionSpec.scala | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/MissingCloneBindingExceptionSpec.scala b/src/test/scala/chiselTests/MissingCloneBindingExceptionSpec.scala new file mode 100644 index 00000000..719484ac --- /dev/null +++ b/src/test/scala/chiselTests/MissingCloneBindingExceptionSpec.scala @@ -0,0 +1,57 @@ +// See LICENSE for license details. + +package chiselTests +import Chisel.ChiselException +import org.scalatest._ + +class MissingCloneBindingExceptionSpec extends ChiselFlatSpec with Matchers { + behavior of "missing cloneType in Chisel3" + ( the[ChiselException] thrownBy { + import chisel3._ + + class TestIO(w: Int) extends Bundle { + val a = Vec(4, UInt(width = w)).asInput + + //override def cloneType = (new TestIO(w)).asInstanceOf[this.type] + } + + class Test extends Module { + val io = IO(new TestIO(32)) + } + + class TestTop extends Module { + val io = IO(new Bundle {}) + + val subs = Vec.fill(2) { + Module(new Test).io + } + } + + elaborate(new TestTop) + }).getMessage should include("needs cloneType method") + + behavior of "missing cloneType in Chisel2" + ( the[ChiselException] thrownBy { + import Chisel._ + + class TestIO(w: Int) extends Bundle { + val a = Vec(4, UInt(width = w)).asInput + + //override def cloneType = (new TestIO(w)).asInstanceOf[this.type] + } + + class Test extends Module { + val io = IO(new TestIO(32)) + } + + class TestTop extends Module { + val io = IO(new Bundle {}) + + val subs = Vec.fill(2) { + Module(new Test).io + } + } + + elaborate(new TestTop) + }).getMessage should include("needs cloneType method") +} |
