diff options
| author | Jack Koenig | 2018-05-23 11:54:50 -0700 |
|---|---|---|
| committer | GitHub | 2018-05-23 11:54:50 -0700 |
| commit | 87fe48938a3ccc58b1945bae72f0e7305ac14b3b (patch) | |
| tree | 8d809eac737083400ae72b9f11bb2eb3fd91aee1 /src/test | |
| parent | b1709242b5c7b60e21308642947d292545eb2e37 (diff) | |
Add Circuit as option to FirrtlOptions (#814)
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/scala/firrtlTests/DriverSpec.scala | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/test/scala/firrtlTests/DriverSpec.scala b/src/test/scala/firrtlTests/DriverSpec.scala index b0ce0af9..df49e2bb 100644 --- a/src/test/scala/firrtlTests/DriverSpec.scala +++ b/src/test/scala/firrtlTests/DriverSpec.scala @@ -17,6 +17,8 @@ import firrtl._ import firrtl.annotations._ import firrtl.util.BackendCompilationUtilities +import scala.util.{Try, Success, Failure} + class ExceptingTransform extends Transform { def inputForm = HighForm def outputForm = HighForm @@ -124,6 +126,47 @@ class DriverSpec extends FreeSpec with Matchers with BackendCompilationUtilities val outputFileName = firrtlOptions.getTargetFile(optionsManager) outputFileName should be ("carol.v") } + val input = """ + |circuit Top : + | module Top : + | input x : UInt<8> + | output y : UInt<8> + | y <= x""".stripMargin + val circuit = Parser.parse(input.split("\n").toIterator) + "firrtl source can be provided directly" in { + val manager = new ExecutionOptionsManager("test") with HasFirrtlOptions { + commonOptions = CommonOptions(topName = "Top") + firrtlOptions = FirrtlExecutionOptions(firrtlSource = Some(input)) + } + assert(firrtl.Driver.getCircuit(manager).isSuccess) + } + "firrtl Circuits can be provided directly" in { + val manager = new ExecutionOptionsManager("test") with HasFirrtlOptions { + commonOptions = CommonOptions(topName = "Top") + firrtlOptions = FirrtlExecutionOptions(firrtlCircuit = Some(circuit)) + } + firrtl.Driver.getCircuit(manager) shouldBe Success(circuit) + } + "Only one of inputFileNameOverride, firrtlSource, and firrtlCircuit can be used at a time" in { + val manager1 = new ExecutionOptionsManager("test") with HasFirrtlOptions { + commonOptions = CommonOptions(topName = "Top") + firrtlOptions = FirrtlExecutionOptions(firrtlCircuit = Some(circuit), + firrtlSource = Some(input)) + } + val manager2 = new ExecutionOptionsManager("test") with HasFirrtlOptions { + commonOptions = CommonOptions(topName = "Top") + firrtlOptions = FirrtlExecutionOptions(inputFileNameOverride = "hi", + firrtlSource = Some(input)) + } + val manager3 = new ExecutionOptionsManager("test") with HasFirrtlOptions { + commonOptions = CommonOptions(topName = "Top") + firrtlOptions = FirrtlExecutionOptions(inputFileNameOverride = "hi", + firrtlCircuit = Some(circuit)) + } + assert(firrtl.Driver.getCircuit(manager1).isFailure) + assert(firrtl.Driver.getCircuit(manager2).isFailure) + assert(firrtl.Driver.getCircuit(manager3).isFailure) + } "various annotations can be created from command line, currently:" - { "inline annotation" in { val optionsManager = new ExecutionOptionsManager("test") with HasFirrtlOptions |
