summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests/WarningSpec.scala
diff options
context:
space:
mode:
authorJack2022-11-11 06:53:04 +0000
committerJack2022-11-11 06:53:04 +0000
commit3ce953c81f06519351c48277e3474b5720ec07ff (patch)
treeac79dcb80d0528c2ae86ca21da4cf424715ab645 /src/test/scala/chiselTests/WarningSpec.scala
parentadccde9998c91875e5490cff6d5822ffacc593ed (diff)
parentc8046636a25474be4c547c6fe9c6d742ea7b1d13 (diff)
Merge branch '3.5.x' into 3.5-release
Diffstat (limited to 'src/test/scala/chiselTests/WarningSpec.scala')
-rw-r--r--src/test/scala/chiselTests/WarningSpec.scala42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/WarningSpec.scala b/src/test/scala/chiselTests/WarningSpec.scala
new file mode 100644
index 00000000..1cef1ffc
--- /dev/null
+++ b/src/test/scala/chiselTests/WarningSpec.scala
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package chiselTests
+
+import chisel3._
+import chisel3.util._
+import chisel3.stage.ChiselStage
+import chisel3.experimental.ChiselEnum
+import chisel3.experimental.EnumType
+
+class WarningSpec extends ChiselFlatSpec with Utils {
+ behavior.of("Warnings")
+
+ object MyEnum extends ChiselEnum {
+ val e0, e1, e2 = Value
+ }
+
+ class MyModule extends Module {
+ val in = IO(Input(UInt(2.W)))
+ val out1 = IO(Output(MyEnum()))
+ val out2 = IO(Output(MyEnum()))
+ def func(out: EnumType): Unit = {
+ out := MyEnum(in)
+ }
+ func(out1)
+ func(out2)
+ }
+
+ "Warnings" should "be de-duplicated" in {
+ val (log, _) = grabLog(ChiselStage.elaborate(new MyModule))
+ def countSubstring(s: String, sub: String) =
+ s.sliding(sub.length).count(_ == sub)
+ countSubstring(log, "Casting non-literal UInt") should be(1)
+ }
+
+ "Warnings" should "be treated as errors with warningsAsErrors" in {
+ a[ChiselException] should be thrownBy extractCause[ChiselException] {
+ val args = Array("--warnings-as-errors")
+ (new ChiselStage).emitChirrtl(new MyModule, args)
+ }
+ }
+}