about summary refs log tree commit diff homepage
path: root/test/regression
diff options
context:
space:
mode:
Diffstat (limited to 'test/regression')
-rw-r--r--test/regression/2007-08-01-bool-zext-in-call.ll11
-rw-r--r--test/regression/2007-08-08-free-zero.c4
-rw-r--r--test/regression/2007-10-11-free-of-alloca.c7
-rw-r--r--test/regression/2007-10-11-illegal-access-after-free-and-branch.c7
-rw-r--r--test/regression/2007-10-12-failed-make-symbolic-after-copy.c2
-rw-r--r--test/regression/2008-03-04-free-of-global.c7
-rw-r--r--test/regression/2008-05-23-gep-with-global-const.c2
-rw-r--r--test/regression/2014-07-04-unflushed-error-report.c25
-rw-r--r--test/regression/dg.exp3
9 files changed, 52 insertions, 16 deletions
diff --git a/test/regression/2007-08-01-bool-zext-in-call.ll b/test/regression/2007-08-01-bool-zext-in-call.ll
index d10a41ef..fc77785d 100644
--- a/test/regression/2007-08-01-bool-zext-in-call.ll
+++ b/test/regression/2007-08-01-bool-zext-in-call.ll
@@ -1,5 +1,12 @@
-; RUN: llvm-as -f %s -o - | %klee 2> %t1.log
-; RUN: not test -f klee-last/test0001.abort.err
+; RUN: rm -rf %T/xxx
+;
+; The output directory must be explicitly set so that it ends up in the Output/
+; directory which is not scanned for .ll files by llvm-lit, otherwise running
+; test suite a second time will cause problems because assembly.ll generated by
+; executing this test case the first time will be detected as a test case.
+;
+; RUN: llvm-as -f %s -o - | %klee --output-dir=%T/xxx
+; RUN: not test -f %T/xxx/klee-last/test0001.abort.err
 
 declare void @klee_abort()
 
diff --git a/test/regression/2007-08-08-free-zero.c b/test/regression/2007-08-08-free-zero.c
index 964889a1..935b04fd 100644
--- a/test/regression/2007-08-08-free-zero.c
+++ b/test/regression/2007-08-08-free-zero.c
@@ -1,6 +1,8 @@
 // RUN: %llvmgcc %s -emit-llvm -O0 -c -o %t1.bc
 // RUN: %klee %t1.bc
