diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/scala/firrtlTests/InternalErrorSpec.scala | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/test/scala/firrtlTests/InternalErrorSpec.scala b/src/test/scala/firrtlTests/InternalErrorSpec.scala new file mode 100644 index 00000000..85c9c67d --- /dev/null +++ b/src/test/scala/firrtlTests/InternalErrorSpec.scala @@ -0,0 +1,46 @@ +// See LICENSE for license details. + +package firrtlTests + +import java.io.File + +import firrtl._ +import firrtl.Utils.getThrowable +import firrtl.util.BackendCompilationUtilities +import org.scalatest.{FreeSpec, Matchers} + + +class InternalErrorSpec extends FreeSpec with Matchers with BackendCompilationUtilities { + "Unexpected exceptions" - { + val input = + """ + |circuit Dummy : + | module Dummy : + | input clock : Clock + | input x : UInt<1> + | output y : UInt<1> + | output io : { flip in : UInt<16>, out : UInt<16> } + | y <= shr(x, UInt(1)); this should generate an exception in PrimOps.scala:127. + | """.stripMargin + + var exception: Exception = null + "should throw a FIRRTLException" in { + val manager = new ExecutionOptionsManager("test") with HasFirrtlOptions { + commonOptions = CommonOptions(topName = "Dummy") + firrtlOptions = FirrtlExecutionOptions(firrtlSource = Some(input), compilerName = "low") + } + exception = intercept[FIRRTLException] { + firrtl.Driver.execute(manager) + } + } + + "should contain the expected string" in { + assert(exception.getMessage.contains("Internal Error! Please file an issue")) + } + + "should contain the name of the file originating the exception in the stack trace" in { + val first = true + assert(getThrowable(Some(exception), first).getStackTrace exists (_.getFileName.contains("PrimOps.scala"))) + } + } +} |
