inANamedTraceDefinition(node); if(node.getName() != null ) node.getName().apply(this); if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) node.getClassDefinition().apply(this); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) node.getAccess().apply(this); if(node.getType() != null && !_visitedNodes.contains(node.getType())) node.getType().apply(this); List<ATraceDefinitionTerm> copy = new ArrayList<ATraceDefinitionTerm>(node.getTerms()); for( ATraceDefinitionTerm e : copy)
@Override public PType caseANamedTraceDefinition(ANamedTraceDefinition node) throws AnalysisException { return AstFactory.newAOperationType(node.getLocation(), new Vector<PType>(), AstFactory.newAVoidType(node.getLocation())); }
infoProcessingTrace(className, mtd.getName().getName(), size); if (storage != null) storage.StartTrace(mtd.getName().getName(), mtd.getLocation().getFile().getName(), mtd.getLocation().getStartLine(), mtd.getLocation().getStartPos(), size, new Float(subset), TraceReductionType.valueOf(traceReductionType.toString()), new Long(seed)); if (interpreter instanceof ClassInterpreter) traceContainer = mtd.getClassDefinition(); rootEnv = new PrivateClassEnvironment(interpreter.getAssistantFactory(), mtd.getClassDefinition(), interpreter.getGlobalEnvironment()); traceContainer = mtd.parent(); if(((AModuleModules)traceContainer).getIsFlat()) infoProcessingTest(className, mtd.getName().getName(), n, size); infoProcessingTraceFinished(className, mtd.getName().getName(), size, faildCount, inconclusiveCount, skippedCount);
public TestSequence getTests(ANamedTraceDefinition tracedef, Context ctxt, float subset, TraceReductionType type, long seed) throws Exception { SequenceTraceNode traces = new SequenceTraceNode(); for (ATraceDefinitionTerm term : tracedef.getTerms()) { traces.nodes.add(term.apply(af.getTraceExpander(), ctxt)); } TestSequence tests = traces.getTests(); if (tests.isEmpty()) { throw new Exception("Trace expansion generated no tests"); } if (subset < 1.0) { tests = new ReducedTestSequence(tests, subset, type, seed); } return tests; }
for (ClonableString cloStr : node.getPathname()) for (ATraceDefinitionTerm term : node.getTerms())
if (this instanceof ClassInterpreter) traceContainer = tracedef.getClassDefinition(); rootEnv = new PrivateClassEnvironment(getAssistantFactory(), tracedef.getClassDefinition(), getGlobalEnvironment()); } else traceContainer = tracedef.parent();
@Override public LexNameList caseANamedTraceDefinition(ANamedTraceDefinition node) throws AnalysisException { return new LexNameList(node.getName()); }
@Override public Context getInitialTraceContext(ANamedTraceDefinition tracedef, boolean debug) throws AnalysisException { ObjectValue object = null; SClassDefinition classdef = tracedef.getClassDefinition(); // Create a new test object object = assistantFactory.createSClassDefinitionAssistant().newInstance(classdef, null, null, initialContext); Context ctxt = new ObjectContext(assistantFactory, classdef.getName().getLocation(), classdef.getName().getName() + "()", initialContext, object); ctxt.put(classdef.getName().getSelfName(), object); return ctxt; }
@Override public PType caseANamedTraceDefinition(ANamedTraceDefinition node, TypeCheckInfo question) throws AnalysisException { if (question.env.isVDMPP()) { question = new TypeCheckInfo(question.assistantFactory, new FlatEnvironment(question.assistantFactory, question.assistantFactory.createPDefinitionAssistant().getSelfDefinition(node), question.env), question.scope, question.qualifiers); } for (ATraceDefinitionTerm term : node.getTerms()) { typeCheck(term.getList(), THIS, new TypeCheckInfo(question.assistantFactory, question.env, NameScope.NAMESANDSTATE)); } // Mark node as used, as traces are not used anyway question.assistantFactory.createPDefinitionAssistant().markUsed(node); return null; }
/** * obtain all trace definitions, or just the one named * * @param definitions * @param traceName * null or a name of a trace * @return a list of named trace definitions */ private List<ANamedTraceDefinition> getAllTraceDefinitions( List<PDefinition> definitions, String traceName) { List<ANamedTraceDefinition> traceDefs = new Vector<ANamedTraceDefinition>(); for (Object definition : definitions) { if (definition instanceof ANamedTraceDefinition) { if (traceName == null || ((ANamedTraceDefinition) definition).getName().getName().equals(traceName)) { traceDefs.add((ANamedTraceDefinition) definition); } } } return traceDefs; }
inANamedTraceDefinition(node); if(node.getName() != null ) node.getName().apply(this); if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) node.getClassDefinition().apply(this); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) node.getAccess().apply(this); if(node.getType() != null && !_visitedNodes.contains(node.getType())) node.getType().apply(this); List<ATraceDefinitionTerm> copy = new ArrayList<ATraceDefinitionTerm>(node.getTerms()); for( ATraceDefinitionTerm e : copy)
inANamedTraceDefinition(node, question); if(node.getName() != null ) node.getName().apply(this, question); if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) node.getClassDefinition().apply(this, question); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) node.getAccess().apply(this, question); if(node.getType() != null && !_visitedNodes.contains(node.getType())) node.getType().apply(this, question); List<ATraceDefinitionTerm> copy = new ArrayList<ATraceDefinitionTerm>(node.getTerms()); for( ATraceDefinitionTerm e : copy)
mergeReturns(retVal,inANamedTraceDefinition(node)); if(node.getName() != null ) mergeReturns(retVal,node.getName().apply(this)); if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) mergeReturns(retVal,node.getClassDefinition().apply(this)); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) mergeReturns(retVal,node.getAccess().apply(this)); if(node.getType() != null && !_visitedNodes.contains(node.getType())) mergeReturns(retVal,node.getType().apply(this)); List<ATraceDefinitionTerm> copy = new ArrayList<ATraceDefinitionTerm>(node.getTerms()); for( ATraceDefinitionTerm e : copy)
mergeReturns(retVal,inANamedTraceDefinition(node, question)); if(node.getName() != null ) mergeReturns(retVal,node.getName().apply(this, question)); if(node.getClassDefinition() != null && !_visitedNodes.contains(node.getClassDefinition())) mergeReturns(retVal,node.getClassDefinition().apply(this, question)); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) mergeReturns(retVal,node.getAccess().apply(this, question)); if(node.getType() != null && !_visitedNodes.contains(node.getType())) mergeReturns(retVal,node.getType().apply(this, question)); List<ATraceDefinitionTerm> copy = new ArrayList<ATraceDefinitionTerm>(node.getTerms()); for( ATraceDefinitionTerm e : copy)