summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests/Printf.scala
diff options
context:
space:
mode:
authormergify[bot]2022-09-29 18:53:44 +0000
committerGitHub2022-09-29 18:53:44 +0000
commit5a79814631bdc8c71c5a7b4722cd43712f7ff445 (patch)
tree6a42aceb9b6002bcbeb3070c7bb98d1b17db91b4 /src/test/scala/chiselTests/Printf.scala
parent9f1eae19445e110bb743176767f59970ce1d36b5 (diff)
Add lexical scope checks to Assert, Assume and Printf (#2706) (#2753)
(cherry picked from commit f462c9f9307bebf3012da52432c3729cd752321c) Co-authored-by: Aditya Naik <91489422+adkian-sifive@users.noreply.github.com>
Diffstat (limited to 'src/test/scala/chiselTests/Printf.scala')
-rw-r--r--src/test/scala/chiselTests/Printf.scala39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/Printf.scala b/src/test/scala/chiselTests/Printf.scala
index 4171f97f..6c9f05f0 100644
--- a/src/test/scala/chiselTests/Printf.scala
+++ b/src/test/scala/chiselTests/Printf.scala
@@ -4,6 +4,7 @@ package chiselTests
import chisel3._
import chisel3.testers.BasicTester
+import chisel3.stage.ChiselStage
class SinglePrintfTester() extends BasicTester {
val x = 254.U
@@ -28,6 +29,38 @@ class ASCIIPrintableTester extends BasicTester {
stop()
}
+class ScopeTesterModule extends Module {
+ val in = IO(Input(UInt(8.W)))
+ val out = IO(Output(UInt(8.W)))
+ out := in
+
+ val w = Wire(UInt(8.W))
+ w := 125.U
+
+ val p = cf"$in"
+ val wp = cf"$w"
+}
+
+class PrintablePrintfScopeTester extends BasicTester {
+ ChiselStage.elaborate {
+ new Module {
+ val mod = Module(new ScopeTesterModule)
+ printf(mod.p)
+ }
+ }
+ stop()
+}
+
+class PrintablePrintfWireScopeTester extends BasicTester {
+ ChiselStage.elaborate {
+ new Module {
+ val mod = Module(new ScopeTesterModule)
+ printf(mod.wp)
+ }
+ }
+ stop()
+}
+
class PrintfSpec extends ChiselFlatSpec {
"A printf with a single argument" should "run" in {
assertTesterPasses { new SinglePrintfTester }
@@ -41,4 +74,10 @@ class PrintfSpec extends ChiselFlatSpec {
"A printf with Printable ASCII characters 1-127" should "run" in {
assertTesterPasses { new ASCIIPrintableTester }
}
+ "A printf with Printable" should "respect port scopes" in {
+ assertTesterPasses { new PrintablePrintfScopeTester }
+ }
+ "A printf with Printable" should "respect wire scopes" in {
+ a[ChiselException] should be thrownBy { assertTesterPasses { new PrintablePrintfWireScopeTester } }
+ }
}