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/Settings.h> 
    9#include <boost/noncopyable.hpp> 
   10#include <Sawyer/SharedObject.h> 
   14namespace BinaryAnalysis {
 
   33    DatabasePtr database_;
 
   34    ConcolicExecutorSettings concolicExecutorSettings_;
 
   35    const Yaml::Node config_;
 
   41    virtual ~ExecutionManager();
 
   43    explicit ExecutionManager(
const DatabasePtr&);
 
   44    ExecutionManager(
const DatabasePtr&, 
const ConcolicExecutorSettings&, 
const Yaml::Node&);
 
   74    static Ptr instance(
const ConcolicExecutorSettings&, 
const Yaml::Node&);
 
   84    static Ptr open(
const std::string &databaseUrl);
 
   96    static Ptr create(
const std::string &databaseUrl, 
const boost::filesystem::path &executableName,
 
   97                      const std::vector<std::string> &arguments, 
const std::string &testSuiteName = 
"");
 
  106    const ConcolicExecutorSettings& concolicExecutorSettings() 
const;
 
  107    ConcolicExecutorSettings& concolicExecutorSettings();
 
  108    void concolicExecutorSettings(
const ConcolicExecutorSettings&);
 
  114    DatabasePtr database() 
const;
 
  122    std::vector<TestSuiteId> testSuites() 
const;
 
  129    TestSuitePtr testSuite() 
const;
 
  130    void testSuite(
const TestSuitePtr&);
 
  143    virtual std::vector<TestCaseId> pendingConcreteResults(
size_t n = UNLIMITED);
 
  144    TestCaseId pendingConcreteResult() ;
 
  152    virtual void insertConcreteResults(
const TestCasePtr&, 
const ConcreteResultPtr&);
 
  160    virtual std::vector<TestCaseId> pendingConcolicResults(
size_t n = UNLIMITED);
 
  161    TestCaseId pendingConcolicResult() ;
 
  169    virtual void insertConcolicResults(
const TestCasePtr &original, 
const std::vector<TestCasePtr> &newCases);
 
  174    virtual bool isFinished() 
const;
 
Base class for reference counted objects.
 
Reference-counting intrusive smart pointer.
 
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.