aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/firrtlTests/ExecutionOptionManagerSpec.scala
diff options
context:
space:
mode:
authorChick Markley2016-10-18 16:08:55 -0700
committerJack Koenig2016-10-18 16:08:55 -0700
commitcb59d096471cf0d25797483af045b8a9d09ed1ab (patch)
tree006440621cf2a0e80015d8eef7779d89b0a2c486 /src/test/scala/firrtlTests/ExecutionOptionManagerSpec.scala
parent85baeda249e59c7d9d9f159aaf29ff46d685cf02 (diff)
Create a simple system for executions and command line parameters (#337)
Create a simple system for executions and command line parameters New model for tracking parameters and having those parameters register scopt command to allow the parameters to be set by command line args. Create composable forms of the these parameters to allow separate elements of the chisel3 toolchain to combine these parameters Create execution return structures that simplify return values to earlier toolchain elements
Diffstat (limited to 'src/test/scala/firrtlTests/ExecutionOptionManagerSpec.scala')
-rw-r--r--src/test/scala/firrtlTests/ExecutionOptionManagerSpec.scala41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test/scala/firrtlTests/ExecutionOptionManagerSpec.scala b/src/test/scala/firrtlTests/ExecutionOptionManagerSpec.scala
new file mode 100644
index 00000000..0edef8cc
--- /dev/null
+++ b/src/test/scala/firrtlTests/ExecutionOptionManagerSpec.scala
@@ -0,0 +1,41 @@
+// See LICENSE for license details.
+
+package firrtlTests
+
+import firrtl._
+import org.scalatest.{Matchers, FreeSpec}
+
+class ExecutionOptionManagerSpec extends FreeSpec with Matchers {
+ "ExecutionOptionManager is a container for one more more ComposableOptions Block" - {
+ "It has a default CommonOptionsBlock" in {
+ val manager = new ExecutionOptionsManager("test")
+ manager.commonOptions.targetDirName should be ("test_run_dir")
+ }
+ "But can override defaults like this" in {
+ val manager = new ExecutionOptionsManager("test") { commonOptions = CommonOptions(topName = "dog") }
+ manager.commonOptions shouldBe a [CommonOptions]
+ manager.topName should be ("dog")
+ manager.commonOptions.topName should be ("dog")
+ }
+ "The add method should put a new version of a given type the manager" in {
+ val manager = new ExecutionOptionsManager("test") { commonOptions = CommonOptions(topName = "dog") }
+ val initialCommon = manager.commonOptions
+ initialCommon.topName should be ("dog")
+
+ manager.commonOptions = CommonOptions(topName = "cat")
+
+ val afterCommon = manager.commonOptions
+ afterCommon.topName should be ("cat")
+ initialCommon.topName should be ("dog")
+ }
+ "multiple composable blocks should be separable" in {
+ val manager = new ExecutionOptionsManager("test") with HasFirrtlOptions {
+ commonOptions = CommonOptions(topName = "spoon")
+ firrtlOptions = FirrtlExecutionOptions(inputFileNameOverride = "fork")
+ }
+
+ manager.firrtlOptions.inputFileNameOverride should be ("fork")
+ manager.commonOptions.topName should be ("spoon")
+ }
+ }
+}