ROSE
0.9.12.28
|
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 339 of file BinaryConcolic.h.
#include <BinaryConcolic.h>
Classes | |
class | Result |
Base class for user-defined concrete execution results. More... | |
Public Types | |
typedef Sawyer::SharedPointer< ConcreteExecutor > | Ptr |
Reference counting pointer to a ConcreteExecutor. More... | |
Public Member Functions | |
virtual Result * | execute (const TestCase::Ptr &)=0 |
Execute one test case synchronously. More... | |
void | executionMonitor (const boost::filesystem::path &executorName) |
Sets an execution monitor for a test run. More... | |
boost::filesystem::path | executionMonitor () const |
Sets an execution monitor for a test run. More... | |
Public Member Functions inherited from Sawyer::SharedObject | |
SharedObject () | |
Default constructor. More... | |
SharedObject (const SharedObject &) | |
Copy constructor. More... | |
virtual | ~SharedObject () |
Virtual destructor. More... | |
SharedObject & | operator= (const SharedObject &) |
Assignment. More... | |
typedef Sawyer::SharedPointer<ConcreteExecutor> Rose::BinaryAnalysis::Concolic::ConcreteExecutor::Ptr |
Reference counting pointer to a ConcreteExecutor.
Definition at line 342 of file BinaryConcolic.h.
|
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.
|
inline |
Sets an execution monitor for a test run.
The execution monitor observes a test and computes a quality score that can be used to rank different executions (higher indicates better quality).
The execution monitor (e.g., execmon) needs to understand the following command line arguments: execmon -o outfile – specimen test-arguments.. -o outfile a file containing two lines: or –output=outfile (1) a human-readable integer value, the exit code of the child process; (2) a human-readable floating point value, the quality score of the execution. – separator between arguments to execmon and test specification. specimen the tested specimen test-arguments.. an arbitrary long argument list passed to specimen.
Definition at line 413 of file BinaryConcolic.h.
|
inline |
Sets an execution monitor for a test run.
The execution monitor observes a test and computes a quality score that can be used to rank different executions (higher indicates better quality).
The execution monitor (e.g., execmon) needs to understand the following command line arguments: execmon -o outfile – specimen test-arguments.. -o outfile a file containing two lines: or –output=outfile (1) a human-readable integer value, the exit code of the child process; (2) a human-readable floating point value, the quality score of the execution. – separator between arguments to execmon and test specification. specimen the tested specimen test-arguments.. an arbitrary long argument list passed to specimen.
Definition at line 418 of file BinaryConcolic.h.