aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/scala/firrtlTests/DriverSpec.scala25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/scala/firrtlTests/DriverSpec.scala b/src/test/scala/firrtlTests/DriverSpec.scala
index 9cbeb6f9..377353dc 100644
--- a/src/test/scala/firrtlTests/DriverSpec.scala
+++ b/src/test/scala/firrtlTests/DriverSpec.scala
@@ -7,6 +7,7 @@ import org.scalatest.{FreeSpec, Matchers}
import firrtl.passes.InlineInstances
import firrtl.passes.memlib.{InferReadWrite, ReplSeqMem}
+import firrtl.transforms.BlackBoxSourceHelper
import firrtl._
import firrtl.util.BackendCompilationUtilities
@@ -142,6 +143,30 @@ class DriverSpec extends FreeSpec with Matchers with BackendCompilationUtilities
annotationsTestFile.delete()
}
+ "Annotations can be created from the command line and read from a file at the same time" in {
+ val optionsManager = new ExecutionOptionsManager("test") with HasFirrtlOptions
+ val targetDir = new File(optionsManager.commonOptions.targetDirName)
+ val annoFile = new File(targetDir, "annotations.anno")
+
+ optionsManager.parse(
+ Array("--infer-rw", "circuit", "-faf", annoFile.toString, "-ffaaf")
+ ) should be (true)
+
+ copyResourceToFile("/annotations/SampleAnnotations.anno", annoFile)
+
+ val firrtlOptions = optionsManager.firrtlOptions
+ firrtlOptions.annotations.length should be (1) // infer-rw
+
+ Driver.loadAnnotations(optionsManager)
+
+ val anns = optionsManager.firrtlOptions.annotations.groupBy(_.transform)
+ anns(classOf[BlackBoxSourceHelper]).length should be (1) // built in to loadAnnotations
+ anns(classOf[InferReadWrite]).length should be (1) // --infer-rw
+ anns(classOf[InlineInstances]).length should be (9) // annotations file
+
+ annoFile.delete()
+ }
+
"Circuits are emitted on properly" - {
val input =
"""|circuit Top :