aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala')
-rw-r--r--src/test/scala/firrtlTests/WidthSpec.scala25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/scala/firrtlTests/WidthSpec.scala b/src/test/scala/firrtlTests/WidthSpec.scala
index ab8cb7ac..058cc1fa 100644
--- a/src/test/scala/firrtlTests/WidthSpec.scala
+++ b/src/test/scala/firrtlTests/WidthSpec.scala
@@ -156,4 +156,29 @@ class WidthSpec extends FirrtlFlatSpec {
executeTest(input, check, passes)
}
}
+
+ behavior of "CheckWidths.UniferredWidth"
+
+ it should "provide a good error message with a full target if a user forgets an assign" in {
+ val passes = Seq(
+ ToWorkingIR,
+ ResolveKinds,
+ InferTypes,
+ CheckTypes,
+ ResolveGenders,
+ InferWidths,
+ CheckWidths)
+ val input =
+ """|circuit Foo :
+ | module Foo :
+ | input clock : Clock
+ | inst bar of Bar
+ | module Bar :
+ | wire a: { b : UInt<1>, c : { d : UInt<1>, e : UInt } }
+ |""".stripMargin
+ val msg = intercept[CheckWidths.UninferredWidth] { executeTest(input, Nil, passes) }
+ .getMessage should include ("""| circuit Foo:
+ | └── module Bar:
+ | └── a.c.e""".stripMargin)
+ }
}