public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            BuildObject           obligations = producer.getObligationSet();
            HashSet <BuildObject> deps        = new HashSet <BuildObject>();

            deps.Add(obligations);

            try
            {
                VerificationObligationList vol = VerificationObligationList.fetch(obligations);
                this.verification_results = vol.getVerificationObligations();
                deps.UnionWith(this.verification_results);
                ddisp = DependencyDisposition.Complete;
            }
            catch (ObjNotReadyException)
            {
                ddisp = DependencyDisposition.Incomplete;
            }
            catch (ObjFailedException)
            {
                ddisp = DependencyDisposition.Failed;
            }

            return(deps);
        }
 public override IVerbWorker getWorker(WorkingDirectory workingDirectory)
 {
     IEnumerable<BuildObject> verificationResults = getBoogieVerbs(verificationRequest)
         .Select(boogie_verb => boogie_verb.getOutputFile());
     VerificationObligationList vol = new VerificationObligationList(verificationResults);
     vol.store(workingDirectory, this.obligations);
     return new VerbSyncWorker(workingDirectory, new Fresh());
 }
        public override IVerbWorker getWorker()
        {
            IEnumerable <BuildObject> verificationResults = getBoogieVerbs(verificationRequest)
                                                            .Select(boogie_verb => boogie_verb.getOutputFile());
            VerificationObligationList vol = new VerificationObligationList(verificationResults);

            vol.store(this.obligations);
            return(new VerbSyncWorker(new Fresh()));
        }
예제 #4
0
 public override IVerbWorker getWorker(WorkingDirectory workingDirectory)
 {
     IEnumerable<BuildObject> verificationResults = this.getVerbs()
         .Where(verb => verb is VerificationResultVerb)
         .Select(dfy_one => ((VerificationResultVerb)dfy_one).getOutputFile());
     VerificationObligationList vol = new VerificationObligationList(verificationResults);
     vol.store(workingDirectory, this.obligations);
     return new VerbSyncWorker(workingDirectory, new Fresh());
 }
예제 #5
0
        public override IVerbWorker getWorker()
        {
            IEnumerable <BuildObject> verificationResults = getVerbs()
                                                            .Where(verb => verb is VerificationResultVerb)
                                                            .Select(dfy_one => ((VerificationResultVerb)dfy_one).getOutputFile());
            VerificationObligationList vol = new VerificationObligationList(verificationResults);

            vol.store(this.obligations);
            return(new VerbSyncWorker(new Fresh()));
        }
예제 #6
0
        public override IVerbWorker getWorker() 
        {
            //- Coallesce the VerificationObligationLists from each producer into a single result set
            IEnumerable<BuildObject> master = new HashSet<BuildObject>();
            foreach (IObligationsProducer producer in producers) {
                VerificationObligationList vol = VerificationObligationList.fetch(producer.getObligationSet());
                master = master.Union(vol.getVerificationObligations());
            }

            VerificationObligationList myVOL = new VerificationObligationList(master);
            myVOL.store(this.outputObject);
            return new VerbSyncWorker(new Fresh());
        }
        public static VerificationObligationList fetch(BuildObject obj)
        {
            VerificationObligationList vol = new VerificationObligationList();
            using (TextReader sr = BuildEngine.theEngine.Repository.OpenRead(obj))
            {
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    Util.Assert(!line.StartsWith(BuildEngine.theEngine.getSrcRoot()));   // unimplemented
                    Util.Assert(!line.StartsWith(BuildEngine.theEngine.getVirtualRoot()));   // nonsense
                    vol.Add(new BuildObject(line));
                }
            }

            vol.complete = true;
            return vol;
        }
        public static VerificationObligationList fetch(BuildObject obj)
        {
            VerificationObligationList vol = new VerificationObligationList();

            using (TextReader sr = BuildEngine.theEngine.getNuObjContents().openRead(obj))
            {
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    Util.Assert(!line.StartsWith(BuildEngine.theEngine.getSrcRoot()));     //- unimplemented
                    Util.Assert(!line.StartsWith(BuildEngine.theEngine.getVirtualRoot())); //- nonsense
                    vol.Add(new BuildObject(line));
                }
            }
            vol._fixed = true;
            return(vol);
        }
예제 #9
0
        public override IVerbWorker getWorker(WorkingDirectory workingDirectory)
        {
            // Coallesce the VerificationObligationLists from each producer into a single result set
            IEnumerable<BuildObject> master = new HashSet<BuildObject>();
            foreach (IObligationsProducer producer in this.producers)
            {
                VerificationObligationList vol = VerificationObligationList.fetch(producer.getObligationSet());
                master = master.Union(vol.getVerificationObligations());
            }

            VerificationObligationList myVOL = new VerificationObligationList(master);
            myVOL.store(workingDirectory, this.outputObject);
            return new VerbSyncWorker(workingDirectory, new Fresh());
        }