diff options
| author | Jack Koenig | 2017-03-30 00:23:47 -0700 |
|---|---|---|
| committer | GitHub | 2017-03-30 00:23:47 -0700 |
| commit | bda2bd363fbe66de9425bba12d96f5f9816a43ce (patch) | |
| tree | 30b94551191ac1ebcf7891a33932dc5ea6f8614a /src | |
| parent | 2dca19685c5e622304114f4370ed15012403dca0 (diff) | |
Make force-append-anno-file work. Fixes #515 (#516)
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/firrtl/Driver.scala | 2 | ||||
| -rw-r--r-- | src/test/scala/firrtlTests/DriverSpec.scala | 25 |
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 : |
