| Package | Description |
|---|---|
| org.evosuite.graphs | |
| org.evosuite.graphs.ccfg | |
| org.evosuite.graphs.ccg | |
| org.evosuite.graphs.cdg | |
| org.evosuite.graphs.cfg |
| Modifier and Type | Method and Description |
|---|---|
protected void |
EvoSuiteGraph.addVertices(EvoSuiteGraph<V,E> other)
addVertices
|
| Modifier and Type | Class and Description |
|---|---|
class |
ClassControlFlowGraph
This class computes the Class Control Flow Graph (CCFG) of a CUT.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ClassCallGraph
Represents the method call structure of a class in a graph.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ControlDependenceGraph |
class |
DominatorTree<V>
Given a CFG this class computes the immediateDominators and the
dominatingFrontiers for each CFG vertex
The current algorithm to determine the immediateDominators runs in time
O(e*log n) where e is the number of control flow edges and n the number of
CFG vertices and is taken from:
"A Fast Algorithm for Finding Dominators in a Flowgraph" THOMAS LENGAUER and
ROBERT ENDRE TARJAN 1979, Stanford University
DOI: 10.1145/357062.357071
http://portal.acm.org/citation.cfm?doid=357062.357071
The algorithm for computing the dominatingFrontiers when given the
immediateDominators is taken from
"Efficiently Computing Static Single Assignment Form and the Control
Dependence Graph" RON CYTRON, JEANNE FERRANTE, BARRY K.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ActualControlFlowGraph
Supposed to become the new implementation of a control flow graph inside
EvoSuite
The "actual" CFG does not contain single cfg.BytecodeInstructions as nodes,
but contains cfg.BasicBlocks - look at that class for more information
Simply put this is a minimized version of the complete/raw CFG the
cfg.BytecodeAnalyzer and cfg.CFGGenerator produce - which holds a node for
every BytecodeInstruction
Out of the above described raw CFG the following "pin-points" are extracted:
1) the entryNode (first instruction in the method)
2) all exitNodes (outDegree 0)
3.1) all branches (outDegree>1) 3.2) in a subsequent step all targets of all
branches
4.1) all joins (inDegree>1) 4.2) in a subsequent step all sources of all
joins
All those "pin-points" are put into a big set (some of the above categories
may overlap) and for all those single BytecodeInstrucions their corresponding
BasicBlock is computed and added to this CFGs vertexSet.
|
class |
ControlFlowGraph<V>
Abstract base class for both forms of CFGs inside EvoSuite
One implementation of this is cfg.RawControlFlowGraph, which is also known as
the complete CFG The other implementation of this is
cfg.ActualControlFlowGraph which is also known as the minimal CFG Look at the
respective classes for more detailed information
The CFGs can be accessed via the GraphPool which holds for each CUT and each
of their methods a complete and a minimal CFG
CFGs are created by the CFGGenerator during the analysis of the CUTs'
byteCode performed by the BytecodeAnalyzer
|
class |
RawControlFlowGraph
Represents the complete CFG of a method
Essentially this is a graph containing all BytecodeInstrucions of a method as
nodes.
|
Copyright © 2010–2017 EvoSuite. All rights reserved.