зеркало из https://github.com/github/codeql.git
Python taint-tracking: Remove old implementation.
This commit is contained in:
Родитель
133909d7fe
Коммит
a7845ae0e1
|
@ -13,7 +13,7 @@ newtype TTaintTrackingContext =
|
|||
class TaintTrackingContext extends TTaintTrackingContext {
|
||||
|
||||
string toString() {
|
||||
this = TNoParam() and result = "No context"
|
||||
this = TNoParam() and result = ""
|
||||
or
|
||||
exists(TaintKind param, AttributePath path, int n |
|
||||
this = TParamContext(param, path, n) and
|
||||
|
@ -38,6 +38,10 @@ class TaintTrackingContext extends TTaintTrackingContext {
|
|||
)
|
||||
}
|
||||
|
||||
predicate isTop() {
|
||||
this = TNoParam()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -142,7 +146,16 @@ class TaintTrackingNode extends TTaintTrackingNode {
|
|||
|
||||
/** Holds if this node should be presented to the user as part of a path */
|
||||
predicate isVisible() {
|
||||
exists(this.getNode().asCfgNode())
|
||||
exists(this.getCfgNode())
|
||||
}
|
||||
|
||||
ControlFlowNode getCfgNode() {
|
||||
result = this.getNode().asCfgNode()
|
||||
}
|
||||
|
||||
/** Get the AST node for this node. */
|
||||
AstNode getAstNode() {
|
||||
result = this.getCfgNode().getNode()
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -217,23 +230,6 @@ class TaintTrackingImplementation extends string {
|
|||
sanitizer.sanitizingEdge(kind, node.asVariable().getDefinition())
|
||||
or
|
||||
sanitizer.sanitizingSingleEdge(kind, node.asVariable().getDefinition())
|
||||
or
|
||||
exists(PyEdgeRefinement test |
|
||||
test = node.asVariable().getDefinition()
|
||||
|
|
||||
exists(ControlFlowNode c, ClassValue cls |
|
||||
Filters::isinstance(test.getTest(), c, test.getInput().getSourceVariable().getAUse()) and
|
||||
c.pointsTo(cls)
|
||||
|
|
||||
test.getSense() = true and not exists(kind.getClass())
|
||||
or
|
||||
test.getSense() = true and kind.getType().getASuperType() = cls
|
||||
or
|
||||
test.getSense() = false and not kind.getType().getASuperType() = cls
|
||||
)
|
||||
or
|
||||
test.getSense() = test_evaluates(test.getTest(), test.getInput().getSourceVariable().getAUse(), kind)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -246,6 +242,11 @@ class TaintTrackingImplementation extends string {
|
|||
test = use and result = kind.booleanValue()
|
||||
or
|
||||
result = test_evaluates(not_operand(test), use, kind).booleanNot()
|
||||
or
|
||||
exists(ControlFlowNode const |
|
||||
Filters::equality_test(test, use, result.booleanNot(), const) and
|
||||
const.getNode() instanceof ImmutableLiteral
|
||||
)
|
||||
}
|
||||
|
||||
/** Gets the operand of a unary `not` expression. */
|
||||
|
@ -297,8 +298,6 @@ class TaintTrackingImplementation extends string {
|
|||
or
|
||||
this.yieldStep(src, node, context, path, kind)
|
||||
or
|
||||
this.subscriptStep(src, node, context, path, kind)
|
||||
or
|
||||
this.parameterStep(src, node, context, path, kind)
|
||||
or
|
||||
this.ifExpStep(src, node, context, path, kind)
|
||||
|
@ -458,15 +457,6 @@ class TaintTrackingImplementation extends string {
|
|||
)
|
||||
}
|
||||
|
||||
pragma [noinline]
|
||||
predicate subscriptStep(TaintTrackingNode src, DataFlow::Node node, TaintTrackingContext context, AttributePath path, TaintKind kind) {
|
||||
exists(DataFlow::Node srcnode, SequenceKind seqkind |
|
||||
src = TTaintTrackingNode_(srcnode, context, path, seqkind, this) and
|
||||
srcnode.asCfgNode() = node.asCfgNode().(SubscriptNode).getObject() and
|
||||
kind = seqkind.getItem()
|
||||
)
|
||||
}
|
||||
|
||||
pragma [noinline]
|
||||
predicate ifExpStep(TaintTrackingNode src, DataFlow::Node node, TaintTrackingContext context, AttributePath path, TaintKind kind) {
|
||||
exists(DataFlow::Node srcnode |
|
||||
|
@ -512,6 +502,8 @@ class TaintTrackingImplementation extends string {
|
|||
this.taintedUniEdge(src, defn, context, path, kind)
|
||||
or
|
||||
this.taintedPiNode(src, defn, context, path, kind)
|
||||
or
|
||||
this.taintedArgument(src, defn, context, path, kind)
|
||||
}
|
||||
|
||||
pragma [noinline]
|
||||
|
@ -585,10 +577,44 @@ class TaintTrackingImplementation extends string {
|
|||
src = TTaintTrackingNode_(srcnode, context, path, kind, this) and
|
||||
srcnode.asVariable() = defn.getInput() and
|
||||
not this.(TaintTracking::Configuration).isBarrierTest(defn.getTest(), defn.getSense())
|
||||
|
|
||||
exists(ControlFlowNode c, ClassValue cls |
|
||||
Filters::isinstance(defn.getTest(), c, defn.getInput().getSourceVariable().getAUse()) and
|
||||
c.pointsTo(cls)
|
||||
|
|
||||
defn.getSense() = true and kind.getType().getASuperType() = cls
|
||||
or
|
||||
defn.getSense() = false and not kind.getType().getASuperType() = cls
|
||||
)
|
||||
or
|
||||
defn.getSense() = test_evaluates(defn.getTest(), defn.getInput().getSourceVariable().getAUse(), kind)
|
||||
)
|
||||
}
|
||||
|
||||
pragma [noinline]
|
||||
predicate taintedArgument(TaintTrackingNode src, ArgumentRefinement defn, TaintTrackingContext context, AttributePath path, TaintKind kind) {
|
||||
exists(DataFlow::Node srcnode |
|
||||
src = TTaintTrackingNode_(srcnode, context, path, kind, this) and
|
||||
defn.getInput() = srcnode.asVariable()
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module Implementation {
|
||||
|
||||
/* A call that returns a copy (or similar) of the argument */
|
||||
predicate copyCall(ControlFlowNode fromnode, CallNode tonode) {
|
||||
tonode.getFunction().(AttrNode).getObject("copy") = fromnode
|
||||
or
|
||||
exists(ModuleObject copy, string name |
|
||||
name = "copy" or name = "deepcopy" |
|
||||
copy.attr(name).(FunctionObject).getACall() = tonode and
|
||||
tonode.getArg(0) = fromnode
|
||||
)
|
||||
or
|
||||
tonode.getFunction().pointsTo(ObjectInternal::builtin("reversed")) and
|
||||
tonode.getArg(0) = fromnode
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,4 +4,4 @@
|
|||
|
||||
|
||||
import python
|
||||
import TaintTracking::TaintFlowImplementation as TaintFlowTest
|
||||
import semmle.python.dataflow.Implementation as TaintFlowTest
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,5 +1,5 @@
|
|||
import python
|
||||
import semmle.python.security.TaintTracking
|
||||
import semmle.python.dataflow.Implementation
|
||||
import semmle.python.security.strings.External
|
||||
import HttpConstants
|
||||
|
||||
|
@ -16,7 +16,7 @@ class WsgiEnvironment extends TaintKind {
|
|||
WsgiEnvironment() { this = "wsgi.environment" }
|
||||
|
||||
override TaintKind getTaintForFlowStep(ControlFlowNode fromnode, ControlFlowNode tonode) {
|
||||
result = this and TaintFlowImplementation::copyCall(fromnode, tonode)
|
||||
result = this and Implementation::copyCall(fromnode, tonode)
|
||||
or
|
||||
result = this and
|
||||
tonode.(CallNode).getFunction().refersTo(theDictType()) and
|
||||
|
|
|
@ -1,37 +1,234 @@
|
|||
edges
|
||||
| carrier.py:21:5:21:5 | explicit.carrier at carrier.py:21 | carrier.py:22:10:22:10 | explicit.carrier at carrier.py:22 |
|
||||
| carrier.py:21:9:21:28 | explicit.carrier at carrier.py:21 | carrier.py:21:5:21:5 | explicit.carrier at carrier.py:21 |
|
||||
| carrier.py:22:10:22:10 | explicit.carrier at carrier.py:22 | carrier.py:22:10:22:22 | simple.test at carrier.py:22 |
|
||||
| rockpaperscissors.py:24:5:24:5 | rock at rockpaperscissors.py:24 | rockpaperscissors.py:25:9:25:9 | rock at rockpaperscissors.py:25 |
|
||||
| rockpaperscissors.py:24:9:24:12 | rock at rockpaperscissors.py:24 | rockpaperscissors.py:24:5:24:5 | rock at rockpaperscissors.py:24 |
|
||||
| rockpaperscissors.py:25:5:25:5 | paper at rockpaperscissors.py:25 | rockpaperscissors.py:26:14:26:14 | paper at rockpaperscissors.py:26 |
|
||||
| rockpaperscissors.py:25:9:25:9 | rock at rockpaperscissors.py:25 | rockpaperscissors.py:25:9:25:16 | scissors at rockpaperscissors.py:25 |
|
||||
| rockpaperscissors.py:25:9:25:16 | scissors at rockpaperscissors.py:25 | rockpaperscissors.py:25:9:25:23 | paper at rockpaperscissors.py:25 |
|
||||
| rockpaperscissors.py:25:9:25:23 | paper at rockpaperscissors.py:25 | rockpaperscissors.py:25:5:25:5 | paper at rockpaperscissors.py:25 |
|
||||
| test.py:6:5:6:5 | simple.test at test.py:6 | test.py:7:10:7:10 | simple.test at test.py:7 |
|
||||
| test.py:6:9:6:14 | simple.test at test.py:6 | test.py:6:5:6:5 | simple.test at test.py:6 |
|
||||
| test.py:12:10:12:12 | simple.test at test.py:12 | test.py:13:10:13:12 | simple.test at test.py:13 |
|
||||
| test.py:20:5:20:5 | simple.test at test.py:20 | test.py:21:10:21:10 | simple.test at test.py:21 |
|
||||
| test.py:20:9:20:14 | simple.test at test.py:20 | test.py:20:5:20:5 | simple.test at test.py:20 |
|
||||
| test.py:21:10:21:10 | simple.test at test.py:21 | test.py:12:10:12:12 | simple.test at test.py:12 |
|
||||
| test.py:37:9:37:9 | simple.test at test.py:37 | test.py:41:14:41:14 | simple.test at test.py:41 |
|
||||
| test.py:37:13:37:18 | simple.test at test.py:37 | test.py:37:9:37:9 | simple.test at test.py:37 |
|
||||
| test.py:49:17:49:19 | simple.test at test.py:49 | test.py:51:14:51:16 | simple.test at test.py:51 |
|
||||
| test.py:51:14:51:16 | simple.test at test.py:51 | test.py:12:10:12:12 | simple.test at test.py:12 |
|
||||
| test.py:62:9:62:9 | simple.test at test.py:62 | test.py:63:5:63:9 | simple.test at test.py:63 |
|
||||
| test.py:62:13:62:18 | simple.test at test.py:62 | test.py:62:9:62:9 | simple.test at test.py:62 |
|
||||
| test.py:63:5:63:9 | simple.test at test.py:63 | test.py:63:17:63:17 | simple.test at test.py:63 |
|
||||
| test.py:63:17:63:17 | simple.test at test.py:63 | test.py:49:17:49:19 | simple.test at test.py:49 |
|
||||
| test.py:67:9:67:9 | simple.test at test.py:67 | test.py:70:5:70:9 | simple.test at test.py:70 |
|
||||
| test.py:67:13:67:18 | simple.test at test.py:67 | test.py:67:9:67:9 | simple.test at test.py:67 |
|
||||
| test.py:70:5:70:9 | simple.test at test.py:70 | test.py:70:17:70:17 | simple.test at test.py:70 |
|
||||
| test.py:70:17:70:17 | simple.test at test.py:70 | test.py:49:17:49:19 | simple.test at test.py:49 |
|
||||
| test.py:126:9:126:9 | simple.test at test.py:126 | test.py:130:21:130:21 | simple.test at test.py:130 |
|
||||
| test.py:126:13:126:25 | simple.test at test.py:126 | test.py:126:9:126:9 | simple.test at test.py:126 |
|
||||
| test.py:128:9:128:9 | simple.test at test.py:128 | test.py:132:14:132:14 | simple.test at test.py:132 |
|
||||
| test.py:128:13:128:18 | simple.test at test.py:128 | test.py:128:9:128:9 | simple.test at test.py:128 |
|
||||
| carrier.py:13:9:13:11 | explicit.carrier | carrier.py:14:12:14:14 | explicit.carrier |
|
||||
| carrier.py:14:12:14:14 | explicit.carrier | carrier.py:29:9:29:33 | explicit.carrier |
|
||||
| carrier.py:21:9:21:28 | explicit.carrier | carrier.py:22:10:22:10 | explicit.carrier |
|
||||
| carrier.py:22:10:22:10 | explicit.carrier | carrier.py:22:10:22:22 | simple.test |
|
||||
| carrier.py:29:9:29:33 | explicit.carrier | carrier.py:30:10:30:10 | explicit.carrier |
|
||||
| carrier.py:29:13:29:32 | explicit.carrier | carrier.py:13:9:13:11 | explicit.carrier |
|
||||
| carrier.py:30:10:30:10 | explicit.carrier | carrier.py:30:10:30:22 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:6:12:6:18 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:9:12:9:18 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:12:12:12:18 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:15:12:15:18 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:14:8:14:10 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:18:12:18:18 | simple.test |
|
||||
| deep.py:15:15:15:17 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:17:8:17:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:20:5:20:14 | simple.test |
|
||||
| deep.py:18:15:18:17 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:20:5:20:14 | simple.test | deep.py:22:6:22:6 | simple.test |
|
||||
| deep.py:20:8:20:13 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| rockpaperscissors.py:24:9:24:12 | rock | rockpaperscissors.py:25:9:25:9 | rock |
|
||||
| rockpaperscissors.py:25:9:25:9 | rock | rockpaperscissors.py:25:9:25:16 | scissors |
|
||||
| rockpaperscissors.py:25:9:25:16 | scissors | rockpaperscissors.py:25:9:25:23 | paper |
|
||||
| rockpaperscissors.py:25:9:25:23 | paper | rockpaperscissors.py:26:14:26:14 | paper |
|
||||
| test.py:6:9:6:14 | simple.test | test.py:7:10:7:10 | simple.test |
|
||||
| test.py:12:10:12:12 | simple.test | test.py:13:10:13:12 | simple.test |
|
||||
| test.py:20:9:20:14 | simple.test | test.py:21:10:21:10 | simple.test |
|
||||
| test.py:21:10:21:10 | simple.test | test.py:12:10:12:12 | simple.test |
|
||||
| test.py:37:13:37:18 | simple.test | test.py:41:14:41:14 | simple.test |
|
||||
| test.py:49:17:49:19 | simple.test | test.py:51:14:51:16 | simple.test |
|
||||
| test.py:51:14:51:16 | simple.test | test.py:12:10:12:12 | simple.test |
|
||||
| test.py:62:13:62:18 | simple.test | test.py:63:17:63:17 | simple.test |
|
||||
| test.py:63:17:63:17 | simple.test | test.py:49:17:49:19 | simple.test |
|
||||
| test.py:67:13:67:18 | simple.test | test.py:70:17:70:17 | simple.test |
|
||||
| test.py:70:17:70:17 | simple.test | test.py:49:17:49:19 | simple.test |
|
||||
| test.py:72:9:72:11 | simple.test | test.py:73:12:73:14 | simple.test |
|
||||
| test.py:73:12:73:14 | simple.test | test.py:77:9:77:14 | simple.test |
|
||||
| test.py:76:9:76:14 | simple.test | test.py:77:13:77:13 | simple.test |
|
||||
| test.py:77:9:77:14 | simple.test | test.py:78:10:78:10 | simple.test |
|
||||
| test.py:77:13:77:13 | simple.test | test.py:72:9:72:11 | simple.test |
|
||||
| test.py:126:13:126:25 | simple.test | test.py:130:21:130:21 | simple.test |
|
||||
| test.py:128:13:128:18 | simple.test | test.py:132:14:132:14 | simple.test |
|
||||
| test.py:163:9:163:14 | simple.test | test.py:165:10:165:10 | simple.test |
|
||||
| test.py:178:9:178:14 | simple.test | test.py:180:14:180:14 | simple.test |
|
||||
| test.py:178:9:178:14 | simple.test | test.py:186:14:186:14 | simple.test |
|
||||
| test.py:195:9:195:14 | simple.test | test.py:199:14:199:14 | simple.test |
|
||||
| test.py:208:11:208:18 | sequence of simple.test | test.py:209:14:209:16 | sequence of simple.test |
|
||||
| test.py:208:12:208:17 | simple.test | test.py:208:11:208:18 | sequence of simple.test |
|
||||
| test.py:209:5:209:17 | simple.test | test.py:210:15:210:15 | simple.test |
|
||||
| test.py:209:14:209:16 | sequence of simple.test | test.py:209:5:209:17 | simple.test |
|
||||
| test.py:210:15:210:15 | simple.test | test.py:213:14:213:32 | iterable.simple |
|
||||
| test.py:210:15:210:15 | simple.test | test.py:213:14:213:32 | sequence of simple.test |
|
||||
| test.py:213:5:213:33 | simple.test | test.py:214:14:214:14 | simple.test |
|
||||
| test.py:213:14:213:32 | iterable.simple | test.py:213:5:213:33 | simple.test |
|
||||
| test.py:213:14:213:32 | sequence of simple.test | test.py:213:5:213:33 | simple.test |
|
||||
parents
|
||||
| carrier.py:13:9:13:11 | explicit.carrier | carrier.py:29:13:29:32 | explicit.carrier |
|
||||
| carrier.py:14:12:14:14 | explicit.carrier | carrier.py:29:13:29:32 | explicit.carrier |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:6:12:6:18 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:6:12:6:18 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:9:12:9:18 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:14:8:14:10 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:14:8:14:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:14:8:14:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:6:12:6:18 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:9:12:9:18 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:12:12:12:18 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:15:15:15:17 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:15:15:15:17 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:15:15:15:17 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:15:15:15:17 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:17:8:17:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:6:12:6:18 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:9:12:9:18 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:12:12:12:18 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:15:12:15:18 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:18:15:18:17 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:18:15:18:17 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| test.py:12:10:12:12 | simple.test | test.py:21:10:21:10 | simple.test |
|
||||
| test.py:12:10:12:12 | simple.test | test.py:51:14:51:16 | simple.test |
|
||||
| test.py:13:10:13:12 | simple.test | test.py:12:10:12:12 | simple.test |
|
||||
| test.py:13:10:13:12 | simple.test | test.py:21:10:21:10 | simple.test |
|
||||
| test.py:13:10:13:12 | simple.test | test.py:51:14:51:16 | simple.test |
|
||||
| test.py:49:17:49:19 | simple.test | test.py:63:17:63:17 | simple.test |
|
||||
| test.py:49:17:49:19 | simple.test | test.py:70:17:70:17 | simple.test |
|
||||
| test.py:51:14:51:16 | simple.test | test.py:63:17:63:17 | simple.test |
|
||||
| test.py:51:14:51:16 | simple.test | test.py:70:17:70:17 | simple.test |
|
||||
| test.py:72:9:72:11 | simple.test | test.py:77:13:77:13 | simple.test |
|
||||
| test.py:73:12:73:14 | simple.test | test.py:72:9:72:11 | simple.test |
|
||||
| test.py:73:12:73:14 | simple.test | test.py:77:13:77:13 | simple.test |
|
||||
#select
|
||||
| rockpaperscissors.py:13:10:13:17 | ControlFlowNode for SCISSORS | rockpaperscissors.py:13:10:13:17 | scissors at rockpaperscissors.py:13 | rockpaperscissors.py:13:10:13:17 | scissors at rockpaperscissors.py:13 | $@ looses to $@. | rockpaperscissors.py:13:10:13:17 | ControlFlowNode for SCISSORS | scissors | rockpaperscissors.py:13:10:13:17 | ControlFlowNode for SCISSORS | scissors |
|
||||
| rockpaperscissors.py:16:11:16:14 | ControlFlowNode for ROCK | rockpaperscissors.py:16:11:16:14 | rock at rockpaperscissors.py:16 | rockpaperscissors.py:16:11:16:14 | rock at rockpaperscissors.py:16 | $@ looses to $@. | rockpaperscissors.py:16:11:16:14 | ControlFlowNode for ROCK | rock | rockpaperscissors.py:16:11:16:14 | ControlFlowNode for ROCK | rock |
|
||||
| rockpaperscissors.py:26:14:26:14 | ControlFlowNode for y | rockpaperscissors.py:24:9:24:12 | rock at rockpaperscissors.py:24 | rockpaperscissors.py:26:14:26:14 | paper at rockpaperscissors.py:26 | $@ looses to $@. | rockpaperscissors.py:24:9:24:12 | ControlFlowNode for ROCK | rock | rockpaperscissors.py:26:14:26:14 | ControlFlowNode for y | paper |
|
||||
| rockpaperscissors.py:13:10:13:17 | ControlFlowNode for SCISSORS | rockpaperscissors.py:13:10:13:17 | scissors | rockpaperscissors.py:13:10:13:17 | scissors | $@ looses to $@. | rockpaperscissors.py:13:10:13:17 | ControlFlowNode for SCISSORS | scissors | rockpaperscissors.py:13:10:13:17 | ControlFlowNode for SCISSORS | scissors |
|
||||
| rockpaperscissors.py:16:11:16:14 | ControlFlowNode for ROCK | rockpaperscissors.py:16:11:16:14 | rock | rockpaperscissors.py:16:11:16:14 | rock | $@ looses to $@. | rockpaperscissors.py:16:11:16:14 | ControlFlowNode for ROCK | rock | rockpaperscissors.py:16:11:16:14 | ControlFlowNode for ROCK | rock |
|
||||
| rockpaperscissors.py:26:14:26:14 | ControlFlowNode for y | rockpaperscissors.py:24:9:24:12 | rock | rockpaperscissors.py:26:14:26:14 | paper | $@ looses to $@. | rockpaperscissors.py:24:9:24:12 | ControlFlowNode for ROCK | rock | rockpaperscissors.py:26:14:26:14 | ControlFlowNode for y | paper |
|
||||
|
|
|
@ -1,76 +1,245 @@
|
|||
edges
|
||||
| carrier.py:13:9:13:11 | explicit.carrier at carrier.py:13 | carrier.py:14:12:14:14 | explicit.carrier at carrier.py:14 |
|
||||
| carrier.py:14:12:14:14 | explicit.carrier at carrier.py:14 | carrier.py:29:9:29:33 | explicit.carrier at carrier.py:29 |
|
||||
| carrier.py:21:5:21:5 | explicit.carrier at carrier.py:21 | carrier.py:22:10:22:10 | explicit.carrier at carrier.py:22 |
|
||||
| carrier.py:21:9:21:28 | explicit.carrier at carrier.py:21 | carrier.py:21:5:21:5 | explicit.carrier at carrier.py:21 |
|
||||
| carrier.py:22:10:22:10 | explicit.carrier at carrier.py:22 | carrier.py:22:10:22:22 | simple.test at carrier.py:22 |
|
||||
| carrier.py:29:5:29:5 | explicit.carrier at carrier.py:29 | carrier.py:30:10:30:10 | explicit.carrier at carrier.py:30 |
|
||||
| carrier.py:29:9:29:33 | explicit.carrier at carrier.py:29 | carrier.py:29:5:29:5 | explicit.carrier at carrier.py:29 |
|
||||
| carrier.py:29:13:29:32 | explicit.carrier at carrier.py:29 | carrier.py:13:9:13:11 | explicit.carrier at carrier.py:13 |
|
||||
| carrier.py:30:10:30:10 | explicit.carrier at carrier.py:30 | carrier.py:30:10:30:22 | simple.test at carrier.py:30 |
|
||||
| deep.py:2:8:2:10 | simple.test at deep.py:2 | deep.py:3:12:3:14 | simple.test at deep.py:3 |
|
||||
| deep.py:3:12:3:14 | simple.test at deep.py:3 | deep.py:6:12:6:18 | simple.test at deep.py:6 |
|
||||
| deep.py:5:8:5:10 | simple.test at deep.py:5 | deep.py:6:15:6:17 | simple.test at deep.py:6 |
|
||||
| deep.py:6:12:6:18 | simple.test at deep.py:6 | deep.py:9:12:9:18 | simple.test at deep.py:9 |
|
||||
| deep.py:6:15:6:17 | simple.test at deep.py:6 | deep.py:2:8:2:10 | simple.test at deep.py:2 |
|
||||
| deep.py:8:8:8:10 | simple.test at deep.py:8 | deep.py:9:15:9:17 | simple.test at deep.py:9 |
|
||||
| deep.py:9:12:9:18 | simple.test at deep.py:9 | deep.py:12:12:12:18 | simple.test at deep.py:12 |
|
||||
| deep.py:9:15:9:17 | simple.test at deep.py:9 | deep.py:5:8:5:10 | simple.test at deep.py:5 |
|
||||
| deep.py:11:8:11:10 | simple.test at deep.py:11 | deep.py:12:15:12:17 | simple.test at deep.py:12 |
|
||||
| deep.py:12:12:12:18 | simple.test at deep.py:12 | deep.py:15:12:15:18 | simple.test at deep.py:15 |
|
||||
| deep.py:12:15:12:17 | simple.test at deep.py:12 | deep.py:8:8:8:10 | simple.test at deep.py:8 |
|
||||
| deep.py:14:8:14:10 | simple.test at deep.py:14 | deep.py:15:15:15:17 | simple.test at deep.py:15 |
|
||||
| deep.py:15:12:15:18 | simple.test at deep.py:15 | deep.py:18:12:18:18 | simple.test at deep.py:18 |
|
||||
| deep.py:15:15:15:17 | simple.test at deep.py:15 | deep.py:11:8:11:10 | simple.test at deep.py:11 |
|
||||
| deep.py:17:8:17:10 | simple.test at deep.py:17 | deep.py:18:15:18:17 | simple.test at deep.py:18 |
|
||||
| deep.py:18:12:18:18 | simple.test at deep.py:18 | deep.py:20:5:20:14 | simple.test at deep.py:20 |
|
||||
| deep.py:18:15:18:17 | simple.test at deep.py:18 | deep.py:14:8:14:10 | simple.test at deep.py:14 |
|
||||
| deep.py:20:1:20:1 | simple.test at deep.py:20 | deep.py:22:6:22:6 | simple.test at deep.py:22 |
|
||||
| deep.py:20:5:20:14 | simple.test at deep.py:20 | deep.py:20:1:20:1 | simple.test at deep.py:20 |
|
||||
| deep.py:20:8:20:13 | simple.test at deep.py:20 | deep.py:17:8:17:10 | simple.test at deep.py:17 |
|
||||
| rockpaperscissors.py:24:5:24:5 | rock at rockpaperscissors.py:24 | rockpaperscissors.py:25:9:25:9 | rock at rockpaperscissors.py:25 |
|
||||
| rockpaperscissors.py:24:9:24:12 | rock at rockpaperscissors.py:24 | rockpaperscissors.py:24:5:24:5 | rock at rockpaperscissors.py:24 |
|
||||
| rockpaperscissors.py:25:5:25:5 | paper at rockpaperscissors.py:25 | rockpaperscissors.py:26:14:26:14 | paper at rockpaperscissors.py:26 |
|
||||
| rockpaperscissors.py:25:9:25:9 | rock at rockpaperscissors.py:25 | rockpaperscissors.py:25:9:25:16 | scissors at rockpaperscissors.py:25 |
|
||||
| rockpaperscissors.py:25:9:25:16 | scissors at rockpaperscissors.py:25 | rockpaperscissors.py:25:9:25:23 | paper at rockpaperscissors.py:25 |
|
||||
| rockpaperscissors.py:25:9:25:23 | paper at rockpaperscissors.py:25 | rockpaperscissors.py:25:5:25:5 | paper at rockpaperscissors.py:25 |
|
||||
| test.py:6:5:6:5 | simple.test at test.py:6 | test.py:7:10:7:10 | simple.test at test.py:7 |
|
||||
| test.py:6:9:6:14 | simple.test at test.py:6 | test.py:6:5:6:5 | simple.test at test.py:6 |
|
||||
| test.py:12:10:12:12 | simple.test at test.py:12 | test.py:13:10:13:12 | simple.test at test.py:13 |
|
||||
| test.py:20:5:20:5 | simple.test at test.py:20 | test.py:21:10:21:10 | simple.test at test.py:21 |
|
||||
| test.py:20:9:20:14 | simple.test at test.py:20 | test.py:20:5:20:5 | simple.test at test.py:20 |
|
||||
| test.py:21:10:21:10 | simple.test at test.py:21 | test.py:12:10:12:12 | simple.test at test.py:12 |
|
||||
| test.py:37:9:37:9 | simple.test at test.py:37 | test.py:41:14:41:14 | simple.test at test.py:41 |
|
||||
| test.py:37:13:37:18 | simple.test at test.py:37 | test.py:37:9:37:9 | simple.test at test.py:37 |
|
||||
| test.py:49:17:49:19 | simple.test at test.py:49 | test.py:51:14:51:16 | simple.test at test.py:51 |
|
||||
| test.py:51:14:51:16 | simple.test at test.py:51 | test.py:12:10:12:12 | simple.test at test.py:12 |
|
||||
| test.py:62:9:62:9 | simple.test at test.py:62 | test.py:63:5:63:9 | simple.test at test.py:63 |
|
||||
| test.py:62:13:62:18 | simple.test at test.py:62 | test.py:62:9:62:9 | simple.test at test.py:62 |
|
||||
| test.py:63:5:63:9 | simple.test at test.py:63 | test.py:63:17:63:17 | simple.test at test.py:63 |
|
||||
| test.py:63:17:63:17 | simple.test at test.py:63 | test.py:49:17:49:19 | simple.test at test.py:49 |
|
||||
| test.py:67:9:67:9 | simple.test at test.py:67 | test.py:70:5:70:9 | simple.test at test.py:70 |
|
||||
| test.py:67:13:67:18 | simple.test at test.py:67 | test.py:67:9:67:9 | simple.test at test.py:67 |
|
||||
| test.py:70:5:70:9 | simple.test at test.py:70 | test.py:70:17:70:17 | simple.test at test.py:70 |
|
||||
| test.py:70:17:70:17 | simple.test at test.py:70 | test.py:49:17:49:19 | simple.test at test.py:49 |
|
||||
| test.py:72:9:72:11 | simple.test at test.py:72 | test.py:73:12:73:14 | simple.test at test.py:73 |
|
||||
| test.py:73:12:73:14 | simple.test at test.py:73 | test.py:77:9:77:14 | simple.test at test.py:77 |
|
||||
| test.py:76:5:76:5 | simple.test at test.py:76 | test.py:77:13:77:13 | simple.test at test.py:77 |
|
||||
| test.py:76:9:76:14 | simple.test at test.py:76 | test.py:76:5:76:5 | simple.test at test.py:76 |
|
||||
| test.py:77:5:77:5 | simple.test at test.py:77 | test.py:78:10:78:10 | simple.test at test.py:78 |
|
||||
| test.py:77:9:77:14 | simple.test at test.py:77 | test.py:77:5:77:5 | simple.test at test.py:77 |
|
||||
| test.py:77:13:77:13 | simple.test at test.py:77 | test.py:72:9:72:11 | simple.test at test.py:72 |
|
||||
| test.py:126:9:126:9 | simple.test at test.py:126 | test.py:130:21:130:21 | simple.test at test.py:130 |
|
||||
| test.py:126:13:126:25 | simple.test at test.py:126 | test.py:126:9:126:9 | simple.test at test.py:126 |
|
||||
| test.py:128:9:128:9 | simple.test at test.py:128 | test.py:132:14:132:14 | simple.test at test.py:132 |
|
||||
| test.py:128:13:128:18 | simple.test at test.py:128 | test.py:128:9:128:9 | simple.test at test.py:128 |
|
||||
| carrier.py:13:9:13:11 | explicit.carrier | carrier.py:14:12:14:14 | explicit.carrier |
|
||||
| carrier.py:14:12:14:14 | explicit.carrier | carrier.py:29:9:29:33 | explicit.carrier |
|
||||
| carrier.py:21:9:21:28 | explicit.carrier | carrier.py:22:10:22:10 | explicit.carrier |
|
||||
| carrier.py:22:10:22:10 | explicit.carrier | carrier.py:22:10:22:22 | simple.test |
|
||||
| carrier.py:29:9:29:33 | explicit.carrier | carrier.py:30:10:30:10 | explicit.carrier |
|
||||
| carrier.py:29:13:29:32 | explicit.carrier | carrier.py:13:9:13:11 | explicit.carrier |
|
||||
| carrier.py:30:10:30:10 | explicit.carrier | carrier.py:30:10:30:22 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:6:12:6:18 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:9:12:9:18 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:12:12:12:18 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:15:12:15:18 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:14:8:14:10 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:18:12:18:18 | simple.test |
|
||||
| deep.py:15:15:15:17 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:17:8:17:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:20:5:20:14 | simple.test |
|
||||
| deep.py:18:15:18:17 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:20:5:20:14 | simple.test | deep.py:22:6:22:6 | simple.test |
|
||||
| deep.py:20:8:20:13 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| rockpaperscissors.py:24:9:24:12 | rock | rockpaperscissors.py:25:9:25:9 | rock |
|
||||
| rockpaperscissors.py:25:9:25:9 | rock | rockpaperscissors.py:25:9:25:16 | scissors |
|
||||
| rockpaperscissors.py:25:9:25:16 | scissors | rockpaperscissors.py:25:9:25:23 | paper |
|
||||
| rockpaperscissors.py:25:9:25:23 | paper | rockpaperscissors.py:26:14:26:14 | paper |
|
||||
| test.py:6:9:6:14 | simple.test | test.py:7:10:7:10 | simple.test |
|
||||
| test.py:12:10:12:12 | simple.test | test.py:13:10:13:12 | simple.test |
|
||||
| test.py:20:9:20:14 | simple.test | test.py:21:10:21:10 | simple.test |
|
||||
| test.py:21:10:21:10 | simple.test | test.py:12:10:12:12 | simple.test |
|
||||
| test.py:37:13:37:18 | simple.test | test.py:41:14:41:14 | simple.test |
|
||||
| test.py:49:17:49:19 | simple.test | test.py:51:14:51:16 | simple.test |
|
||||
| test.py:51:14:51:16 | simple.test | test.py:12:10:12:12 | simple.test |
|
||||
| test.py:62:13:62:18 | simple.test | test.py:63:17:63:17 | simple.test |
|
||||
| test.py:63:17:63:17 | simple.test | test.py:49:17:49:19 | simple.test |
|
||||
| test.py:67:13:67:18 | simple.test | test.py:70:17:70:17 | simple.test |
|
||||
| test.py:70:17:70:17 | simple.test | test.py:49:17:49:19 | simple.test |
|
||||
| test.py:72:9:72:11 | simple.test | test.py:73:12:73:14 | simple.test |
|
||||
| test.py:73:12:73:14 | simple.test | test.py:77:9:77:14 | simple.test |
|
||||
| test.py:76:9:76:14 | simple.test | test.py:77:13:77:13 | simple.test |
|
||||
| test.py:77:9:77:14 | simple.test | test.py:78:10:78:10 | simple.test |
|
||||
| test.py:77:13:77:13 | simple.test | test.py:72:9:72:11 | simple.test |
|
||||
| test.py:126:13:126:25 | simple.test | test.py:130:21:130:21 | simple.test |
|
||||
| test.py:128:13:128:18 | simple.test | test.py:132:14:132:14 | simple.test |
|
||||
| test.py:163:9:163:14 | simple.test | test.py:165:10:165:10 | simple.test |
|
||||
| test.py:178:9:178:14 | simple.test | test.py:180:14:180:14 | simple.test |
|
||||
| test.py:178:9:178:14 | simple.test | test.py:186:14:186:14 | simple.test |
|
||||
| test.py:195:9:195:14 | simple.test | test.py:199:14:199:14 | simple.test |
|
||||
| test.py:208:11:208:18 | sequence of simple.test | test.py:209:14:209:16 | sequence of simple.test |
|
||||
| test.py:208:12:208:17 | simple.test | test.py:208:11:208:18 | sequence of simple.test |
|
||||
| test.py:209:5:209:17 | simple.test | test.py:210:15:210:15 | simple.test |
|
||||
| test.py:209:14:209:16 | sequence of simple.test | test.py:209:5:209:17 | simple.test |
|
||||
| test.py:210:15:210:15 | simple.test | test.py:213:14:213:32 | iterable.simple |
|
||||
| test.py:210:15:210:15 | simple.test | test.py:213:14:213:32 | sequence of simple.test |
|
||||
| test.py:213:5:213:33 | simple.test | test.py:214:14:214:14 | simple.test |
|
||||
| test.py:213:14:213:32 | iterable.simple | test.py:213:5:213:33 | simple.test |
|
||||
| test.py:213:14:213:32 | sequence of simple.test | test.py:213:5:213:33 | simple.test |
|
||||
parents
|
||||
| carrier.py:13:9:13:11 | explicit.carrier | carrier.py:29:13:29:32 | explicit.carrier |
|
||||
| carrier.py:14:12:14:14 | explicit.carrier | carrier.py:29:13:29:32 | explicit.carrier |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:2:8:2:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:3:12:3:14 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:5:8:5:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:6:12:6:18 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:6:15:6:17 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:8:8:8:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:6:12:6:18 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:9:12:9:18 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:9:15:9:17 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:11:8:11:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:6:12:6:18 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:9:12:9:18 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:12:12:12:18 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:12:15:12:17 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:14:8:14:10 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:14:8:14:10 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:14:8:14:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:6:12:6:18 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:9:12:9:18 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:12:12:12:18 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:15:12:15:18 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:15:15:15:17 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:15:15:15:17 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:15:15:15:17 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:15:15:15:17 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:17:8:17:10 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:2:8:2:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:3:12:3:14 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:5:8:5:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:6:12:6:18 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:6:15:6:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:8:8:8:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:9:12:9:18 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:9:15:9:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:11:8:11:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:12:12:12:18 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:12:15:12:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:14:8:14:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:15:12:15:18 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:15:15:15:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:18:15:18:17 | simple.test |
|
||||
| deep.py:18:12:18:18 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| deep.py:18:15:18:17 | simple.test | deep.py:17:8:17:10 | simple.test |
|
||||
| deep.py:18:15:18:17 | simple.test | deep.py:20:8:20:13 | simple.test |
|
||||
| test.py:12:10:12:12 | simple.test | test.py:21:10:21:10 | simple.test |
|
||||
| test.py:12:10:12:12 | simple.test | test.py:51:14:51:16 | simple.test |
|
||||
| test.py:13:10:13:12 | simple.test | test.py:12:10:12:12 | simple.test |
|
||||
| test.py:13:10:13:12 | simple.test | test.py:21:10:21:10 | simple.test |
|
||||
| test.py:13:10:13:12 | simple.test | test.py:51:14:51:16 | simple.test |
|
||||
| test.py:49:17:49:19 | simple.test | test.py:63:17:63:17 | simple.test |
|
||||
| test.py:49:17:49:19 | simple.test | test.py:70:17:70:17 | simple.test |
|
||||
| test.py:51:14:51:16 | simple.test | test.py:63:17:63:17 | simple.test |
|
||||
| test.py:51:14:51:16 | simple.test | test.py:70:17:70:17 | simple.test |
|
||||
| test.py:72:9:72:11 | simple.test | test.py:77:13:77:13 | simple.test |
|
||||
| test.py:73:12:73:14 | simple.test | test.py:72:9:72:11 | simple.test |
|
||||
| test.py:73:12:73:14 | simple.test | test.py:77:13:77:13 | simple.test |
|
||||
#select
|
||||
| deep.py:22:6:22:6 | ControlFlowNode for x | deep.py:20:8:20:13 | simple.test at deep.py:20 | deep.py:22:6:22:6 | simple.test at deep.py:22 | $@ flows to $@. | deep.py:20:8:20:13 | ControlFlowNode for SOURCE | simple.test | deep.py:22:6:22:6 | ControlFlowNode for x | simple.test |
|
||||
| test.py:3:10:3:15 | ControlFlowNode for SOURCE | test.py:3:10:3:15 | simple.test at test.py:3 | test.py:3:10:3:15 | simple.test at test.py:3 | $@ flows to $@. | test.py:3:10:3:15 | ControlFlowNode for SOURCE | simple.test | test.py:3:10:3:15 | ControlFlowNode for SOURCE | simple.test |
|
||||
| test.py:7:10:7:10 | ControlFlowNode for s | test.py:6:9:6:14 | simple.test at test.py:6 | test.py:7:10:7:10 | simple.test at test.py:7 | $@ flows to $@. | test.py:6:9:6:14 | ControlFlowNode for SOURCE | simple.test | test.py:7:10:7:10 | ControlFlowNode for s | simple.test |
|
||||
| test.py:13:10:13:12 | ControlFlowNode for arg | test.py:20:9:20:14 | simple.test at test.py:20 | test.py:13:10:13:12 | simple.test at test.py:13 | $@ flows to $@. | test.py:20:9:20:14 | ControlFlowNode for SOURCE | simple.test | test.py:13:10:13:12 | ControlFlowNode for arg | simple.test |
|
||||
| test.py:13:10:13:12 | ControlFlowNode for arg | test.py:62:13:62:18 | simple.test at test.py:62 | test.py:13:10:13:12 | simple.test at test.py:13 | $@ flows to $@. | test.py:62:13:62:18 | ControlFlowNode for SOURCE | simple.test | test.py:13:10:13:12 | ControlFlowNode for arg | simple.test |
|
||||
| test.py:13:10:13:12 | ControlFlowNode for arg | test.py:67:13:67:18 | simple.test at test.py:67 | test.py:13:10:13:12 | simple.test at test.py:13 | $@ flows to $@. | test.py:67:13:67:18 | ControlFlowNode for SOURCE | simple.test | test.py:13:10:13:12 | ControlFlowNode for arg | simple.test |
|
||||
| test.py:41:14:41:14 | ControlFlowNode for t | test.py:37:13:37:18 | simple.test at test.py:37 | test.py:41:14:41:14 | simple.test at test.py:41 | $@ flows to $@. | test.py:37:13:37:18 | ControlFlowNode for SOURCE | simple.test | test.py:41:14:41:14 | ControlFlowNode for t | simple.test |
|
||||
| test.py:78:10:78:10 | ControlFlowNode for t | test.py:76:9:76:14 | simple.test at test.py:76 | test.py:78:10:78:10 | simple.test at test.py:78 | $@ flows to $@. | test.py:76:9:76:14 | ControlFlowNode for SOURCE | simple.test | test.py:78:10:78:10 | ControlFlowNode for t | simple.test |
|
||||
| test.py:132:14:132:14 | ControlFlowNode for t | test.py:128:13:128:18 | simple.test at test.py:128 | test.py:132:14:132:14 | simple.test at test.py:132 | $@ flows to $@. | test.py:128:13:128:18 | ControlFlowNode for SOURCE | simple.test | test.py:132:14:132:14 | ControlFlowNode for t | simple.test |
|
||||
| deep.py:22:6:22:6 | ControlFlowNode for x | deep.py:20:8:20:13 | simple.test | deep.py:22:6:22:6 | simple.test | $@ flows to $@. | deep.py:20:8:20:13 | ControlFlowNode for SOURCE | simple.test | deep.py:22:6:22:6 | ControlFlowNode for x | simple.test |
|
||||
| test.py:3:10:3:15 | ControlFlowNode for SOURCE | test.py:3:10:3:15 | simple.test | test.py:3:10:3:15 | simple.test | $@ flows to $@. | test.py:3:10:3:15 | ControlFlowNode for SOURCE | simple.test | test.py:3:10:3:15 | ControlFlowNode for SOURCE | simple.test |
|
||||
| test.py:7:10:7:10 | ControlFlowNode for s | test.py:6:9:6:14 | simple.test | test.py:7:10:7:10 | simple.test | $@ flows to $@. | test.py:6:9:6:14 | ControlFlowNode for SOURCE | simple.test | test.py:7:10:7:10 | ControlFlowNode for s | simple.test |
|
||||
| test.py:13:10:13:12 | ControlFlowNode for arg | test.py:20:9:20:14 | simple.test | test.py:13:10:13:12 | simple.test | $@ flows to $@. | test.py:20:9:20:14 | ControlFlowNode for SOURCE | simple.test | test.py:13:10:13:12 | ControlFlowNode for arg | simple.test |
|
||||
| test.py:13:10:13:12 | ControlFlowNode for arg | test.py:62:13:62:18 | simple.test | test.py:13:10:13:12 | simple.test | $@ flows to $@. | test.py:62:13:62:18 | ControlFlowNode for SOURCE | simple.test | test.py:13:10:13:12 | ControlFlowNode for arg | simple.test |
|
||||
| test.py:13:10:13:12 | ControlFlowNode for arg | test.py:67:13:67:18 | simple.test | test.py:13:10:13:12 | simple.test | $@ flows to $@. | test.py:67:13:67:18 | ControlFlowNode for SOURCE | simple.test | test.py:13:10:13:12 | ControlFlowNode for arg | simple.test |
|
||||
| test.py:41:14:41:14 | ControlFlowNode for t | test.py:37:13:37:18 | simple.test | test.py:41:14:41:14 | simple.test | $@ flows to $@. | test.py:37:13:37:18 | ControlFlowNode for SOURCE | simple.test | test.py:41:14:41:14 | ControlFlowNode for t | simple.test |
|
||||
| test.py:78:10:78:10 | ControlFlowNode for t | test.py:76:9:76:14 | simple.test | test.py:78:10:78:10 | simple.test | $@ flows to $@. | test.py:76:9:76:14 | ControlFlowNode for SOURCE | simple.test | test.py:78:10:78:10 | ControlFlowNode for t | simple.test |
|
||||
| test.py:132:14:132:14 | ControlFlowNode for t | test.py:128:13:128:18 | simple.test | test.py:132:14:132:14 | simple.test | $@ flows to $@. | test.py:128:13:128:18 | ControlFlowNode for SOURCE | simple.test | test.py:132:14:132:14 | ControlFlowNode for t | simple.test |
|
||||
| test.py:165:10:165:10 | ControlFlowNode for s | test.py:163:9:163:14 | simple.test | test.py:165:10:165:10 | simple.test | $@ flows to $@. | test.py:163:9:163:14 | ControlFlowNode for SOURCE | simple.test | test.py:165:10:165:10 | ControlFlowNode for s | simple.test |
|
||||
| test.py:180:14:180:14 | ControlFlowNode for t | test.py:178:9:178:14 | simple.test | test.py:180:14:180:14 | simple.test | $@ flows to $@. | test.py:178:9:178:14 | ControlFlowNode for SOURCE | simple.test | test.py:180:14:180:14 | ControlFlowNode for t | simple.test |
|
||||
| test.py:186:14:186:14 | ControlFlowNode for t | test.py:178:9:178:14 | simple.test | test.py:186:14:186:14 | simple.test | $@ flows to $@. | test.py:178:9:178:14 | ControlFlowNode for SOURCE | simple.test | test.py:186:14:186:14 | ControlFlowNode for t | simple.test |
|
||||
| test.py:199:14:199:14 | ControlFlowNode for t | test.py:195:9:195:14 | simple.test | test.py:199:14:199:14 | simple.test | $@ flows to $@. | test.py:195:9:195:14 | ControlFlowNode for SOURCE | simple.test | test.py:199:14:199:14 | ControlFlowNode for t | simple.test |
|
||||
| test.py:214:14:214:14 | ControlFlowNode for x | test.py:208:12:208:17 | simple.test | test.py:214:14:214:14 | simple.test | $@ flows to $@. | test.py:208:12:208:17 | ControlFlowNode for SOURCE | simple.test | test.py:214:14:214:14 | ControlFlowNode for x | simple.test |
|
||||
|
|
|
@ -1 +1,22 @@
|
|||
fail
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:13:10:13:17 | scissors | rockpaperscissors.py:13:5:13:18 | ControlFlowNode for rock() | | rockpaperscissors.py:3:1:3:14 | Function rock | 0 | no attribute | scissors |
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:16:11:16:14 | rock | rockpaperscissors.py:16:5:16:15 | ControlFlowNode for paper() | | rockpaperscissors.py:6:1:6:15 | Function paper | 0 | no attribute | rock |
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:21:14:21:14 | scissors | rockpaperscissors.py:21:5:21:15 | ControlFlowNode for scissors() | | rockpaperscissors.py:9:1:9:18 | Function scissors | 0 | no attribute | scissors |
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:26:14:26:14 | paper | rockpaperscissors.py:26:5:26:15 | ControlFlowNode for scissors() | | rockpaperscissors.py:9:1:9:18 | Function scissors | 0 | no attribute | paper |
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:31:11:31:11 | scissors | rockpaperscissors.py:31:5:31:12 | ControlFlowNode for paper() | | rockpaperscissors.py:6:1:6:15 | Function paper | 0 | no attribute | scissors |
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:32:11:32:11 | paper | rockpaperscissors.py:32:5:32:12 | ControlFlowNode for paper() | | rockpaperscissors.py:6:1:6:15 | Function paper | 0 | no attribute | paper |
|
||||
| Simple config | carrier.py:17:25:17:30 | simple.test | carrier.py:17:9:17:31 | ControlFlowNode for ImplicitCarrier() | | carrier.py:4:5:4:28 | Function ImplicitCarrier.__init__ | 1 | no attribute | simple.test |
|
||||
| Simple config | carrier.py:25:29:25:34 | simple.test | carrier.py:25:13:25:35 | ControlFlowNode for ImplicitCarrier() | | carrier.py:4:5:4:28 | Function ImplicitCarrier.__init__ | 1 | no attribute | simple.test |
|
||||
| Simple config | deep.py:6:15:6:17 | simple.test | deep.py:6:12:6:18 | ControlFlowNode for f1() | Parameter 0(no attribute) is simple.test | deep.py:2:1:2:12 | Function f1 | 0 | no attribute | simple.test |
|
||||
| Simple config | deep.py:9:15:9:17 | simple.test | deep.py:9:12:9:18 | ControlFlowNode for f2() | Parameter 0(no attribute) is simple.test | deep.py:5:1:5:12 | Function f2 | 0 | no attribute | simple.test |
|
||||
| Simple config | deep.py:12:15:12:17 | simple.test | deep.py:12:12:12:18 | ControlFlowNode for f3() | Parameter 0(no attribute) is simple.test | deep.py:8:1:8:12 | Function f3 | 0 | no attribute | simple.test |
|
||||
| Simple config | deep.py:15:15:15:17 | simple.test | deep.py:15:12:15:18 | ControlFlowNode for f4() | Parameter 0(no attribute) is simple.test | deep.py:11:1:11:12 | Function f4 | 0 | no attribute | simple.test |
|
||||
| Simple config | deep.py:18:15:18:17 | simple.test | deep.py:18:12:18:18 | ControlFlowNode for f5() | Parameter 0(no attribute) is simple.test | deep.py:14:1:14:12 | Function f5 | 0 | no attribute | simple.test |
|
||||
| Simple config | deep.py:20:8:20:13 | simple.test | deep.py:20:5:20:14 | ControlFlowNode for f6() | | deep.py:17:1:17:12 | Function f6 | 0 | no attribute | simple.test |
|
||||
| Simple config | test.py:21:10:21:10 | simple.test | test.py:21:5:21:11 | ControlFlowNode for sink() | | test.py:12:1:12:14 | Function sink | 0 | no attribute | simple.test |
|
||||
| Simple config | test.py:51:14:51:16 | simple.test | test.py:51:9:51:17 | ControlFlowNode for sink() | Parameter 1(no attribute) is simple.test | test.py:12:1:12:14 | Function sink | 0 | no attribute | simple.test |
|
||||
| Simple config | test.py:63:17:63:17 | simple.test | test.py:63:5:63:18 | ControlFlowNode for sink3() | | test.py:49:1:49:21 | Function sink3 | 1 | no attribute | simple.test |
|
||||
| Simple config | test.py:70:17:70:17 | simple.test | test.py:70:5:70:18 | ControlFlowNode for sink3() | | test.py:49:1:49:21 | Function sink3 | 1 | no attribute | simple.test |
|
||||
| Simple config | test.py:77:13:77:13 | simple.test | test.py:77:9:77:14 | ControlFlowNode for hub() | | test.py:72:1:72:13 | Function hub | 0 | no attribute | simple.test |
|
||||
| Simple config | test.py:196:19:196:19 | simple.test | test.py:196:8:196:25 | ControlFlowNode for isinstance() | | file://:0:0:0:0 | Builtin-function isinstance | 0 | no attribute | simple.test |
|
||||
| Taint carrier config | carrier.py:29:13:29:32 | explicit.carrier | carrier.py:29:9:29:33 | ControlFlowNode for hub() | | carrier.py:13:1:13:13 | Function hub | 0 | no attribute | explicit.carrier |
|
||||
| Taint carrier config | carrier.py:33:25:33:44 | explicit.carrier | carrier.py:33:9:33:45 | ControlFlowNode for ImplicitCarrier() | | carrier.py:4:5:4:28 | Function ImplicitCarrier.__init__ | 1 | no attribute | explicit.carrier |
|
||||
|
|
|
@ -0,0 +1,278 @@
|
|||
| [simple.test] | test.py:168 | ControlFlowNode for List | no attribute | |
|
||||
| [simple.test] | test.py:168 | SSA variable l | no attribute | |
|
||||
| [simple.test] | test.py:170 | ControlFlowNode for l | no attribute | |
|
||||
| [simple.test] | test.py:170 | SSA variable l | no attribute | |
|
||||
| [simple.test] | test.py:174 | ControlFlowNode for l | no attribute | |
|
||||
| [simple.test] | test.py:174 | ControlFlowNode for list() | no attribute | |
|
||||
| [simple.test] | test.py:174 | SSA variable l | no attribute | |
|
||||
| [simple.test] | test.py:174 | SSA variable l2 | no attribute | |
|
||||
| [simple.test] | test.py:208 | ControlFlowNode for List | no attribute | |
|
||||
| [simple.test] | test.py:208 | SSA variable seq | no attribute | |
|
||||
| [simple.test] | test.py:209 | ControlFlowNode for seq | no attribute | |
|
||||
| [simple.test] | test.py:213 | ControlFlowNode for flow_in_generator() | no attribute | |
|
||||
| explicit.carrier | carrier.py:4 | ControlFlowNode for arg | no attribute | Parameter 1(no attribute) is explicit.carrier |
|
||||
| explicit.carrier | carrier.py:4 | SSA variable arg | no attribute | Parameter 1(no attribute) is explicit.carrier |
|
||||
| explicit.carrier | carrier.py:5 | ControlFlowNode for arg | no attribute | Parameter 1(no attribute) is explicit.carrier |
|
||||
| explicit.carrier | carrier.py:13 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is explicit.carrier |
|
||||
| explicit.carrier | carrier.py:13 | SSA variable arg | no attribute | Parameter 0(no attribute) is explicit.carrier |
|
||||
| explicit.carrier | carrier.py:14 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is explicit.carrier |
|
||||
| explicit.carrier | carrier.py:21 | ControlFlowNode for TAINT_CARRIER_SOURCE | no attribute | |
|
||||
| explicit.carrier | carrier.py:21 | SSA variable c | no attribute | |
|
||||
| explicit.carrier | carrier.py:22 | ControlFlowNode for c | no attribute | |
|
||||
| explicit.carrier | carrier.py:22 | SSA variable c | no attribute | |
|
||||
| explicit.carrier | carrier.py:29 | ControlFlowNode for TAINT_CARRIER_SOURCE | no attribute | |
|
||||
| explicit.carrier | carrier.py:29 | ControlFlowNode for hub() | no attribute | |
|
||||
| explicit.carrier | carrier.py:29 | SSA variable c | no attribute | |
|
||||
| explicit.carrier | carrier.py:30 | ControlFlowNode for c | no attribute | |
|
||||
| explicit.carrier | carrier.py:30 | SSA variable c | no attribute | |
|
||||
| explicit.carrier | carrier.py:33 | ControlFlowNode for TAINT_CARRIER_SOURCE | no attribute | |
|
||||
| iterable.simple | test.py:213 | ControlFlowNode for flow_in_generator() | no attribute | |
|
||||
| paper | rockpaperscissors.py:6 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is paper |
|
||||
| paper | rockpaperscissors.py:6 | SSA variable arg | no attribute | Parameter 0(no attribute) is paper |
|
||||
| paper | rockpaperscissors.py:9 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is paper |
|
||||
| paper | rockpaperscissors.py:9 | SSA variable arg | no attribute | Parameter 0(no attribute) is paper |
|
||||
| paper | rockpaperscissors.py:25 | ControlFlowNode for Attribute() | no attribute | |
|
||||
| paper | rockpaperscissors.py:25 | SSA variable y | no attribute | |
|
||||
| paper | rockpaperscissors.py:26 | ControlFlowNode for y | no attribute | |
|
||||
| paper | rockpaperscissors.py:26 | SSA variable y | no attribute | |
|
||||
| paper | rockpaperscissors.py:30 | ControlFlowNode for Attribute() | no attribute | |
|
||||
| paper | rockpaperscissors.py:30 | SSA variable y | no attribute | |
|
||||
| paper | rockpaperscissors.py:32 | ControlFlowNode for y | no attribute | |
|
||||
| paper | rockpaperscissors.py:32 | SSA variable y | no attribute | |
|
||||
| rock | rockpaperscissors.py:6 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is rock |
|
||||
| rock | rockpaperscissors.py:6 | SSA variable arg | no attribute | Parameter 0(no attribute) is rock |
|
||||
| rock | rockpaperscissors.py:16 | ControlFlowNode for ROCK | no attribute | |
|
||||
| rock | rockpaperscissors.py:19 | ControlFlowNode for ROCK | no attribute | |
|
||||
| rock | rockpaperscissors.py:19 | SSA variable x | no attribute | |
|
||||
| rock | rockpaperscissors.py:20 | ControlFlowNode for x | no attribute | |
|
||||
| rock | rockpaperscissors.py:20 | SSA variable x | no attribute | |
|
||||
| rock | rockpaperscissors.py:24 | ControlFlowNode for ROCK | no attribute | |
|
||||
| rock | rockpaperscissors.py:24 | SSA variable x | no attribute | |
|
||||
| rock | rockpaperscissors.py:25 | ControlFlowNode for x | no attribute | |
|
||||
| rock | rockpaperscissors.py:25 | SSA variable x | no attribute | |
|
||||
| scissors | rockpaperscissors.py:3 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is scissors |
|
||||
| scissors | rockpaperscissors.py:3 | SSA variable arg | no attribute | Parameter 0(no attribute) is scissors |
|
||||
| scissors | rockpaperscissors.py:6 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is scissors |
|
||||
| scissors | rockpaperscissors.py:6 | SSA variable arg | no attribute | Parameter 0(no attribute) is scissors |
|
||||
| scissors | rockpaperscissors.py:9 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is scissors |
|
||||
| scissors | rockpaperscissors.py:9 | SSA variable arg | no attribute | Parameter 0(no attribute) is scissors |
|
||||
| scissors | rockpaperscissors.py:13 | ControlFlowNode for SCISSORS | no attribute | |
|
||||
| scissors | rockpaperscissors.py:20 | ControlFlowNode for Attribute() | no attribute | |
|
||||
| scissors | rockpaperscissors.py:20 | SSA variable y | no attribute | |
|
||||
| scissors | rockpaperscissors.py:21 | ControlFlowNode for y | no attribute | |
|
||||
| scissors | rockpaperscissors.py:21 | SSA variable y | no attribute | |
|
||||
| scissors | rockpaperscissors.py:25 | ControlFlowNode for Attribute() | no attribute | |
|
||||
| scissors | rockpaperscissors.py:29 | ControlFlowNode for SCISSORS | no attribute | |
|
||||
| scissors | rockpaperscissors.py:29 | SSA variable x | no attribute | |
|
||||
| scissors | rockpaperscissors.py:30 | ControlFlowNode for x | no attribute | |
|
||||
| scissors | rockpaperscissors.py:30 | SSA variable x | no attribute | |
|
||||
| scissors | rockpaperscissors.py:31 | ControlFlowNode for x | no attribute | |
|
||||
| scissors | rockpaperscissors.py:31 | SSA variable x | no attribute | |
|
||||
| simple.test | carrier.py:4 | ControlFlowNode for arg | no attribute | Parameter 1(no attribute) is simple.test |
|
||||
| simple.test | carrier.py:4 | SSA variable arg | no attribute | Parameter 1(no attribute) is simple.test |
|
||||
| simple.test | carrier.py:5 | ControlFlowNode for arg | no attribute | Parameter 1(no attribute) is simple.test |
|
||||
| simple.test | carrier.py:17 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | carrier.py:22 | ControlFlowNode for Attribute() | no attribute | |
|
||||
| simple.test | carrier.py:25 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | carrier.py:30 | ControlFlowNode for Attribute() | no attribute | |
|
||||
| simple.test | deep.py:2 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:2 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:3 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:5 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:5 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:6 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:6 | ControlFlowNode for f1() | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:6 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:8 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:8 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:9 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:9 | ControlFlowNode for f2() | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:9 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:11 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:11 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:12 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:12 | ControlFlowNode for f3() | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:12 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:14 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:14 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:15 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:15 | ControlFlowNode for f4() | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:15 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:17 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:17 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:18 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:18 | ControlFlowNode for f5() | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:18 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | deep.py:20 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | deep.py:20 | ControlFlowNode for f6() | no attribute | |
|
||||
| simple.test | deep.py:20 | GSSA Variable x | no attribute | |
|
||||
| simple.test | deep.py:22 | ControlFlowNode for x | no attribute | |
|
||||
| simple.test | deep.py:22 | GSSA Variable x | no attribute | |
|
||||
| simple.test | module.py:3 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | module.py:3 | GSSA Variable dangerous | no attribute | |
|
||||
| simple.test | module.py:7 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | module.py:10 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:3 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:6 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:6 | SSA variable s | no attribute | |
|
||||
| simple.test | test.py:7 | ControlFlowNode for s | no attribute | |
|
||||
| simple.test | test.py:7 | SSA variable s | no attribute | |
|
||||
| simple.test | test.py:10 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:12 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | test.py:12 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | test.py:13 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | test.py:13 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | test.py:20 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:20 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:21 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:21 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:31 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:31 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:37 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:37 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:41 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:41 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:49 | ControlFlowNode for arg | no attribute | Parameter 1(no attribute) is simple.test |
|
||||
| simple.test | test.py:49 | SSA variable arg | no attribute | Parameter 1(no attribute) is simple.test |
|
||||
| simple.test | test.py:51 | ControlFlowNode for arg | no attribute | Parameter 1(no attribute) is simple.test |
|
||||
| simple.test | test.py:51 | SSA variable arg | no attribute | Parameter 1(no attribute) is simple.test |
|
||||
| simple.test | test.py:62 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:62 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:63 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:63 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:67 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:67 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:70 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:70 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:72 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | test.py:72 | SSA variable arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | test.py:73 | ControlFlowNode for arg | no attribute | Parameter 0(no attribute) is simple.test |
|
||||
| simple.test | test.py:76 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:76 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:77 | ControlFlowNode for hub() | no attribute | |
|
||||
| simple.test | test.py:77 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:77 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:78 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:78 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:120 | ControlFlowNode for CUSTOM_SOURCE | no attribute | |
|
||||
| simple.test | test.py:120 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:121 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:126 | ControlFlowNode for CUSTOM_SOURCE | no attribute | |
|
||||
| simple.test | test.py:126 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:128 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:128 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:130 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:130 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:132 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:132 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:136 | ControlFlowNode for CUSTOM_SOURCE | no attribute | |
|
||||
| simple.test | test.py:136 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:138 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:138 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:140 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:140 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:142 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:142 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:146 | ControlFlowNode for CUSTOM_SOURCE | no attribute | |
|
||||
| simple.test | test.py:146 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:148 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:148 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:149 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:159 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:163 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:163 | SSA variable s | no attribute | |
|
||||
| simple.test | test.py:164 | ControlFlowNode for s | no attribute | |
|
||||
| simple.test | test.py:164 | SSA variable s | no attribute | |
|
||||
| simple.test | test.py:165 | ControlFlowNode for s | no attribute | |
|
||||
| simple.test | test.py:165 | SSA variable s | no attribute | |
|
||||
| simple.test | test.py:168 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:169 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:178 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:178 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:179 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:180 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:180 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:183 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:183 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:186 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:186 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:194 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:195 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:195 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:196 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:199 | ControlFlowNode for t | no attribute | |
|
||||
| simple.test | test.py:199 | SSA variable t | no attribute | |
|
||||
| simple.test | test.py:208 | ControlFlowNode for SOURCE | no attribute | |
|
||||
| simple.test | test.py:209 | ControlFlowNode for For | no attribute | |
|
||||
| simple.test | test.py:209 | SSA variable i | no attribute | |
|
||||
| simple.test | test.py:210 | ControlFlowNode for i | no attribute | |
|
||||
| simple.test | test.py:213 | ControlFlowNode for For | no attribute | |
|
||||
| simple.test | test.py:213 | SSA variable x | no attribute | |
|
||||
| simple.test | test.py:214 | ControlFlowNode for x | no attribute | |
|
||||
| simple.test | test.py:214 | SSA variable x | no attribute | |
|
||||
| {Command injection} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {Command injection} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {SQL injection} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {SQL injection} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {[Command injection]} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {[Command injection]} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {[SQL injection]} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {[SQL injection]} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {[basic.custom]} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {[basic.custom]} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {[explicit.carrier]} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {[explicit.carrier]} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {[falsey]} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {[falsey]} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {[iterable.simple]} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {[iterable.simple]} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {[paper]} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {[paper]} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {[rock]} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {[rock]} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {[scissors]} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {[scissors]} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {[simple.test]} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {[simple.test]} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {basic.custom} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {basic.custom} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {explicit.carrier} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {explicit.carrier} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {falsey} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {falsey} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {iterable.simple} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {iterable.simple} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {paper} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {paper} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {rock} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {rock} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {scissors} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {scissors} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {simple.test} | test.py:169 | ControlFlowNode for Dict | no attribute | |
|
||||
| {simple.test} | test.py:169 | SSA variable d | no attribute | |
|
||||
| {simple.test} | test.py:171 | ControlFlowNode for d | no attribute | |
|
||||
| {simple.test} | test.py:171 | SSA variable d | no attribute | |
|
||||
| {simple.test} | test.py:175 | ControlFlowNode for d | no attribute | |
|
||||
| {simple.test} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {simple.test} | test.py:175 | SSA variable d | no attribute | |
|
||||
| {simple.test} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {{Command injection}} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {{Command injection}} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {{SQL injection}} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {{SQL injection}} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {{basic.custom}} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {{basic.custom}} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {{explicit.carrier}} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {{explicit.carrier}} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {{falsey}} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {{falsey}} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {{iterable.simple}} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {{iterable.simple}} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {{paper}} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {{paper}} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {{rock}} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {{rock}} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {{scissors}} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {{scissors}} | test.py:175 | SSA variable d2 | no attribute | |
|
||||
| {{simple.test}} | test.py:175 | ControlFlowNode for dict() | no attribute | |
|
||||
| {{simple.test}} | test.py:175 | SSA variable d2 | no attribute | |
|
|
@ -1,3 +1,7 @@
|
|||
| Basic custom config | test.py:122 | 122 | ControlFlowNode for t | simple.test |
|
||||
| Basic custom config | test.py:130 | 130 | ControlFlowNode for t | simple.test |
|
||||
| Basic custom config | test.py:140 | 140 | ControlFlowNode for t | simple.test |
|
||||
| Basic custom config | test.py:151 | 151 | ControlFlowNode for t | simple.test |
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:13 | 13 | ControlFlowNode for SCISSORS | scissors |
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:16 | 16 | ControlFlowNode for ROCK | rock |
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:21 | 21 | ControlFlowNode for y | paper |
|
||||
|
@ -9,6 +13,7 @@
|
|||
| Simple config | carrier.py:26 | 26 | ControlFlowNode for Attribute() | simple.test |
|
||||
| Simple config | carrier.py:30 | 30 | ControlFlowNode for Attribute() | simple.test |
|
||||
| Simple config | carrier.py:35 | 35 | ControlFlowNode for Attribute() | simple.test |
|
||||
| Simple config | deep.py:22 | 22 | ControlFlowNode for x | simple.test |
|
||||
| Simple config | test.py:3 | 3 | ControlFlowNode for SOURCE | simple.test |
|
||||
| Simple config | test.py:7 | 7 | ControlFlowNode for s | simple.test |
|
||||
| Simple config | test.py:13 | 13 | ControlFlowNode for arg | simple.test |
|
||||
|
@ -43,6 +48,7 @@
|
|||
| Taint carrier config | carrier.py:26 | 26 | ControlFlowNode for Attribute() | simple.test |
|
||||
| Taint carrier config | carrier.py:30 | 30 | ControlFlowNode for Attribute() | simple.test |
|
||||
| Taint carrier config | carrier.py:35 | 35 | ControlFlowNode for Attribute() | simple.test |
|
||||
| Taint carrier config | deep.py:22 | 22 | ControlFlowNode for x | simple.test |
|
||||
| Taint carrier config | test.py:3 | 3 | ControlFlowNode for SOURCE | simple.test |
|
||||
| Taint carrier config | test.py:7 | 7 | ControlFlowNode for s | simple.test |
|
||||
| Taint carrier config | test.py:13 | 13 | ControlFlowNode for arg | simple.test |
|
||||
|
@ -72,7 +78,3 @@
|
|||
| Taint carrier config | test.py:197 | 197 | ControlFlowNode for t | simple.test |
|
||||
| Taint carrier config | test.py:199 | 199 | ControlFlowNode for t | simple.test |
|
||||
| Taint carrier config | test.py:214 | 214 | ControlFlowNode for x | simple.test |
|
||||
| Basic custom config | test.py:122 | 122 | ControlFlowNode for t | simple.test |
|
||||
| Basic custom config | test.py:130 | 130 | ControlFlowNode for t | simple.test |
|
||||
| Basic custom config | test.py:140 | 140 | ControlFlowNode for t | simple.test |
|
||||
| Basic custom config | test.py:151 | 151 | ControlFlowNode for t | simple.test |
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
| Basic custom config | test.py:120 | 120 | ControlFlowNode for CUSTOM_SOURCE | simple.test |
|
||||
| Basic custom config | test.py:126 | 126 | ControlFlowNode for CUSTOM_SOURCE | simple.test |
|
||||
| Basic custom config | test.py:136 | 136 | ControlFlowNode for CUSTOM_SOURCE | simple.test |
|
||||
| Basic custom config | test.py:146 | 146 | ControlFlowNode for CUSTOM_SOURCE | simple.test |
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:13 | 13 | ControlFlowNode for SCISSORS | scissors |
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:16 | 16 | ControlFlowNode for ROCK | rock |
|
||||
| Rock-paper-scissors config | rockpaperscissors.py:19 | 19 | ControlFlowNode for ROCK | rock |
|
||||
|
@ -31,7 +35,3 @@
|
|||
| Taint carrier config | carrier.py:21 | 21 | ControlFlowNode for TAINT_CARRIER_SOURCE | explicit.carrier |
|
||||
| Taint carrier config | carrier.py:29 | 29 | ControlFlowNode for TAINT_CARRIER_SOURCE | explicit.carrier |
|
||||
| Taint carrier config | carrier.py:33 | 33 | ControlFlowNode for TAINT_CARRIER_SOURCE | explicit.carrier |
|
||||
| Basic custom config | test.py:120 | 120 | ControlFlowNode for CUSTOM_SOURCE | simple.test |
|
||||
| Basic custom config | test.py:126 | 126 | ControlFlowNode for CUSTOM_SOURCE | simple.test |
|
||||
| Basic custom config | test.py:136 | 136 | ControlFlowNode for CUSTOM_SOURCE | simple.test |
|
||||
| Basic custom config | test.py:146 | 146 | ControlFlowNode for CUSTOM_SOURCE | simple.test |
|
||||
|
|
|
@ -0,0 +1,187 @@
|
|||
| Basic custom config: | simple.test | test.py:120 | ControlFlowNode for CUSTOM_SOURCE | | --> | simple.test | test.py:121 | ControlFlowNode for t | |
|
||||
| Basic custom config: | simple.test | test.py:120 | SSA variable t | | --> | simple.test | test.py:121 | ControlFlowNode for t | |
|
||||
| Basic custom config: | simple.test | test.py:126 | ControlFlowNode for CUSTOM_SOURCE | | --> | simple.test | test.py:130 | ControlFlowNode for t | |
|
||||
| Basic custom config: | simple.test | test.py:126 | SSA variable t | | --> | simple.test | test.py:130 | ControlFlowNode for t | |
|
||||
| Basic custom config: | simple.test | test.py:136 | ControlFlowNode for CUSTOM_SOURCE | | --> | simple.test | test.py:142 | ControlFlowNode for t | |
|
||||
| Basic custom config: | simple.test | test.py:136 | SSA variable t | | --> | simple.test | test.py:142 | ControlFlowNode for t | |
|
||||
| Basic custom config: | simple.test | test.py:146 | ControlFlowNode for CUSTOM_SOURCE | | --> | simple.test | test.py:149 | ControlFlowNode for t | |
|
||||
| Basic custom config: | simple.test | test.py:146 | SSA variable t | | --> | simple.test | test.py:149 | ControlFlowNode for t | |
|
||||
| Rock-paper-scissors config: | paper | rockpaperscissors.py:25 | ControlFlowNode for Attribute() | | --> | paper | rockpaperscissors.py:26 | ControlFlowNode for y | |
|
||||
| Rock-paper-scissors config: | paper | rockpaperscissors.py:25 | SSA variable y | | --> | paper | rockpaperscissors.py:26 | ControlFlowNode for y | |
|
||||
| Rock-paper-scissors config: | paper | rockpaperscissors.py:26 | ControlFlowNode for y | | --> | paper | rockpaperscissors.py:9 | ControlFlowNode for arg | Parameter 0(no attribute) is paper |
|
||||
| Rock-paper-scissors config: | paper | rockpaperscissors.py:30 | ControlFlowNode for Attribute() | | --> | paper | rockpaperscissors.py:32 | ControlFlowNode for y | |
|
||||
| Rock-paper-scissors config: | paper | rockpaperscissors.py:30 | SSA variable y | | --> | paper | rockpaperscissors.py:32 | ControlFlowNode for y | |
|
||||
| Rock-paper-scissors config: | paper | rockpaperscissors.py:32 | ControlFlowNode for y | | --> | paper | rockpaperscissors.py:6 | ControlFlowNode for arg | Parameter 0(no attribute) is paper |
|
||||
| Rock-paper-scissors config: | rock | rockpaperscissors.py:16 | ControlFlowNode for ROCK | | --> | rock | rockpaperscissors.py:6 | ControlFlowNode for arg | Parameter 0(no attribute) is rock |
|
||||
| Rock-paper-scissors config: | rock | rockpaperscissors.py:19 | ControlFlowNode for ROCK | | --> | rock | rockpaperscissors.py:20 | ControlFlowNode for x | |
|
||||
| Rock-paper-scissors config: | rock | rockpaperscissors.py:19 | SSA variable x | | --> | rock | rockpaperscissors.py:20 | ControlFlowNode for x | |
|
||||
| Rock-paper-scissors config: | rock | rockpaperscissors.py:20 | ControlFlowNode for x | | --> | scissors | rockpaperscissors.py:20 | ControlFlowNode for Attribute() | |
|
||||
| Rock-paper-scissors config: | rock | rockpaperscissors.py:24 | ControlFlowNode for ROCK | | --> | rock | rockpaperscissors.py:25 | ControlFlowNode for x | |
|
||||
| Rock-paper-scissors config: | rock | rockpaperscissors.py:24 | SSA variable x | | --> | rock | rockpaperscissors.py:25 | ControlFlowNode for x | |
|
||||
| Rock-paper-scissors config: | rock | rockpaperscissors.py:25 | ControlFlowNode for x | | --> | scissors | rockpaperscissors.py:25 | ControlFlowNode for Attribute() | |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:13 | ControlFlowNode for SCISSORS | | --> | scissors | rockpaperscissors.py:3 | ControlFlowNode for arg | Parameter 0(no attribute) is scissors |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:20 | ControlFlowNode for Attribute() | | --> | scissors | rockpaperscissors.py:21 | ControlFlowNode for y | |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:20 | SSA variable y | | --> | scissors | rockpaperscissors.py:21 | ControlFlowNode for y | |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:21 | ControlFlowNode for y | | --> | scissors | rockpaperscissors.py:9 | ControlFlowNode for arg | Parameter 0(no attribute) is scissors |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:25 | ControlFlowNode for Attribute() | | --> | paper | rockpaperscissors.py:25 | ControlFlowNode for Attribute() | |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:29 | ControlFlowNode for SCISSORS | | --> | scissors | rockpaperscissors.py:30 | ControlFlowNode for x | |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:29 | ControlFlowNode for SCISSORS | | --> | scissors | rockpaperscissors.py:31 | ControlFlowNode for x | |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:29 | SSA variable x | | --> | scissors | rockpaperscissors.py:30 | ControlFlowNode for x | |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:29 | SSA variable x | | --> | scissors | rockpaperscissors.py:31 | ControlFlowNode for x | |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:30 | ControlFlowNode for x | | --> | paper | rockpaperscissors.py:30 | ControlFlowNode for Attribute() | |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:30 | SSA variable x | | --> | scissors | rockpaperscissors.py:31 | ControlFlowNode for x | |
|
||||
| Rock-paper-scissors config: | scissors | rockpaperscissors.py:31 | ControlFlowNode for x | | --> | scissors | rockpaperscissors.py:6 | ControlFlowNode for arg | Parameter 0(no attribute) is scissors |
|
||||
| Simple config: | [simple.test] | test.py:168 | ControlFlowNode for List | | --> | [simple.test] | test.py:170 | ControlFlowNode for l | |
|
||||
| Simple config: | [simple.test] | test.py:168 | ControlFlowNode for List | | --> | [simple.test] | test.py:174 | ControlFlowNode for l | |
|
||||
| Simple config: | [simple.test] | test.py:168 | SSA variable l | | --> | [simple.test] | test.py:170 | ControlFlowNode for l | |
|
||||
| Simple config: | [simple.test] | test.py:168 | SSA variable l | | --> | [simple.test] | test.py:174 | ControlFlowNode for l | |
|
||||
| Simple config: | [simple.test] | test.py:170 | SSA variable l | | --> | [simple.test] | test.py:174 | ControlFlowNode for l | |
|
||||
| Simple config: | [simple.test] | test.py:174 | ControlFlowNode for l | | --> | [simple.test] | test.py:174 | ControlFlowNode for list() | |
|
||||
| Simple config: | [simple.test] | test.py:208 | ControlFlowNode for List | | --> | [simple.test] | test.py:209 | ControlFlowNode for seq | |
|
||||
| Simple config: | [simple.test] | test.py:208 | SSA variable seq | | --> | [simple.test] | test.py:209 | ControlFlowNode for seq | |
|
||||
| Simple config: | [simple.test] | test.py:209 | ControlFlowNode for seq | | --> | simple.test | test.py:209 | ControlFlowNode for For | |
|
||||
| Simple config: | [simple.test] | test.py:213 | ControlFlowNode for flow_in_generator() | | --> | simple.test | test.py:213 | ControlFlowNode for For | |
|
||||
| Simple config: | iterable.simple | test.py:213 | ControlFlowNode for flow_in_generator() | | --> | simple.test | test.py:213 | ControlFlowNode for For | |
|
||||
| Simple config: | simple.test | carrier.py:4 | ControlFlowNode for arg | Parameter 1(no attribute) is simple.test | --> | simple.test | carrier.py:5 | ControlFlowNode for arg | Parameter 1(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | carrier.py:4 | SSA variable arg | Parameter 1(no attribute) is simple.test | --> | simple.test | carrier.py:5 | ControlFlowNode for arg | Parameter 1(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | carrier.py:17 | ControlFlowNode for SOURCE | | --> | simple.test | carrier.py:4 | ControlFlowNode for arg | Parameter 1(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | carrier.py:25 | ControlFlowNode for SOURCE | | --> | simple.test | carrier.py:4 | ControlFlowNode for arg | Parameter 1(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:2 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:3 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:2 | SSA variable arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:3 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:3 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:6 | ControlFlowNode for f1() | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:5 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:6 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:5 | SSA variable arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:6 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:6 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:2 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:6 | ControlFlowNode for f1() | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:9 | ControlFlowNode for f2() | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:8 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:9 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:8 | SSA variable arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:9 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:9 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:5 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:9 | ControlFlowNode for f2() | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:12 | ControlFlowNode for f3() | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:11 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:12 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:11 | SSA variable arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:12 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:12 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:8 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:12 | ControlFlowNode for f3() | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:15 | ControlFlowNode for f4() | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:14 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:15 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:14 | SSA variable arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:15 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:15 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:11 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:15 | ControlFlowNode for f4() | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:18 | ControlFlowNode for f5() | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:17 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:18 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:17 | SSA variable arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:18 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:18 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:14 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:18 | ControlFlowNode for f5() | Parameter 0(no attribute) is simple.test | --> | simple.test | deep.py:20 | ControlFlowNode for f6() | |
|
||||
| Simple config: | simple.test | deep.py:20 | ControlFlowNode for SOURCE | | --> | simple.test | deep.py:17 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | deep.py:20 | ControlFlowNode for f6() | | --> | simple.test | deep.py:22 | ControlFlowNode for x | |
|
||||
| Simple config: | simple.test | deep.py:20 | GSSA Variable x | | --> | simple.test | deep.py:22 | ControlFlowNode for x | |
|
||||
| Simple config: | simple.test | test.py:6 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:7 | ControlFlowNode for s | |
|
||||
| Simple config: | simple.test | test.py:6 | SSA variable s | | --> | simple.test | test.py:7 | ControlFlowNode for s | |
|
||||
| Simple config: | simple.test | test.py:12 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | test.py:13 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | test.py:12 | SSA variable arg | Parameter 0(no attribute) is simple.test | --> | simple.test | test.py:13 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | test.py:20 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:21 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:20 | SSA variable t | | --> | simple.test | test.py:21 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:21 | ControlFlowNode for t | | --> | simple.test | test.py:12 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | test.py:37 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:41 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:37 | SSA variable t | | --> | simple.test | test.py:41 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:49 | ControlFlowNode for arg | Parameter 1(no attribute) is simple.test | --> | simple.test | test.py:51 | ControlFlowNode for arg | Parameter 1(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | test.py:49 | SSA variable arg | Parameter 1(no attribute) is simple.test | --> | simple.test | test.py:51 | ControlFlowNode for arg | Parameter 1(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | test.py:51 | ControlFlowNode for arg | Parameter 1(no attribute) is simple.test | --> | simple.test | test.py:12 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | test.py:62 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:63 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:62 | SSA variable t | | --> | simple.test | test.py:63 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:63 | ControlFlowNode for t | | --> | simple.test | test.py:49 | ControlFlowNode for arg | Parameter 1(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | test.py:63 | SSA variable t | | --> | simple.test | test.py:63 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:67 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:70 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:67 | SSA variable t | | --> | simple.test | test.py:70 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:70 | ControlFlowNode for t | | --> | simple.test | test.py:49 | ControlFlowNode for arg | Parameter 1(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | test.py:70 | SSA variable t | | --> | simple.test | test.py:70 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:72 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | test.py:73 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | test.py:72 | SSA variable arg | Parameter 0(no attribute) is simple.test | --> | simple.test | test.py:73 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | test.py:73 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test | --> | simple.test | test.py:77 | ControlFlowNode for hub() | |
|
||||
| Simple config: | simple.test | test.py:76 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:77 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:76 | SSA variable t | | --> | simple.test | test.py:77 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:77 | ControlFlowNode for hub() | | --> | simple.test | test.py:78 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:77 | ControlFlowNode for t | | --> | simple.test | test.py:72 | ControlFlowNode for arg | Parameter 0(no attribute) is simple.test |
|
||||
| Simple config: | simple.test | test.py:77 | SSA variable t | | --> | simple.test | test.py:78 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:128 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:132 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:128 | SSA variable t | | --> | simple.test | test.py:132 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:138 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:140 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:138 | SSA variable t | | --> | simple.test | test.py:140 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:148 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:149 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:148 | SSA variable t | | --> | simple.test | test.py:149 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:163 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:164 | ControlFlowNode for s | |
|
||||
| Simple config: | simple.test | test.py:163 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:165 | ControlFlowNode for s | |
|
||||
| Simple config: | simple.test | test.py:163 | SSA variable s | | --> | simple.test | test.py:164 | ControlFlowNode for s | |
|
||||
| Simple config: | simple.test | test.py:163 | SSA variable s | | --> | simple.test | test.py:165 | ControlFlowNode for s | |
|
||||
| Simple config: | simple.test | test.py:164 | SSA variable s | | --> | simple.test | test.py:165 | ControlFlowNode for s | |
|
||||
| Simple config: | simple.test | test.py:168 | ControlFlowNode for SOURCE | | --> | [simple.test] | test.py:168 | ControlFlowNode for List | |
|
||||
| Simple config: | simple.test | test.py:169 | ControlFlowNode for SOURCE | | --> | {simple.test} | test.py:169 | ControlFlowNode for Dict | |
|
||||
| Simple config: | simple.test | test.py:178 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:179 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:178 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:180 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:178 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:183 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:178 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:186 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:178 | SSA variable t | | --> | simple.test | test.py:179 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:178 | SSA variable t | | --> | simple.test | test.py:180 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:178 | SSA variable t | | --> | simple.test | test.py:183 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:178 | SSA variable t | | --> | simple.test | test.py:186 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:180 | SSA variable t | | --> | simple.test | test.py:180 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:180 | SSA variable t | | --> | simple.test | test.py:183 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:180 | SSA variable t | | --> | simple.test | test.py:186 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:183 | SSA variable t | | --> | simple.test | test.py:186 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:195 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:196 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:195 | ControlFlowNode for SOURCE | | --> | simple.test | test.py:199 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:195 | SSA variable t | | --> | simple.test | test.py:196 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:195 | SSA variable t | | --> | simple.test | test.py:199 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:199 | SSA variable t | | --> | simple.test | test.py:199 | ControlFlowNode for t | |
|
||||
| Simple config: | simple.test | test.py:208 | ControlFlowNode for SOURCE | | --> | [simple.test] | test.py:208 | ControlFlowNode for List | |
|
||||
| Simple config: | simple.test | test.py:209 | ControlFlowNode for For | | --> | simple.test | test.py:210 | ControlFlowNode for i | |
|
||||
| Simple config: | simple.test | test.py:209 | SSA variable i | | --> | simple.test | test.py:210 | ControlFlowNode for i | |
|
||||
| Simple config: | simple.test | test.py:210 | ControlFlowNode for i | | --> | [simple.test] | test.py:213 | ControlFlowNode for flow_in_generator() | |
|
||||
| Simple config: | simple.test | test.py:210 | ControlFlowNode for i | | --> | iterable.simple | test.py:213 | ControlFlowNode for flow_in_generator() | |
|
||||
| Simple config: | simple.test | test.py:213 | ControlFlowNode for For | | --> | simple.test | test.py:214 | ControlFlowNode for x | |
|
||||
| Simple config: | simple.test | test.py:213 | SSA variable x | | --> | simple.test | test.py:214 | ControlFlowNode for x | |
|
||||
| Simple config: | {simple.test} | test.py:169 | ControlFlowNode for Dict | | --> | {simple.test} | test.py:171 | ControlFlowNode for d | |
|
||||
| Simple config: | {simple.test} | test.py:169 | ControlFlowNode for Dict | | --> | {simple.test} | test.py:175 | ControlFlowNode for d | |
|
||||
| Simple config: | {simple.test} | test.py:169 | SSA variable d | | --> | {simple.test} | test.py:171 | ControlFlowNode for d | |
|
||||
| Simple config: | {simple.test} | test.py:169 | SSA variable d | | --> | {simple.test} | test.py:175 | ControlFlowNode for d | |
|
||||
| Simple config: | {simple.test} | test.py:171 | SSA variable d | | --> | {simple.test} | test.py:175 | ControlFlowNode for d | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {Command injection} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {SQL injection} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {[Command injection]} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {[SQL injection]} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {[basic.custom]} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {[explicit.carrier]} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {[falsey]} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {[iterable.simple]} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {[paper]} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {[rock]} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {[scissors]} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {[simple.test]} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {basic.custom} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {explicit.carrier} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {falsey} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {iterable.simple} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {paper} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {rock} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {scissors} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {simple.test} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {{Command injection}} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {{SQL injection}} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {{basic.custom}} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {{explicit.carrier}} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {{falsey}} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {{iterable.simple}} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {{paper}} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {{rock}} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {{scissors}} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Simple config: | {simple.test} | test.py:175 | ControlFlowNode for d | | --> | {{simple.test}} | test.py:175 | ControlFlowNode for dict() | |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:4 | ControlFlowNode for arg | Parameter 1(no attribute) is explicit.carrier | --> | explicit.carrier | carrier.py:5 | ControlFlowNode for arg | Parameter 1(no attribute) is explicit.carrier |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:4 | SSA variable arg | Parameter 1(no attribute) is explicit.carrier | --> | explicit.carrier | carrier.py:5 | ControlFlowNode for arg | Parameter 1(no attribute) is explicit.carrier |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:13 | ControlFlowNode for arg | Parameter 0(no attribute) is explicit.carrier | --> | explicit.carrier | carrier.py:14 | ControlFlowNode for arg | Parameter 0(no attribute) is explicit.carrier |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:13 | SSA variable arg | Parameter 0(no attribute) is explicit.carrier | --> | explicit.carrier | carrier.py:14 | ControlFlowNode for arg | Parameter 0(no attribute) is explicit.carrier |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:14 | ControlFlowNode for arg | Parameter 0(no attribute) is explicit.carrier | --> | explicit.carrier | carrier.py:29 | ControlFlowNode for hub() | |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:21 | ControlFlowNode for TAINT_CARRIER_SOURCE | | --> | explicit.carrier | carrier.py:22 | ControlFlowNode for c | |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:21 | SSA variable c | | --> | explicit.carrier | carrier.py:22 | ControlFlowNode for c | |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:22 | ControlFlowNode for c | | --> | simple.test | carrier.py:22 | ControlFlowNode for Attribute() | |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:29 | ControlFlowNode for TAINT_CARRIER_SOURCE | | --> | explicit.carrier | carrier.py:13 | ControlFlowNode for arg | Parameter 0(no attribute) is explicit.carrier |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:29 | ControlFlowNode for hub() | | --> | explicit.carrier | carrier.py:30 | ControlFlowNode for c | |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:29 | SSA variable c | | --> | explicit.carrier | carrier.py:30 | ControlFlowNode for c | |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:30 | ControlFlowNode for c | | --> | simple.test | carrier.py:30 | ControlFlowNode for Attribute() | |
|
||||
| Taint carrier config: | explicit.carrier | carrier.py:33 | ControlFlowNode for TAINT_CARRIER_SOURCE | | --> | explicit.carrier | carrier.py:4 | ControlFlowNode for arg | Parameter 1(no attribute) is explicit.carrier |
|
|
@ -1,16 +0,0 @@
|
|||
| test.py:3:10:3:15 | ControlFlowNode for SOURCE | test.py:3:10:3:15 | ControlFlowNode for SOURCE |
|
||||
| test.py:6:9:6:14 | ControlFlowNode for SOURCE | test.py:7:10:7:10 | ControlFlowNode for s |
|
||||
| test.py:10:12:10:17 | ControlFlowNode for SOURCE | test.py:13:10:13:12 | ControlFlowNode for arg |
|
||||
| test.py:10:12:10:17 | ControlFlowNode for SOURCE | test.py:17:10:17:10 | ControlFlowNode for t |
|
||||
| test.py:20:9:20:14 | ControlFlowNode for SOURCE | test.py:13:10:13:12 | ControlFlowNode for arg |
|
||||
| test.py:37:13:37:18 | ControlFlowNode for SOURCE | test.py:41:14:41:14 | ControlFlowNode for t |
|
||||
| test.py:62:13:62:18 | ControlFlowNode for SOURCE | test.py:13:10:13:12 | ControlFlowNode for arg |
|
||||
| test.py:67:13:67:18 | ControlFlowNode for SOURCE | test.py:13:10:13:12 | ControlFlowNode for arg |
|
||||
| test.py:76:9:76:14 | ControlFlowNode for SOURCE | test.py:78:10:78:10 | ControlFlowNode for t |
|
||||
| test.py:108:13:108:18 | ControlFlowNode for SOURCE | test.py:112:14:112:14 | ControlFlowNode for t |
|
||||
| test.py:139:10:139:15 | ControlFlowNode for SOURCE | test.py:140:14:140:14 | ControlFlowNode for t |
|
||||
| test.py:143:9:143:14 | ControlFlowNode for SOURCE | test.py:145:10:145:10 | ControlFlowNode for s |
|
||||
| test.py:148:10:148:15 | ControlFlowNode for SOURCE | test.py:152:10:152:13 | ControlFlowNode for Subscript |
|
||||
| test.py:149:18:149:23 | ControlFlowNode for SOURCE | test.py:153:10:153:17 | ControlFlowNode for Subscript |
|
||||
| test.py:158:9:158:14 | ControlFlowNode for SOURCE | test.py:160:14:160:14 | ControlFlowNode for t |
|
||||
| test.py:158:9:158:14 | ControlFlowNode for SOURCE | test.py:166:14:166:14 | ControlFlowNode for t |
|
|
@ -1,72 +1,2 @@
|
|||
| Taint Data flow | test.py:3 | SOURCE | |
|
||||
| Taint Data flow | test.py:6 | SOURCE | |
|
||||
| Taint Data flow | test.py:7 | s | |
|
||||
| Taint Data flow | test.py:10 | SOURCE | |
|
||||
| Taint Data flow | test.py:12 | arg | test.py:21 |
|
||||
| Taint Data flow | test.py:12 | arg | test.py:25 |
|
||||
| Taint Data flow | test.py:12 | arg | test.py:47 from test.py:55 |
|
||||
| Taint Data flow | test.py:12 | arg | test.py:51 from test.py:63 |
|
||||
| Taint Data flow | test.py:12 | arg | test.py:51 from test.py:70 |
|
||||
| Taint Data flow | test.py:13 | arg | test.py:21 |
|
||||
| Taint Data flow | test.py:13 | arg | test.py:25 |
|
||||
| Taint Data flow | test.py:13 | arg | test.py:47 from test.py:55 |
|
||||
| Taint Data flow | test.py:13 | arg | test.py:51 from test.py:63 |
|
||||
| Taint Data flow | test.py:13 | arg | test.py:51 from test.py:70 |
|
||||
| Taint Data flow | test.py:16 | source() | |
|
||||
| Taint Data flow | test.py:17 | t | |
|
||||
| Taint Data flow | test.py:20 | SOURCE | |
|
||||
| Taint Data flow | test.py:21 | t | |
|
||||
| Taint Data flow | test.py:24 | source() | |
|
||||
| Taint Data flow | test.py:25 | t | |
|
||||
| Taint Data flow | test.py:31 | SOURCE | |
|
||||
| Taint Data flow | test.py:37 | SOURCE | |
|
||||
| Taint Data flow | test.py:41 | t | |
|
||||
| Taint Data flow | test.py:44 | source() | |
|
||||
| Taint Data flow | test.py:46 | arg | test.py:55 |
|
||||
| Taint Data flow | test.py:47 | arg | test.py:55 |
|
||||
| Taint Data flow | test.py:49 | arg | test.py:63 |
|
||||
| Taint Data flow | test.py:49 | arg | test.py:70 |
|
||||
| Taint Data flow | test.py:51 | arg | test.py:63 |
|
||||
| Taint Data flow | test.py:51 | arg | test.py:70 |
|
||||
| Taint Data flow | test.py:54 | source2() | |
|
||||
| Taint Data flow | test.py:55 | t | |
|
||||
| Taint Data flow | test.py:62 | SOURCE | |
|
||||
| Taint Data flow | test.py:63 | t | |
|
||||
| Taint Data flow | test.py:67 | SOURCE | |
|
||||
| Taint Data flow | test.py:70 | t | |
|
||||
| Taint Data flow | test.py:72 | arg | test.py:77 |
|
||||
| Taint Data flow | test.py:73 | arg | test.py:77 |
|
||||
| Taint Data flow | test.py:76 | SOURCE | |
|
||||
| Taint Data flow | test.py:77 | hub() | |
|
||||
| Taint Data flow | test.py:77 | t | |
|
||||
| Taint Data flow | test.py:78 | t | |
|
||||
| Taint Data flow | test.py:108 | SOURCE | |
|
||||
| Taint Data flow | test.py:112 | t | |
|
||||
| Taint Data flow | test.py:118 | SOURCE | |
|
||||
| Taint Data flow | test.py:120 | t | |
|
||||
| Taint Data flow | test.py:128 | SOURCE | |
|
||||
| Taint Data flow | test.py:129 | t | |
|
||||
| Taint Data flow | test.py:139 | SOURCE | |
|
||||
| Taint Data flow | test.py:140 | t | |
|
||||
| Taint Data flow | test.py:143 | SOURCE | |
|
||||
| Taint Data flow | test.py:144 | s | |
|
||||
| Taint Data flow | test.py:145 | s | |
|
||||
| Taint Data flow | test.py:148 | SOURCE | |
|
||||
| Taint Data flow | test.py:149 | SOURCE | |
|
||||
| Taint Data flow | test.py:152 | Subscript | |
|
||||
| Taint Data flow | test.py:153 | Subscript | |
|
||||
| Taint Data flow | test.py:158 | SOURCE | |
|
||||
| Taint Data flow | test.py:159 | t | |
|
||||
| Taint Data flow | test.py:160 | t | |
|
||||
| Taint Data flow | test.py:163 | t | |
|
||||
| Taint Data flow | test.py:166 | t | |
|
||||
| Taint [Data flow] | test.py:148 | List | |
|
||||
| Taint [Data flow] | test.py:150 | l | |
|
||||
| Taint [Data flow] | test.py:152 | x | |
|
||||
| Taint [Data flow] | test.py:154 | l | |
|
||||
| Taint [Data flow] | test.py:154 | list() | |
|
||||
| Taint {Data flow} | test.py:149 | Dict | |
|
||||
| Taint {Data flow} | test.py:151 | d | |
|
||||
| Taint {Data flow} | test.py:153 | y | |
|
||||
| Taint {Data flow} | test.py:155 | d | |
|
||||
| Taint {Data flow} | test.py:155 | dict() | |
|
||||
ERROR: getNode() cannot be resolved for type Node (TestNode.ql:5,69-76)
|
||||
ERROR: getTrackedValue() cannot be resolved for type TaintedNode (TestNode.ql:5,10-25)
|
||||
|
|
|
@ -386,5 +386,3 @@ class TaintIterableSource extends TaintSource {
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -4,6 +4,6 @@ import TaintLib
|
|||
|
||||
|
||||
from EssaDefinition defn, TaintedNode n
|
||||
where TaintFlowTest::tainted_def(defn, _, n)
|
||||
where n.getNode().asVariable() = defn.getVariable()
|
||||
select
|
||||
defn.getLocation().toString(), defn.getRepresentation(), n.getLocation().toString(), n.getTrackedValue(), n.getNode().getNode().toString()
|
||||
defn.getLocation().toString(), defn.getRepresentation(), n.getLocation().toString(), "Taint " + n.getTaintKind(), n.getCfgNode().getNode().toString()
|
||||
|
|
|
@ -6,6 +6,6 @@ import TaintLib
|
|||
from TaintedNode n, TaintedNode s
|
||||
where s = n.getASuccessor()
|
||||
select
|
||||
n.getTrackedValue(), n.getLocation().toString(), n.getNode().getNode().toString(), n.getContext(),
|
||||
n.getTaintKind(), n.getLocation().toString(), n.getNode().toString(), n.getContext(),
|
||||
" --> ",
|
||||
s.getTrackedValue(), s.getLocation().toString(), s.getNode().getNode().toString(), s.getContext()
|
||||
s.getTaintKind(), s.getLocation().toString(), s.getNode().toString(), s.getContext()
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
| Taint exception.info | test.py:54 | test.py:54:22:54:26 | taint | test.py:59 |
|
||||
| Taint exception.info | test.py:55 | test.py:55:12:55:22 | func() | test.py:59 |
|
||||
| Taint exception.info | test.py:55 | test.py:55:17:55:21 | taint | test.py:59 |
|
||||
| Taint exception.info | test.py:54 | test.py:54:22:54:26 | taint | Parameter 1(no attribute) is exception.info |
|
||||
| Taint exception.info | test.py:55 | test.py:55:12:55:22 | func() | Parameter 1(no attribute) is exception.info |
|
||||
| Taint exception.info | test.py:55 | test.py:55:17:55:21 | taint | Parameter 1(no attribute) is exception.info |
|
||||
| Taint exception.info | test.py:58 | test.py:58:12:58:33 | TAINTED_EXCEPTION_INFO | |
|
||||
| Taint exception.info | test.py:59 | test.py:59:11:59:41 | cross_over() | |
|
||||
| Taint exception.info | test.py:59 | test.py:59:37:59:40 | info | |
|
||||
| Taint exception.info | test.py:61 | test.py:61:19:61:21 | arg | test.py:55 from test.py:59 |
|
||||
| Taint exception.info | test.py:62 | test.py:62:12:62:14 | arg | test.py:55 from test.py:59 |
|
||||
| Taint externally controlled string | test.py:54 | test.py:54:22:54:26 | taint | test.py:66 |
|
||||
| Taint externally controlled string | test.py:55 | test.py:55:12:55:22 | func() | test.py:66 |
|
||||
| Taint externally controlled string | test.py:55 | test.py:55:17:55:21 | taint | test.py:66 |
|
||||
| Taint externally controlled string | test.py:61 | test.py:61:19:61:21 | arg | test.py:55 from test.py:66 |
|
||||
| Taint externally controlled string | test.py:62 | test.py:62:12:62:14 | arg | test.py:55 from test.py:66 |
|
||||
| Taint exception.info | test.py:61 | test.py:61:19:61:21 | arg | Parameter 0(no attribute) is exception.info |
|
||||
| Taint exception.info | test.py:62 | test.py:62:12:62:14 | arg | Parameter 0(no attribute) is exception.info |
|
||||
| Taint externally controlled string | test.py:54 | test.py:54:22:54:26 | taint | Parameter 1(no attribute) is externally controlled string |
|
||||
| Taint externally controlled string | test.py:55 | test.py:55:12:55:22 | func() | Parameter 1(no attribute) is externally controlled string |
|
||||
| Taint externally controlled string | test.py:55 | test.py:55:17:55:21 | taint | Parameter 1(no attribute) is externally controlled string |
|
||||
| Taint externally controlled string | test.py:61 | test.py:61:19:61:21 | arg | Parameter 0(no attribute) is externally controlled string |
|
||||
| Taint externally controlled string | test.py:62 | test.py:62:12:62:14 | arg | Parameter 0(no attribute) is externally controlled string |
|
||||
| Taint externally controlled string | test.py:65 | test.py:65:11:65:33 | TAINTED_EXTERNAL_STRING | |
|
||||
| Taint externally controlled string | test.py:66 | test.py:66:11:66:41 | cross_over() | |
|
||||
| Taint externally controlled string | test.py:66 | test.py:66:38:66:40 | ext | |
|
||||
|
|
|
@ -32,8 +32,7 @@ class ExternalStringSource extends TaintSource {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
from TaintedNode n
|
||||
where n.getLocation().getFile().getName().matches("%test.py")
|
||||
select n.getTrackedValue(), n.getLocation().toString(), n.getAstNode(), n.getContext()
|
||||
select "Taint " + n.getTaintKind(), n.getLocation().toString(), n.getAstNode(), n.getContext()
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ class SimpleSource extends TaintSource {
|
|||
kind instanceof ExternalStringKind
|
||||
}
|
||||
|
||||
string toString() {
|
||||
override string toString() {
|
||||
result = "taint source"
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ class ListSource extends TaintSource {
|
|||
kind instanceof ExternalStringSequenceKind
|
||||
}
|
||||
|
||||
string toString() {
|
||||
override string toString() {
|
||||
result = "list taint source"
|
||||
}
|
||||
|
||||
|
@ -39,9 +39,8 @@ class DictSource extends TaintSource {
|
|||
kind instanceof ExternalStringDictKind
|
||||
}
|
||||
|
||||
string toString() {
|
||||
override string toString() {
|
||||
result = "dict taint source"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -5,5 +5,5 @@ import Taint
|
|||
|
||||
from TaintedNode n
|
||||
where n.getLocation().getFile().getName().matches("%test.py")
|
||||
select n.getTrackedValue(), n.getLocation().toString(), n.getAstNode(), n.getContext()
|
||||
select "Taint " + n.getTaintKind(), n.getLocation().toString(), n.getCfgNode().getNode(), n.getContext()
|
||||
|
||||
|
|
|
@ -8,6 +8,6 @@ where n.getLocation().getFile().getName().matches("%test.py") and
|
|||
s.getLocation().getFile().getName().matches("%test.py") and
|
||||
s = n.getASuccessor()
|
||||
select
|
||||
n.getTrackedValue(), n.getLocation().toString(), n.getAstNode(), n.getContext(),
|
||||
"Taint " + n.getTaintKind(), n.getLocation().toString(), n.getAstNode(), n.getContext(),
|
||||
" --> ",
|
||||
s.getTrackedValue(), s.getLocation().toString(), s.getAstNode(), s.getContext()
|
||||
"Taint " + s.getTaintKind(), s.getLocation().toString(), s.getAstNode(), s.getContext()
|
||||
|
|
Загрузка…
Ссылка в новой задаче