Classes | Public Types | Public Member Functions | List of all members
Rose::BinaryAnalysis::Concolic::ConcreteExecutor Class Referenceabstract


Base class for executing test cases concretely.

The user is expected to subclass this object in order to define the specifics of how to execute a test case concretely, measure some properties of the execution, and return those properties. A basic LinuxExecutor subclass is already provided to give an example of how to run a program and measure its exit status. Other more complex executors might do things like measure code coverage.

ConcreteExecutor objects are expected to be used in single-threaded applications. Supporting multi-threaded concrete executors would be difficult since calling fork[2] from multi-threaded C++ programs is fraught with danger. Therefore, none of the methods in this API are thread-safe.

Definition at line 198 of file BinaryConcolic.h.

#include <BinaryConcolic.h>

Inheritance diagram for Rose::BinaryAnalysis::Concolic::ConcreteExecutor:
Inheritance graph
Collaboration diagram for Rose::BinaryAnalysis::Concolic::ConcreteExecutor:
Collaboration graph


class  Result
 Base class for user-defined concrete execution results. More...

Public Types

typedef Sawyer::SharedPointer< ConcreteExecutorPtr
 Reference counting pointer to a ConcreteExecutor. More...

Public Member Functions

virtual std::unique_ptr< Resultexecute (const TestCase::Ptr &)=0
 Execute one test case synchronously. More...
- Public Member Functions inherited from Sawyer::SharedObject
 SharedObject ()
 Default constructor. More...
 SharedObject (const SharedObject &)
 Copy constructor. More...
virtual ~SharedObject ()
 Virtual destructor. More...
SharedObjectoperator= (const SharedObject &)
 Assignment. More...

Member Typedef Documentation

Reference counting pointer to a ConcreteExecutor.

Definition at line 201 of file BinaryConcolic.h.

Member Function Documentation

virtual std::unique_ptr<Result> Rose::BinaryAnalysis::Concolic::ConcreteExecutor::execute ( const TestCase::Ptr )
pure virtual

Execute one test case synchronously.

Returns the results from running the test concretely. Results are user-defined. The return value is never a null pointer.

Implemented in Rose::BinaryAnalysis::Concolic::LinuxExecutor.

The documentation for this class was generated from the following file: