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);
        }
Exemplo n.º 2
0
        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);
        }