From d82c298244e4913a062f93576cf412fa5edbb326 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Blanc?= <regwblanc@gmail.com> Date: Tue, 1 May 2012 10:13:21 +0200 Subject: [PATCH] adding an error director the regression tests --- run-tests.sh | 15 +++++++++++-- testcases/regression/error/InstanceOf1.scala | 23 ++++++++++++++++++++ testcases/regression/valid/InstanceOf1.scala | 18 +++++++++++++++ 3 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 testcases/regression/error/InstanceOf1.scala create mode 100644 testcases/regression/valid/InstanceOf1.scala diff --git a/run-tests.sh b/run-tests.sh index f1e606a6e..cedaea2d3 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -1,6 +1,6 @@ -#!/bin/sh +#!/bin/bash -nbtests=$(ls -l testcases/regression/*valid/*.scala | wc -l) +nbtests=$(ls -l testcases/regression/{valid,invalid,error}/*.scala | wc -l) nbsuccess=0 failedtests="" @@ -26,6 +26,17 @@ for f in testcases/regression/invalid/*.scala; do fi done +for f in testcases/regression/error/*.scala; do + echo -n "Running $f, expecting ERROR, got: " + res=`./leon --timeout=5 --oneline "$f"` + echo $res | tr [a-z] [A-Z] + if [ $res = error ]; then + nbsuccess=$((nbsuccess + 1)) + else + failedtests="$failedtests $f" + fi +done + echo "$nbsuccess out of $nbtests tests were successful" if [ $nbtests -eq $nbsuccess ]; then echo "PASSED" diff --git a/testcases/regression/error/InstanceOf1.scala b/testcases/regression/error/InstanceOf1.scala new file mode 100644 index 000000000..a1974b4bc --- /dev/null +++ b/testcases/regression/error/InstanceOf1.scala @@ -0,0 +1,23 @@ +object InstanceOf1 { + + abstract class A + case class B(i: Int) extends A + case class C(i: Int) extends A + + abstract class Z + case class Y(i: Int) extends Z + + def foo(): Int = { + //require(3.isInstanceOf[Int]) + val b: A = B(2) + if(b.isInstanceOf[Y]) + 0 + else + -1 + } ensuring(_ == 0) + + def bar(): Int = foo() + +} + +// vim: set ts=4 sw=4 et: diff --git a/testcases/regression/valid/InstanceOf1.scala b/testcases/regression/valid/InstanceOf1.scala new file mode 100644 index 000000000..1c52338bb --- /dev/null +++ b/testcases/regression/valid/InstanceOf1.scala @@ -0,0 +1,18 @@ +object InstanceOf1 { + + abstract class A + case class B(i: Int) extends A + case class C(i: Int) extends A + + def foo(): Int = { + require(C(3).isInstanceOf[C]) + val b: A = B(2) + if(b.isInstanceOf[B]) + 0 + else + -1 + } ensuring(_ == 0) + + def bar(): Int = foo() + +} -- GitLab