public void executeVerification(VerifyAsset verifyAsset, SpecificationBase specbase) { //initialize CSP module with CSP Code PATUtil util = new PATUtil(); Stopwatch sw = new Stopwatch(); sw.Start(); // run assertions and gather results ConcurrentBag <DiagnosisResult> results = new ConcurrentBag <DiagnosisResult>(); foreach (String assertionName in verifyAsset.deadloopCheck) { results.Add(util.executeAssertion(specbase, assertionName)); } foreach (String assertionName in verifyAsset.livelockCheck) { results.Add(util.executeAssertion(specbase, assertionName)); } sw.Stop(); VerifyResult verResult = new VerifyResult(); verResult.elapseTime = sw.ElapsedMilliseconds; verResult.diagnosisList = results; System.Diagnostics.Debug.WriteLine("Total Result" + results.Count); T stuffReturned = (T)Convert.ChangeType(verResult, typeof(T)); callback(stuffReturned); }
public VerifyResult AsyncVerify(List <ArchMatrix> matrix) { PATUtil util = new PATUtil(); // generate CSP Code VerifyAsset verifyAsset = util.GenerateAsset(matrix); int totalAsert = verifyAsset.deadloopCheck.Count + verifyAsset.livelockCheck.Count; System.Diagnostics.Debug.WriteLine("total Assertion" + totalAsert); //initialize CSP module with CSP Code PAT.CSP.ModuleFacade modulebase = new PAT.CSP.ModuleFacade(); Stopwatch sw = new Stopwatch(); sw.Start(); SpecificationBase specbase = modulebase.ParseSpecification(verifyAsset.CSPCode, string.Empty, string.Empty); // run assertions and gather results results = new ConcurrentBag <DiagnosisResult>(); foreach (String assertionName in verifyAsset.deadloopCheck) { results.Add(util.executeAssertion(specbase, assertionName)); } foreach (String assertionName in verifyAsset.livelockCheck) { results.Add(util.executeAssertion(specbase, assertionName)); } sw.Stop(); VerifyResult verResult = new VerifyResult(); verResult.elapseTime = sw.ElapsedMilliseconds; verResult.diagnosisList = results; System.Diagnostics.Debug.WriteLine("Total Result" + results.Count); return(verResult); }