From ae6da669e546d2ac0881da2c898c01f28b7ed7e2 Mon Sep 17 00:00:00 2001 From: Martin Nowack Date: Wed, 13 Mar 2019 13:28:48 +0000 Subject: Fix libc++ testcases * remove wrapper script invocation and script * add build instruction to test cases * added additional checks * add check to avoid execution of tests if KLEE is not compiled with libc++ --- test/CXX/symex/libc++/atexit.cpp | 5 ++++- test/CXX/symex/libc++/compile_with_libcxx.sh | 15 --------------- test/CXX/symex/libc++/cout.cpp | 8 +++++++- test/CXX/symex/libc++/cout_sym.cpp | 9 ++++++++- test/CXX/symex/libc++/dynamic_cast.cpp | 7 +++++-- test/CXX/symex/libc++/vector.cpp | 7 +++++-- 6 files changed, 29 insertions(+), 22 deletions(-) delete mode 100644 test/CXX/symex/libc++/compile_with_libcxx.sh (limited to 'test/CXX/symex/libc++') diff --git a/test/CXX/symex/libc++/atexit.cpp b/test/CXX/symex/libc++/atexit.cpp index 3d9e6834..79be6aa2 100644 --- a/test/CXX/symex/libc++/atexit.cpp +++ b/test/CXX/symex/libc++/atexit.cpp @@ -1,4 +1,7 @@ -// RUN: sh %S/compile_with_libcxx.sh "%llvmgxx" "%s" "%S" "%t" "%klee" "%libcxx_include" | FileCheck %s +// REQUIRES: libcxx +// RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc +// RUN: rm -rf %t.klee-out +// RUN: %klee --output-dir=%t.klee-out --exit-on-error --libc=uclibc --libcxx %t1.bc | FileCheck %s // // CHECK: Returning from main // CHECK: atexit_1 diff --git a/test/CXX/symex/libc++/compile_with_libcxx.sh b/test/CXX/symex/libc++/compile_with_libcxx.sh deleted file mode 100644 index 8c45ec62..00000000 --- a/test/CXX/symex/libc++/compile_with_libcxx.sh +++ /dev/null @@ -1,15 +0,0 @@ -set -x -set -e -set -o -set -u - -COMPILER=$1 -FILENAME=$2 -CURDIR=$3 -TMPNAME=$4 -KLEE=$5 -INCLUDE_DIR=$6 - -$COMPILER $FILENAME -std=c++11 -I ${INCLUDE_DIR} -emit-llvm -O0 -c -g -nostdinc++ -o ${TMPNAME}.bc -rm -rf ${TMPNAME}.klee-out -$KLEE --output-dir=${TMPNAME}.klee-out --no-output --exit-on-error --libc=uclibc --use-libcxx ${TMPNAME}.bc 2>&1 diff --git a/test/CXX/symex/libc++/cout.cpp b/test/CXX/symex/libc++/cout.cpp index 2539b67f..e8b6e52f 100644 --- a/test/CXX/symex/libc++/cout.cpp +++ b/test/CXX/symex/libc++/cout.cpp @@ -1,4 +1,10 @@ -// RUN: sh %S/compile_with_libcxx.sh "%llvmgxx" "%s" "%S" "%t" "%klee" "%libcxx_include" +// REQUIRES: libcxx +// RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc +// RUN: rm -rf %t.klee-out +// RUN: %klee --output-dir=%t.klee-out --exit-on-error --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s + +// CHECK-DAG: cout +// CHECK-DAG: cerr #include diff --git a/test/CXX/symex/libc++/cout_sym.cpp b/test/CXX/symex/libc++/cout_sym.cpp index 52e59f05..6c6f2789 100644 --- a/test/CXX/symex/libc++/cout_sym.cpp +++ b/test/CXX/symex/libc++/cout_sym.cpp @@ -1,4 +1,11 @@ -// RUN: sh %S/compile_with_libcxx.sh "%llvmgxx" "%s" "%S" "%t" "%klee" "%libcxx_include" +// REQUIRES: libcxx +// RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc +// RUN: rm -rf %t.klee-out +// RUN: %klee --output-dir=%t.klee-out --exit-on-error --libc=uclibc --libcxx %t1.bc | FileCheck %s + +// CHECK-DAG: greater +// CHECK-DAG: lower + #include #include "klee/klee.h" diff --git a/test/CXX/symex/libc++/dynamic_cast.cpp b/test/CXX/symex/libc++/dynamic_cast.cpp index 53e5bc69..e35e04d7 100644 --- a/test/CXX/symex/libc++/dynamic_cast.cpp +++ b/test/CXX/symex/libc++/dynamic_cast.cpp @@ -1,5 +1,8 @@ -// RUN: sh %S/compile_with_libcxx.sh "%llvmgxx" "%s" "%S" "%t" "%klee" "%libcxx_include" - +// REQUIRES: libcxx +// RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc +// RUN: rm -rf %t.klee-out +// RUN: %klee --output-dir=%t.klee-out --exit-on-error --libc=uclibc --libcxx %t1.bc +// // Copied from 'http://en.cppreference.com/w/cpp/language/dynamic_cast' struct V { diff --git a/test/CXX/symex/libc++/vector.cpp b/test/CXX/symex/libc++/vector.cpp index 27f5daba..1be87f80 100644 --- a/test/CXX/symex/libc++/vector.cpp +++ b/test/CXX/symex/libc++/vector.cpp @@ -1,5 +1,8 @@ -// RUN: sh %S/compile_with_libcxx.sh "%llvmgxx" "%s" "%S" "%t" "%klee" "%libcxx_include" | FileCheck %s - +// REQUIRES: libcxx +// RUN: %clangxx %s -emit-llvm %O0opt -c -std=c++11 -I "%libcxx_include" -g -nostdinc++ -o %t1.bc +// RUN: rm -rf %t.klee-out +// RUN: %klee --output-dir=%t.klee-out --exit-on-error --libc=uclibc --libcxx %t1.bc 2>&1 | FileCheck %s +// // CHECK: KLEE: done: completed paths = 1 #include "klee/klee.h" -- cgit 1.4.1