public void executeCheckPostStatement(Tree syntaxNode) { this.syntaxNode = syntaxNode; addTransition(explodedGraphWalker.programState); }
public void executeCheckPostStatement(Tree syntaxNode) { this.syntaxNode = syntaxNode; addTransition(explodedGraphWalker.programState); }
private void enqueueHappyPath(ProgramState programState, MethodInvocationTree mit, MethodYield yield) { checkerDispatcher.syntaxNode = mit; checkerDispatcher.methodYield = yield; checkerDispatcher.addTransition(programState); checkerDispatcher.methodYield = null; clearStack(mit); }
private void enqueueHappyPath(ProgramState programState, MethodInvocationTree mit, MethodYield yield) { checkerDispatcher.syntaxNode = mit; checkerDispatcher.methodYield = yield; checkerDispatcher.addTransition(programState); checkerDispatcher.methodYield = null; clearStack(mit); }
private void executeAssertStatement(Tree tree) { // After an assert statement we know that the evaluated expression is true. ProgramState.Pop pop = programState.unstackValue(1); pop.values.forEach(v -> v.setConstraint(pop.state, BooleanConstraint.TRUE) .forEach(ps -> { checkerDispatcher.syntaxNode = tree; checkerDispatcher.addTransition(ps); ps.clearStack(); })); }
private void executeAssertStatement(Tree tree) { // After an assert statement we know that the evaluated expression is true. ProgramState.Pop pop = programState.unstackValue(1); pop.values.forEach(v -> v.setConstraint(pop.state, BooleanConstraint.TRUE) .forEach(ps -> { checkerDispatcher.syntaxNode = tree; checkerDispatcher.addTransition(ps); ps.clearStack(); })); }
private void executePost() { this.transition = false; if (currentCheckerIndex < checks.size()) { explodedGraphWalker.programState = checks.get(currentCheckerIndex).checkPostStatement(this, syntaxNode); } else { if (explodedGraphWalker.programPosition.i< explodedGraphWalker.programPosition.block.elements().size()) { explodedGraphWalker.clearStack(explodedGraphWalker.programPosition.block.elements().get(explodedGraphWalker.programPosition.i)); } explodedGraphWalker.enqueue( new ExplodedGraph.ProgramPoint(explodedGraphWalker.programPosition.block, explodedGraphWalker.programPosition.i + 1), explodedGraphWalker.programState, explodedGraphWalker.node.exitPath); return; } if (!transition) { addTransition(explodedGraphWalker.programState); } }
private void executePost() { this.transition = false; if (currentCheckerIndex < checks.size()) { explodedGraphWalker.programState = checks.get(currentCheckerIndex).checkPostStatement(this, syntaxNode); } else { CFG.Block block = (CFG.Block) explodedGraphWalker.programPosition.block; if (explodedGraphWalker.programPosition.i< block.elements().size()) { explodedGraphWalker.clearStack(block.elements().get(explodedGraphWalker.programPosition.i)); } explodedGraphWalker.enqueue( explodedGraphWalker.programPosition.next(), explodedGraphWalker.programState, explodedGraphWalker.node.exitPath, methodYield); return; } if (!transition) { addTransition(explodedGraphWalker.programState); } }
private void executePost() { this.transition = false; if (currentCheckerIndex < checks.size()) { explodedGraphWalker.programState = checks.get(currentCheckerIndex).checkPostStatement(this, syntaxNode); } else { CFG.Block block = (CFG.Block) explodedGraphWalker.programPosition.block; if (explodedGraphWalker.programPosition.i< block.elements().size()) { explodedGraphWalker.clearStack(block.elements().get(explodedGraphWalker.programPosition.i)); } explodedGraphWalker.enqueue( explodedGraphWalker.programPosition.next(), explodedGraphWalker.programState, explodedGraphWalker.node.exitPath, methodYield); return; } if (!transition) { addTransition(explodedGraphWalker.programState); } }