diff options
Diffstat (limited to 'test/regression')
-rw-r--r-- | test/regression/2007-08-01-bool-zext-in-call.ll | 11 | ||||
-rw-r--r-- | test/regression/2007-08-08-free-zero.c | 4 | ||||
-rw-r--r-- | test/regression/2007-10-11-free-of-alloca.c | 7 | ||||
-rw-r--r-- | test/regression/2007-10-11-illegal-access-after-free-and-branch.c | 7 | ||||
-rw-r--r-- | test/regression/2007-10-12-failed-make-symbolic-after-copy.c | 2 | ||||
-rw-r--r-- | test/regression/2008-03-04-free-of-global.c | 7 | ||||
-rw-r--r-- | test/regression/2008-05-23-gep-with-global-const.c | 2 | ||||
-rw-r--r-- | test/regression/2014-07-04-unflushed-error-report.c | 25 | ||||
-rw-r--r-- | test/regression/dg.exp | 3 |
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}]] |