diff options
| author | Schuyler Eldridge | 2019-08-14 17:10:49 -0400 |
|---|---|---|
| committer | Schuyler Eldridge | 2019-08-27 19:18:32 -0400 |
| commit | b7d1b325f56b2d1fadf0702efb8597a7d1ff9dff (patch) | |
| tree | c030b246fc17191cc95053e35d8eab590845ddc4 /src/test/scala | |
| parent | b060168ec05689e4a8ccf790c0770bd2c4376194 (diff) | |
Add test that stack trace trimming works
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Diffstat (limited to 'src/test/scala')
| -rw-r--r-- | src/test/scala/chiselTests/DriverSpec.scala | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/test/scala/chiselTests/DriverSpec.scala b/src/test/scala/chiselTests/DriverSpec.scala index 8fc58e21..75ab93ae 100644 --- a/src/test/scala/chiselTests/DriverSpec.scala +++ b/src/test/scala/chiselTests/DriverSpec.scala @@ -17,7 +17,13 @@ class DummyModule extends Module { io.out := io.in } -class DriverSpec extends FreeSpec with Matchers { +class TypeErrorModule extends chisel3.experimental.MultiIOModule { + val in = IO(Input(UInt(1.W))) + val out = IO(Output(SInt(1.W))) + out := in +} + +class DriverSpec extends FreeSpec with Matchers with chiselTests.Utils { "Driver's execute methods are used to run chisel and firrtl" - { "options can be picked up from comand line with no args" in { // NOTE: Since we don't provide any arguments (notably, "--target-dir"), @@ -73,5 +79,21 @@ class DriverSpec extends FreeSpec with Matchers { dummyOutput.exists() should be(true) dummyOutput.delete() } + + "user errors show a trimmed stack trace" in { + val targetDir = "test_run_dir" + val args = Array("--compiler", "low", "--target-dir", targetDir) + + val (stdout, stderr, result) = grabStdOutErr { Driver.execute(args, () => new TypeErrorModule) } + + info("stdout shows a trimmed stack trace") + stdout should include ("Stack trace trimmed to user code only") + + info("stdout does not include FIRRTL information") + stdout should not include ("firrtl.") + + info("Driver returned a ChiselExecutionFailure") + result shouldBe a [ChiselExecutionFailure] + } } } |
