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