ROSE
0.9.12.28
|
Concolic teting of Linux executables.
Tests a single Linux executable. The concrete ranking metric is only whether the executable exited with zero status or not.
Definition at line 977 of file BinaryConcolic.h.
#include <BinaryConcolic.h>
Public Types | |
typedef Sawyer::SharedPointer< LinuxExitStatus > | Ptr |
Reference counting pointer to LinuxExitStatus. More... | |
Public Types inherited from Rose::BinaryAnalysis::Concolic::ExecutionManager | |
typedef Sawyer::SharedPointer< ExecutionManager > | Ptr |
Reference counting pointer to an ExecutionManager. More... | |
Public Member Functions | |
virtual void | run () ROSE_OVERRIDE |
Start running. More... | |
Public Member Functions inherited from Rose::BinaryAnalysis::Concolic::ExecutionManager | |
Database::Ptr | database () const |
Property: Database. More... | |
virtual void | insertConcreteResults (const TestCase::Ptr &, const ConcreteExecutor::Result &details) |
Insert results of a concrete run. More... | |
virtual void | insertConcolicResults (const TestCase::Ptr &original, const std::vector< TestCase::Ptr > &newCases) |
Insert results from a concolic execution. More... | |
virtual bool | isFinished () const |
Predicate to determine whether testing is completed. More... | |
virtual std::vector< Database::TestCaseId > | pendingConcreteResults (size_t n=(size_t)(-1)) |
Next test case for concrete execution. More... | |
Database::TestCaseId | pendingConcreteResult () |
Next test case for concrete execution. More... | |
virtual std::vector< Database::TestCaseId > | pendingConcolicResults (size_t n=(size_t)(-1)) |
Next test case for concolic execution. More... | |
Database::TestCaseId | pendingConcolicResult () |
Next test case for concolic execution. 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... | |
Static Public Member Functions | |
static Ptr | create (const std::string databaseUrl, const boost::filesystem::path &executableName, const std::vector< std::string > &arguments) |
Start a new round of concolic testing. More... | |
static Ptr | instance (const std::string &databaseUri, const std::string &testSuiteName="") |
Resume concolic testing using the specified database. More... | |
Protected Member Functions | |
LinuxExitStatus (const Database::Ptr &db) | |
Protected Member Functions inherited from Rose::BinaryAnalysis::Concolic::ExecutionManager | |
ExecutionManager (const Database::Ptr &db) | |
Reference counting pointer to LinuxExitStatus.
Definition at line 980 of file BinaryConcolic.h.
|
static |
Start a new round of concolic testing.
Creates a new database that will hold a single new test suite for the specified executable. The single seeding test case invokes the executable with the specified arguments. The actual run is not commenced until run is called.
|
static |
Resume concolic testing using the specified database.
If a test suite name is specified then it must exist in the database. If no test suite name is specified then the database must contain exactly one test suite which is the one that will be used. The actual run is not commenced until run is called.
|
virtual |
Start running.
Runs concrete and concolic executors until the application is interrupted or there's nothing left to do. Subclasses will likely reimplement this method in order to do parallel processing, limit execution time, etc.
Implements Rose::BinaryAnalysis::Concolic::ExecutionManager.