aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorCristian Cadar <cristic@cs.stanford.edu>2012-10-24 15:00:31 +0000
committerCristian Cadar <cristic@cs.stanford.edu>2012-10-24 15:00:31 +0000
commitadf4ee6671f790c7f9ca9301dce27cb903a50ca4 (patch)
treef6cae91bac40ef5a74c0baad1a5559536ba3227e /tools
parent30db83cfba2070f0693eef39c16b3c52432a22bb (diff)
downloadklee-adf4ee6671f790c7f9ca9301dce27cb903a50ca4.tar.gz
Patch by Dan Liew: "Added support for generating .smt2 files when
writing out test cases (option --write-smt2s) in KLEE." git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@166568 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r--tools/klee/main.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/tools/klee/main.cpp b/tools/klee/main.cpp
index dc335cd0..d28356bd 100644
--- a/tools/klee/main.cpp
+++ b/tools/klee/main.cpp
@@ -96,6 +96,10 @@ namespace {
cl::desc("Write .pc files for each test case"));
cl::opt<bool>
+ WriteSMT2s("write-smt2s",
+ cl::desc("Write .smt2 (SMT-LIBv2) files for each test case"));
+
+ cl::opt<bool>
WriteCov("write-cov",
cl::desc("Write coverage information for each test case"));
@@ -448,7 +452,7 @@ void KleeHandler::processTestCase(const ExecutionState &state,
if (errorMessage || WritePCs) {
std::string constraints;
- m_interpreter->getConstraintLog(state, constraints);
+ m_interpreter->getConstraintLog(state, constraints,Interpreter::KQUERY);
std::ostream *f = openTestFile("pc", id);
*f << constraints;
delete f;
@@ -456,12 +460,20 @@ void KleeHandler::processTestCase(const ExecutionState &state,
if (WriteCVCs) {
std::string constraints;
- m_interpreter->getConstraintLog(state, constraints, true);
+ m_interpreter->getConstraintLog(state, constraints, Interpreter::STP);
std::ostream *f = openTestFile("cvc", id);
*f << constraints;
delete f;
}
+ if(WriteSMT2s) {
+ std::string constraints;
+ m_interpreter->getConstraintLog(state, constraints, Interpreter::SMTLIB2);
+ std::ostream *f = openTestFile("smt2", id);
+ *f << constraints;
+ delete f;
+ }
+
if (m_symPathWriter) {
std::vector<unsigned char> symbolicBranches;
m_symPathWriter->readStream(m_interpreter->getSymbolicPathStreamID(state),