aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/firrtl/RenameMapPrivateSpec.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/firrtl/RenameMapPrivateSpec.scala')
-rw-r--r--src/test/scala/firrtl/RenameMapPrivateSpec.scala39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/test/scala/firrtl/RenameMapPrivateSpec.scala b/src/test/scala/firrtl/RenameMapPrivateSpec.scala
new file mode 100644
index 00000000..d735e6c8
--- /dev/null
+++ b/src/test/scala/firrtl/RenameMapPrivateSpec.scala
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package firrtl
+
+import firrtl.annotations.Target
+import firrtl.annotations.TargetToken.{Instance, OfModule}
+import firrtl.analyses.InstanceKeyGraph
+import firrtl.testutils.FirrtlFlatSpec
+
+class RenameMapPrivateSpec extends FirrtlFlatSpec {
+ "RenameMap.fromInstanceRenames" should "handle instance renames" in {
+ def tar(str: String): Target = Target.deserialize(str)
+ val circuit = parse(
+ """circuit Top :
+ | module Bar :
+ | skip
+ | module Foo :
+ | inst bar of Bar
+ | module Top :
+ | inst foo1 of Foo
+ | inst foo2 of Foo
+ | inst bar of Bar
+ |""".stripMargin
+ )
+ val graph = InstanceKeyGraph(circuit)
+ val renames = Map(
+ OfModule("Foo") -> Map(Instance("bar") -> Instance("bbb")),
+ OfModule("Top") -> Map(Instance("foo1") -> Instance("ffff"))
+ )
+ val rm = RenameMap.fromInstanceRenames(graph, renames)
+ rm.get(tar("~Top|Top/foo1:Foo")) should be(Some(Seq(tar("~Top|Top/ffff:Foo"))))
+ rm.get(tar("~Top|Top/foo2:Foo")) should be(None)
+ // Check of nesting
+ rm.get(tar("~Top|Top/foo1:Foo/bar:Bar")) should be(Some(Seq(tar("~Top|Top/ffff:Foo/bbb:Bar"))))
+ rm.get(tar("~Top|Top/foo2:Foo/bar:Bar")) should be(Some(Seq(tar("~Top|Top/foo2:Foo/bbb:Bar"))))
+ rm.get(tar("~Top|Foo/bar:Bar")) should be(Some(Seq(tar("~Top|Foo/bbb:Bar"))))
+ rm.get(tar("~Top|Top/bar:Bar")) should be(None)
+ }
+}