Skip to content

Commit 8d9cf0b

Browse files
committed
add showStackTrace to turn stack trace into string
1 parent 6a72163 commit 8d9cf0b

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

project/Build.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,19 @@ object MyBuild extends Build{
77
lazy val aRootProject = Project(id = projectName, base = file("."),
88
settings = Seq(
99
name := projectName,
10-
scalaVersion := "2.11.7",
10+
scalaVersion := "2.11.8",
1111
crossScalaVersions := Seq("2.10.6",scalaVersion.value),
1212
description := "Composable Records and type-indexed Maps for Scala",
1313
libraryDependencies ++= Seq(
14-
"org.scalatest" %% "scalatest" % "2.2.4" % "test",
15-
"org.typelevel" %% "macro-compat" % "1.0.5",
14+
"org.scalatest" %% "scalatest" % "3.0.0-RC4" % "test",
15+
"org.typelevel" %% "macro-compat" % "1.0.7",
1616
"org.scala-lang" % "scala-reflect" % scalaVersion.value % "provided"
1717
),
1818
scalacOptions ++= Seq("-feature", "-deprecation", "-unchecked"),
1919
//scalacOptions ++= Seq("-Xprint:patmat", "-Xshow-phases"),
2020
testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-oFD"),
2121
parallelExecution := false, // <- until TMap thread-safety issues are resolved
22-
version := "0.4.1",
22+
version := "0.4.2",
2323
organizationName := "Jan Christopher Vogt",
2424
organization := "org.cvogt",
2525
scalacOptions in (Compile, doc) <++= (version,sourceDirectory in Compile,name).map((v,src,n) => Seq(

src/main/scala/debug.scala

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,18 @@ object `package`{
2121
}
2222
}
2323
*/
24+
implicit class ThrowableExtensions( t: Throwable ) {
25+
def showStackTrace: String = {
26+
import java.io._
27+
val sw = new StringWriter()
28+
val pw = new PrintWriter( sw )
29+
t.printStackTrace( pw )
30+
val s = sw.toString
31+
sw.close
32+
pw.close
33+
s
34+
}
35+
}
2436
}
2537

2638
/** Suppresses JVM output to stdout and stderr in a block of code

src/test/scala/debug.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,16 @@ import org.scalactic.TypeCheckedTripleEquals._
55

66
import org.cvogt.scala.debug._
77

8-
class ScalarTest extends FunSuite{
8+
class DebugTest extends FunSuite{
99
test("debug"){
1010
SUPPRESS_OUTPUT{
1111
def foo = 5.println.println
1212
//assert( Seq(2,4,6) === Seq(1,2,3).println.printlnEach.foreach2(identity).map(_*2) )
1313
}
1414
}
15+
test("showStackTrace"){
16+
assert(
17+
new Exception().showStackTrace contains "DebugTest"
18+
)
19+
}
1520
}

0 commit comments

Comments
 (0)