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... | |
![]() | |
typedef Sawyer::SharedPointer< ExecutionManager > | Ptr |
Reference counting pointer to an ExecutionManager. More... | |
Public Member Functions | |
virtual void | run () ROSE_OVERRIDE |
Start running. More... | |
![]() | |
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... | |
![]() | |
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) | |
![]() | |
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.