about summary refs log tree commit diff homepage
path: root/test
diff options
context:
space:
mode:
authorFrank Busse <bb0xfb@gmail.com>2017-11-01 20:56:01 +0000
committerCristian Cadar <c.cadar@imperial.ac.uk>2017-11-24 14:42:35 +0000
commit47ae3ba9fcefae4d170c16f2fb54c489a38855c9 (patch)
tree6e582af858c20be2c8aaf2327dd8b519282bc15f /test
parent1b4671cbffd53ab27f48f30aae21da6d08242323 (diff)
downloadklee-47ae3ba9fcefae4d170c16f2fb54c489a38855c9.tar.gz
klee_make_symbolic: add test cases for API
Diffstat (limited to 'test')
-rw-r--r--test/Feature/MakeSymbolicAPI.c19
-rw-r--r--test/regression/2017-11-01-test-with-empty-varname.c11
2 files changed, 30 insertions, 0 deletions
diff --git a/test/Feature/MakeSymbolicAPI.c b/test/Feature/MakeSymbolicAPI.c
new file mode 100644
index 00000000..0ff4b82f
--- /dev/null
+++ b/test/Feature/MakeSymbolicAPI.c
@@ -0,0 +1,19 @@
+// RUN: %llvmgcc %s -emit-llvm -g -c -o %t1.bc
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out %t1.bc 2> %t.stderr.log
+// RUN: FileCheck %s -check-prefix=CHECK-WRN --input-file=%t.klee-out/warnings.txt
+// RUN: FileCheck %s -check-prefix=CHECK-ERR --input-file=%t.stderr.log
+
+int main() {
+  unsigned a, b, c;
+
+  klee_make_symbolic(&a, sizeof(a), "");
+// CHECK-WRN: KLEE: WARNING: klee_make_symbolic: renamed empty name to "unnamed"
+
+  klee_make_symbolic(&b, sizeof(b));
+// CHECK-WRN: KLEE: WARNING: klee_make_symbolic: deprecated number of arguments (2 instead of 3)
+// CHECK-WRN: KLEE: WARNING: klee_make_symbolic: renamed empty name to "unnamed"
+
+  klee_make_symbolic(&c);
+// CHECK-ERR: KLEE: ERROR: {{.*}} illegal number of arguments to klee_make_symbolic(void*, size_t, char*)
+}
diff --git a/test/regression/2017-11-01-test-with-empty-varname.c b/test/regression/2017-11-01-test-with-empty-varname.c
new file mode 100644
index 00000000..5d73ea20
--- /dev/null
+++ b/test/regression/2017-11-01-test-with-empty-varname.c
@@ -0,0 +1,11 @@
+// RUN: %llvmgcc %s -emit-llvm -g -c -o %t1.bc
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out %t1.bc
+// RUN: FileCheck %s --input-file=%t.klee-out/warnings.txt
+
+int main() {
+  unsigned a;
+
+  klee_make_symbolic(&a, sizeof(a), "");
+// CHECK-NOT: KLEE: WARNING: unable to write output test case, losing it
+}