summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests/DriverSpec.scala
diff options
context:
space:
mode:
authorJim Lawson2017-02-28 13:32:38 -0800
committerGitHub2017-02-28 13:32:38 -0800
commit08885d74619328532bc0157ba9cef7f26496b146 (patch)
tree53bd3bd7b4d0b27256700f70b689013a4484674f /src/test/scala/chiselTests/DriverSpec.scala
parentcae110e06d7dfb206e6d50565ee25221b8c6d0a5 (diff)
Use test_run_dir for more tests. (#534)
* Use test_run_dir for more tests. * Use official option and DRY. Make "test_run_dir" the default for ChiselSpec. Verify output files are created in DriverSpec tests.
Diffstat (limited to 'src/test/scala/chiselTests/DriverSpec.scala')
-rw-r--r--src/test/scala/chiselTests/DriverSpec.scala47
1 files changed, 41 insertions, 6 deletions
diff --git a/src/test/scala/chiselTests/DriverSpec.scala b/src/test/scala/chiselTests/DriverSpec.scala
index b68b2810..796668e3 100644
--- a/src/test/scala/chiselTests/DriverSpec.scala
+++ b/src/test/scala/chiselTests/DriverSpec.scala
@@ -2,9 +2,12 @@
package chiselTests
-import chisel3._
+import java.io.File
-import org.scalatest.{Matchers, FreeSpec}
+import chisel3._
+import firrtl.FirrtlExecutionSuccess
+import org.scalacheck.Test.Failed
+import org.scalatest.{FreeSpec, Matchers, Succeeded}
class DummyModule extends Module {
val io = IO(new Bundle {
@@ -17,17 +20,49 @@ class DummyModule extends Module {
class DriverSpec extends FreeSpec with Matchers {
"Driver's execute methods are used to run chisel and firrtl" - {
"options can be picked up from comand line with no args" in {
- Driver.execute(Array.empty[String], () => new DummyModule)
+ // NOTE: Since we don't provide any arguments (notably, "--target-dir"),
+ // the generated files will be created in the current directory.
+ val targetDir = "."
+ Driver.execute(Array.empty[String], () => new DummyModule) match {
+ case ChiselExecutionSuccess(_, _, Some(_: FirrtlExecutionSuccess)) =>
+ val exts = List("anno", "fir", "v")
+ for (ext <- exts) {
+ val dummyOutput = new File(targetDir, "DummyModule" + "." + ext)
+ dummyOutput.exists() should be(true)
+ dummyOutput.delete()
+ }
+ Succeeded
+ case _ =>
+ Failed
+ }
}
+
"options can be picked up from comand line setting top name" in {
- Driver.execute(Array("-tn", "dm", "-td", "local-build"), () => new DummyModule)
+ val targetDir = "local-build"
+ Driver.execute(Array("-tn", "dm", "-td", targetDir), () => new DummyModule) match {
+ case ChiselExecutionSuccess(_, _, Some(_: FirrtlExecutionSuccess)) =>
+ val exts = List("anno", "fir", "v")
+ for (ext <- exts) {
+ val dummyOutput = new File(targetDir, "dm" + "." + ext)
+ dummyOutput.exists() should be(true)
+ dummyOutput.delete()
+ }
+ Succeeded
+ case _ =>
+ Failed
+ }
+
}
"execute returns a chisel execution result" in {
- val args = Array("--compiler", "low")
- val result = Driver.execute(Array.empty[String], () => new DummyModule)
+ val targetDir = "test_run_dir"
+ val args = Array("--compiler", "low", "--target-dir", targetDir)
+ val result = Driver.execute(args, () => new DummyModule)
result shouldBe a[ChiselExecutionSuccess]
val successResult = result.asInstanceOf[ChiselExecutionSuccess]
successResult.emitted should include ("circuit DummyModule")
+ val dummyOutput = new File(targetDir, "DummyModule.lo.fir")
+ dummyOutput.exists() should be(true)
+ dummyOutput.delete()
}
}
}