From 61e41e15fa951211d4ecbe9b1c09b507dada3beb Mon Sep 17 00:00:00 2001 From: Juan Pedro Moreno Date: Mon, 22 Aug 2016 16:29:53 +0200 Subject: [PATCH] Provides additional runtime information --- .../org/scalaexercises/evaluator/evaluation.scala | 2 +- .../org/scalaexercises/evaluator/services.scala | 14 +++++++++----- .../evaluator/EvalEndpointSpec.scala | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/server/src/main/scala/org/scalaexercises/evaluator/evaluation.scala b/server/src/main/scala/org/scalaexercises/evaluator/evaluation.scala index 17e1c761..3e61743b 100644 --- a/server/src/main/scala/org/scalaexercises/evaluator/evaluation.scala +++ b/server/src/main/scala/org/scalaexercises/evaluator/evaluation.scala @@ -108,7 +108,7 @@ class Evaluator(timeout: FiniteDuration = 20.seconds)( result ← Try(eval.execute[T](code, resetState = true, jars = jars)) } yield result - val errors = eval.errors.toMap.asInstanceOf[EvalResult.CI] + val errors = eval.errors result match { case scala.util.Success(r) ⇒ EvalSuccess[T](errors, r, "") diff --git a/server/src/main/scala/org/scalaexercises/evaluator/services.scala b/server/src/main/scala/org/scalaexercises/evaluator/services.scala index 99f62cef..44c9001c 100644 --- a/server/src/main/scala/org/scalaexercises/evaluator/services.scala +++ b/server/src/main/scala/org/scalaexercises/evaluator/services.scala @@ -42,11 +42,11 @@ object services { ) flatMap { result => val response = result match { - case EvalSuccess(cis, result, out) => + case EvalSuccess(cis, res, out) => EvalResponse( `ok`, - Option(result.toString), - Option(result.asInstanceOf[AnyRef].getClass.getName), + Option(res.toString), + Option(res.asInstanceOf[AnyRef].getClass.getName), cis) case Timeout(_) => EvalResponse(`Timeout Exceded`, None, None, Map.empty) @@ -56,8 +56,12 @@ object services { None, None, Map.empty) - case EvalRuntimeError(cis, _) => - EvalResponse(`Runtime Error`, None, None, cis) + case EvalRuntimeError(cis, runtimeError) => + EvalResponse( + `Runtime Error`, + runtimeError map (_.error.getMessage), + runtimeError map (_.error.getClass.getName), + cis) case CompilationError(cis) => EvalResponse(`Compilation Error`, None, None, cis) case GeneralError(err) => diff --git a/server/src/test/scala/org/scalaexercises/evaluator/EvalEndpointSpec.scala b/server/src/test/scala/org/scalaexercises/evaluator/EvalEndpointSpec.scala index 9f6258c9..79cc03fa 100644 --- a/server/src/test/scala/org/scalaexercises/evaluator/EvalEndpointSpec.scala +++ b/server/src/test/scala/org/scalaexercises/evaluator/EvalEndpointSpec.scala @@ -157,7 +157,7 @@ class EvalEndpointSpec extends FunSpec with Matchers { ), `X-Scala-Eval-Api-Token`(validToken)), expectedStatus = HttpStatus.Ok, - expectedValue = None, + expectedValue = Some("true was not false"), expectedMessage = `Runtime Error` ) }