public static void TraceDebug(CandidateAction action) { if (action.IsAsync && TraceDebugIncludeMethodCalls) { Output("TRACE: " + action); } else if (action.IsTau && TraceDebugIncludeTau) { Output("TRACE: " + action); } else if (action.IsDeadlocked) { Output("TRACE: " + action); } else if (!action.IsTau && action.IsSync && TraceDebugOn) { Output("TRACE: " + action); } }
public void NewState(List<ProcessBase> activeProcs, CandidateAction chosenAction) { StringBuilder builder = new StringBuilder(); if (chosenAction != null) { UpdateProcessActions(chosenAction.Process1); if (chosenAction.Process2 != null) { UpdateProcessActions(chosenAction.Process2); } } foreach (ProcessBase pb in activeProcs) { string name = pb.ToString(); Node proc = GetProcess(name); RemovePerformedActions(name, ref proc); builder.Append("\n\n# " + name + ": \n"); if (pb.Parent != null) { builder.Append("# Parent chain: "); ProcessBase parent = pb.Parent; List<string> parts = new List<string>(); while (parent != null) { Node parentProc = GetProcess(parent.ToString()); string oneParent = parent + ": "; if (parentProc.ChildNodes[0] != null) { _formatter.Start(parentProc.ChildNodes[0]); oneParent += (_formatter.GetFormatted()); } if (parentProc.ChildNodes[1] != null) { _formatter.Start(parentProc.ChildNodes[1]); oneParent += _formatter.GetFormatted(); } parts.Add(oneParent); parent = parent.Parent; } parts.Reverse(); builder.Append(string.Join("; ", parts.ToArray())); builder.Append("\n"); } _formatter.Start(proc); builder.Append(FormatProc(_formatter.GetFormatted())); } _string = builder.ToString(); }
public static void TraceDebug(CandidateAction action) { if (action.IsAsync && TraceDebugIncludeMethodCalls) { Output("TRACE: " + action); } else if (action.IsTau && TraceDebugIncludeTau) { Output("TRACE: " + action); } else if (action.IsDeadlocked) { Output("TRACE: " + action); } else if (!action.IsTau && action.IsSync && TraceDebugOn) { Output("TRACE: " + action); } }
private void StartExecution(object sender, EventArgs e) { if (_status == RunStatus.Stopped) { if (_loadedSystem != null) { _visual = new ProcessStateVisualization(_loadedSystem, _parser.Formatter); } _status = RunStatus.Running; ClearAll(); processThreadWorker.RunWorkerAsync(); } else if (_status == RunStatus.Stepping) { _status = RunStatus.Running; if (lstCandidateActions.Items.Count > 0) { _chosenAction = (CandidateAction)lstCandidateActions.Items[_rng.Next(lstCandidateActions.Items.Count)]; } } EnableControls(); }
private void ExecuteSelectedAction(object sender, EventArgs e) { if (lstCandidateActions.SelectedItem != null) { _chosenAction = (CandidateAction)lstCandidateActions.SelectedItem; } }
private void ExecuteRandomAction(object sender, EventArgs e) { if (lstCandidateActions.Items.Count > 0) { _chosenAction = (CandidateAction)lstCandidateActions.Items[_rng.Next(lstCandidateActions.Items.Count)]; } }
private CandidateAction ChooseActionInterActive(List<CandidateAction> candidates) { if (_status == RunStatus.Stepping) { UpdateState(); } _chosenAction = null; lstCandidateActions.Invoke(new NewCandidateActionsDelegate(NewCandidateActions), candidates); if (_status == RunStatus.Stepping) { while (_chosenAction == null) { Thread.Sleep(500); //Wait until user has selected something... } return _chosenAction; } else { return candidates[_rng.Next(candidates.Count)]; } }