-// RUN: ls klee-last | not grep *.err
+// RUN: ls %T/klee-last | not grep *.err
+
+#include <stdlib.h>
 
 int main() {
   free(0);
diff --git a/test/regression/2007-10-11-free-of-alloca.c b/test/regression/2007-10-11-free-of-alloca.c
index 71a16f6b..44a9ed4e 100644
--- a/test/regression/2007-10-11-free-of-alloca.c
+++ b/test/regression/2007-10-11-free-of-alloca.c
@@ -1,9 +1,10 @@
-// RUN: %llvmgcc %s -emit-llvm -O0 -c -o %t1.bc
-// RUN: %klee %t1.bc
-// RUN: test -f klee-last/test000001.free.err
+// RUN: %llvmgcc %s -g -emit-llvm -O0 -c -o %t1.bc
+// RUN: %klee %t1.bc 2>&1 | FileCheck %s
+// RUN: test -f %T/klee-last/test000001.free.err
 
 int main() {
   int buf[4];
+  // CHECK: 2007-10-11-free-of-alloca.c:8: free of alloca
   free(buf); // this should give runtime error, not crash
   return 0;
 }
diff --git a/test/regression/2007-10-11-illegal-access-after-free-and-branch.c b/test/regression/2007-10-11-illegal-access-after-free-and-branch.c
index fbbb99c3..73b3ed3f 100644
--- a/test/regression/2007-10-11-illegal-access-after-free-and-branch.c
+++ b/test/regression/2007-10-11-illegal-access-after-free-and-branch.c
@@ -1,6 +1,6 @@
 // RUN: %llvmgcc %s -emit-llvm -g -c -o %t1.bc
-// RUN: %klee --optimize %t1.bc
-// RUN: test -f klee-last/test000001.ptr.err
+// RUN: %klee --optimize %t1.bc 2>&1 | FileCheck %s
+// RUN: test -f %T/klee-last/test000001.ptr.err
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -13,7 +13,10 @@ int main(int argc, char **argv) {
   unsigned char x = buf[1];
   free(buf);
   if (x)
+  {
+    // CHECK: 2007-10-11-illegal-access-after-free-and-branch.c:18: memory error: out of bound pointer
     return buf[2];
+  }
   klee_silent_exit(0);
   return 0;
 }
diff --git a/test/regression/2007-10-12-failed-make-symbolic-after-copy.c b/test/regression/2007-10-12-failed-make-symbolic-after-copy.c
index e9a280c3..bfe61f2c 100644
--- a/test/regression/2007-10-12-failed-make-symbolic-after-copy.c
+++ b/test/regression/2007-10-12-failed-make-symbolic-after-copy.c
@@ -1,6 +1,6 @@
 // RUN: %llvmgcc %s -emit-llvm -O0 -c -o %t1.bc
 // RUN: %klee %t1.bc
-// RUN: test -f klee-last/test000001.ktest
+// RUN: test -f %T/klee-last/test000001.ktest
 
 int main() {
   unsigned x, y[4];
diff --git a/test/regression/2008-03-04-free-of-global.c b/test/regression/2008-03-04-free-of-global.c
index 7821398d..5351128d 100644
--- a/test/regression/2008-03-04-free-of-global.c
+++ b/test/regression/2008-03-04-free-of-global.c
@@ -1,10 +1,11 @@
-// RUN: %llvmgcc %s -emit-llvm -O0 -c -o %t1.bc
-// RUN: %klee %t1.bc
-// RUN: test -f klee-last/test000001.free.err
+// RUN: %llvmgcc %s -g -emit-llvm -O0 -c -o %t1.bc
+// RUN: %klee %t1.bc 2>&1 | FileCheck %s
+// RUN: test -f %T/klee-last/test000001.free.err
 
 int buf[4];
 
 int main() {
+  // CHECK: 2008-03-04-free-of-global.c:9: free of global
   free(buf); // this should give runtime error, not crash
   return 0;
 }
diff --git a/test/regression/2008-05-23-gep-with-global-const.c b/test/regression/2008-05-23-gep-with-global-const.c
index 5e03ec1d..3ad9b24e 100644
--- a/test/regression/2008-05-23-gep-with-global-const.c
+++ b/test/regression/2008-05-23-gep-with-global-const.c
@@ -1,4 +1,4 @@
-// RUN: %llvmgcc -O0 -c -o %t.bc %s
+// RUN: %llvmgcc -emit-llvm -O0 -c -o %t.bc %s
 // RUN: %klee --exit-on-error %t.bc
 
 #include <assert.h>
diff --git a/test/regression/2014-07-04-unflushed-error-report.c b/test/regression/2014-07-04-unflushed-error-report.c
new file mode 100644
index 00000000..63431370
--- /dev/null
+++ b/test/regression/2014-07-04-unflushed-error-report.c
@@ -0,0 +1,25 @@
+// RUN: %llvmgcc %s -emit-llvm -g -O0 -c -o %t.bc
+// RUN: %klee -check-overshift %t.bc 2> %t.log
+// RUN: FileCheck -input-file=%T/klee-last/test000001.overshift.err %s
+
+/* This test checks that the error file isn't empty and contains the
+ * right content.
+ */
+int main()
+{
+  unsigned int x=15;
+  unsigned int y;
+  unsigned int z;
+  volatile unsigned int result;
+
+  /* Overshift if y>= sizeof(x) */
+  klee_make_symbolic(&y,sizeof(y),"shift_amount1");
+  // CHECK: Error: overshift error
+  // CHECK-NEXT: 2014-07-04-unflushed-error-report.c
+  // FIXME: Need newer FileCheck for to do ``Line: [[@LINE+1]]``
+  // Just hardcode line number for now
+  // CHECK-NEXT: Line: 22
+  result = x << y;
+
+  return 0;
+}
diff --git a/test/regression/dg.exp b/test/regression/dg.exp
deleted file mode 100644
index 879685ca..00000000
--- a/test/regression/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,llx,c,cpp,tr}]]