From bfb5b3542948246a0941cdc53f48acceddfeda03 Mon Sep 17 00:00:00 2001 From: Schuyler Eldridge Date: Thu, 23 Apr 2020 22:07:23 -0400 Subject: Test that Elaborate only runs once Signed-off-by: Schuyler Eldridge --- src/test/scala/chiselTests/stage/ChiselStageSpec.scala | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src') diff --git a/src/test/scala/chiselTests/stage/ChiselStageSpec.scala b/src/test/scala/chiselTests/stage/ChiselStageSpec.scala index a7a405f1..21beb48f 100644 --- a/src/test/scala/chiselTests/stage/ChiselStageSpec.scala +++ b/src/test/scala/chiselTests/stage/ChiselStageSpec.scala @@ -8,6 +8,8 @@ import chisel3.stage.ChiselStage import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers +import firrtl.options.Dependency + object ChiselStageSpec { class Foo extends MultiIOModule { @@ -57,4 +59,15 @@ class ChiselStageSpec extends AnyFlatSpec with Matchers { ChiselStage.convert(new Foo) } + behavior of "ChiselStage phase ordering" + + it should "only run elaboration once" in new ChiselStageFixture { + info("Phase order is:\n" + stage.phaseManager.prettyPrint(" ")) + + val order = stage.phaseManager.flattenedTransformOrder.map(Dependency.fromTransform) + + info("Elaborate only runs once") + exactly (1, order) should be (Dependency[chisel3.stage.phases.Elaborate]) + } + } -- cgit v1.2.3