ROSE  0.9.10.91
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
Rose::BinaryAnalysis::Concolic::LinuxExitStatus Class Reference

Description

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 587 of file BinaryConcolic.h.

#include <BinaryConcolic.h>

Inheritance diagram for Rose::BinaryAnalysis::Concolic::LinuxExitStatus:
Inheritance graph
[legend]
Collaboration diagram for Rose::BinaryAnalysis::Concolic::LinuxExitStatus:
Collaboration graph
[legend]

Public Types

typedef Sawyer::SharedPointer< LinuxExitStatusPtr
 Reference counting pointer to LinuxExitStatus. More...
 
- Public Types inherited from Rose::BinaryAnalysis::Concolic::ExecutionManager
typedef Sawyer::SharedPointer< ExecutionManagerPtr
 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 insertSymbolicResults (const TestCase::Ptr &original, const std::vector< TestCase::Ptr > &newCases)
 Insert results from a symbolic execution. More...
 
virtual bool isFinished () const
 Predicate to determine whether testing is completed. More...
 
virtual std::vector< Database::TestCaseIdpendingConcreteResults (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::TestCaseIdpendingSymbolicResults (size_t n=(size_t)(-1))
 Next test case for symbolic execution. More...
 
Database::TestCaseId pendingSymbolicResult ()
 Next test case for symbolic execution. 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...
 

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)
 

Member Typedef Documentation

Reference counting pointer to LinuxExitStatus.

Definition at line 590 of file BinaryConcolic.h.

Member Function Documentation

static Ptr Rose::BinaryAnalysis::Concolic::LinuxExitStatus::create ( const std::string  databaseUrl,
const boost::filesystem::path &  executableName,
const std::vector< std::string > &  arguments 
)
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 Ptr Rose::BinaryAnalysis::Concolic::LinuxExitStatus::instance ( const std::string  databaseUri,
const std::string &  testSuiteName = "" 
)
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 void Rose::BinaryAnalysis::Concolic::LinuxExitStatus::run ( )
virtual

Start running.

Runs concrete and symbolic 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.


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