aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorSchuyler Eldridge2020-03-14 15:47:54 -0400
committerGitHub2020-03-14 15:47:54 -0400
commit44f0112c7a9d9e9fa7f87fa6e5f68916e76a3b19 (patch)
tree6c3c915294546d2f7e82f63876dad94573f2de34 /src/test
parent4bafed8221b91a34098cb37da285c374f70cf38d (diff)
parent7ddbdc36506865731ba633c54d5110b77576362a (diff)
Merge pull request #1454 from freechipsproject/inline-invalidate-resolve-kinds
Make InlineInstances invalidate ResolveKinds
Diffstat (limited to 'src/test')
-rw-r--r--src/test/scala/firrtlTests/InlineInstancesTests.scala29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/test/scala/firrtlTests/InlineInstancesTests.scala b/src/test/scala/firrtlTests/InlineInstancesTests.scala
index 3e606667..320b187c 100644
--- a/src/test/scala/firrtlTests/InlineInstancesTests.scala
+++ b/src/test/scala/firrtlTests/InlineInstancesTests.scala
@@ -2,9 +2,14 @@
package firrtlTests
+import firrtl._
import firrtl.annotations._
-import firrtl.passes.{InlineAnnotation, InlineInstances}
+import firrtl.passes.{InlineAnnotation, InlineInstances, ResolveKinds}
import firrtl.transforms.NoCircuitDedupAnnotation
+import firrtl.stage.TransformManager
+import firrtl.options.Dependency
+
+import FirrtlCheckers._
/**
* Tests inline instances transformation
@@ -537,6 +542,28 @@ class InlineInstancesTests extends LowTransformSpec {
)
)
}
+
+ "InlineInstances" should "properly invalidate ResolveKinds" in {
+ val input =
+ """circuit Top :
+ | module Top :
+ | input a : UInt<32>
+ | output b : UInt<32>
+ | inst i of Inline
+ | i.a <= a
+ | b <= i.b
+ | module Inline :
+ | input a : UInt<32>
+ | output b : UInt<32>
+ | b <= a""".stripMargin
+
+ val state = CircuitState(parse(input), ChirrtlForm, Seq(inline("Inline")))
+ val manager = new TransformManager(Seq(Dependency[InlineInstances], Dependency(ResolveKinds)))
+ val result = manager.execute(state)
+
+ result shouldNot containTree { case WRef("i_a", _, PortKind, _) => true }
+ result should containTree { case WRef("i_a", _, WireKind, _) => true }
+ }
}
// Execution driven tests for inlining modules