aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/firrtl/Driver.scala2
-rw-r--r--src/test/scala/firrtlTests/DriverSpec.scala25
2 files changed, 26 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/Driver.scala b/src/main/scala/firrtl/Driver.scala
index 94cfface..fb74c5f3 100644
--- a/src/main/scala/firrtl/Driver.scala
+++ b/src/main/scala/firrtl/Driver.scala
@@ -92,7 +92,7 @@ object Driver {
*/
def firrtlConfig = optionsManager.firrtlOptions
- if(firrtlConfig.annotations.isEmpty) {
+ if (firrtlConfig.annotations.isEmpty || firrtlConfig.forceAppendAnnoFile) {
val annotationFileName = firrtlConfig.getAnnotationFileName(optionsManager)
val annotationFile = new File(annotationFileName)
if (annotationFile.exists) {
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 :