1 #ifndef ROSE_BinaryAnalysis_Concolic_ExecutionManager_H
2 #define ROSE_BinaryAnalysis_Concolic_ExecutionManager_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_CONCOLIC_TESTING
5 #include <Rose/BinaryAnalysis/Concolic/BasicTypes.h>
7 #include <boost/noncopyable.hpp>
8 #include <Sawyer/SharedObject.h>
12 namespace BinaryAnalysis {
25 DatabasePtr database_;
29 explicit ExecutionManager(
const DatabasePtr &db);
32 virtual ~ExecutionManager();
37 DatabasePtr database()
const;
45 virtual std::vector<TestCaseId> pendingConcreteResults(
size_t n =
UNLIMITED);
46 TestCaseId pendingConcreteResult() ;
54 virtual void insertConcreteResults(
const TestCasePtr&,
const ConcreteExecutorResult &details);
62 virtual std::vector<TestCaseId> pendingConcolicResults(
size_t n =
UNLIMITED);
63 TestCaseId pendingConcolicResult() ;
71 virtual void insertConcolicResults(
const TestCasePtr &original,
const std::vector<TestCasePtr> &newCases);
76 virtual bool isFinished()
const;
82 virtual void run() = 0;
Sawyer::SharedPointer< Node > Ptr
Shared-ownership pointer to an expression Node.
const size_t UNLIMITED(-1)
Effictively unlimited size.
Main namespace for the ROSE library.
Reference-counting intrusive smart pointer.
Base class for reference counted objects.