예제 #1
0
 public BeatVerb(IContextGeneratingVerb contextVerb, BuildObject beatobj, string appLabel)
 {
     this.contextVerb = contextVerb;
     this.beatobj = beatobj;
     this.appLabel = appLabel;
     this.abstractId = new AbstractId(this.GetType().Name, version, beatobj.ToString(), contextVerb.getPoundDefines(), concrete: appLabel);
 }
예제 #2
0
        public BatchVerifyVerb(BuildObject batch_label, HashSet<IObligationsProducer> producers, BatchMode mode) {            
            this.mode = mode;
            this.producers = producers;

            outputObject = batch_label.makeOutputObject(BATCH_EXTN + VerificationObligationList.VOL_EXTN);
            abstractId = new AbstractId(this.GetType().Name, version, batch_label.ToString(), concrete:mode.ToString());            
        }
예제 #3
0
 public BeatVerb(IContextGeneratingVerb contextVerb, BuildObject beatobj, string appLabel)
 {
     this.contextVerb = contextVerb;
     this.beatobj     = beatobj;
     this.appLabel    = appLabel;
     this.abstractId  = new AbstractId(this.GetType().Name, version, beatobj.ToString(), contextVerb.getPoundDefines(), concrete: appLabel);
 }
예제 #4
0
        public BoogieVerb(IContextGeneratingVerb context, BuildObject bplInput, VerificationRequest.SymDiffMode symdiff)
        {
            if (bplInput.getExtension().Equals(BPL_EXTN))
            {
                this.bplInput = bplInput;
                upstreamVerbs = new List <IVerb>();
                // TODO this will probably break, since we don't know where this bplInput came from. Maybe that's okay, since the verb had to already exist to reach this point.
            }
            else if (symdiff == VerificationRequest.SymDiffMode.NoSymDiff)
            {
                IVerb boogieAsmVerb = new BoogieAsmVerifyVerb(context, bplInput, false);
                this.bplInput = boogieAsmVerb.getOutputs().First();
                upstreamVerbs = new IVerb[] { boogieAsmVerb };
            }
            else
            {
                IVerb workerVerb;
                SymDiffEngine.BuildPipeline(context, bplInput, out this.bplInput, out workerVerb);
                upstreamVerbs = new IVerb[] { workerVerb };
            }

            this.abstractId = new AbstractId(
                this.GetType().Name,
                version,
                bplInput.ToString(),
                concrete: symdiff.ToString());
        }
        public SymDiffExtractVerb(BoogieAsmVerifyVerb basmVerb, Mode mode)
        {
            this.basmVerb = basmVerb;
            this.basmIn   = basmVerb.outputFile();
            this.mode     = mode;

            abstractId = new AbstractId(this.GetType().Name, version, basmIn.ToString(), concrete: mode.ToString());
        }
예제 #6
0
        public BatchVerifyVerb(BuildObject batch_label, HashSet<IObligationsProducer> producers, BatchMode mode)
        {
            this.mode = mode;
            this.producers = producers;

            this.outputObject = batch_label.makeOutputObject(BATCH_EXTN + VerificationObligationList.VOL_EXTN);
            this.abstractId = new AbstractId(this.GetType().Name, version, batch_label.ToString(), concrete: mode.ToString());
        }
예제 #7
0
        public MasmVerb(IAsmProducer asmVerb)
        {
            this.asmVerb = asmVerb;
            this.asmFile = asmVerb.getAsmFile();

            abstractId   = new AbstractId(this.GetType().Name, version, asmFile.ToString());
            outputObject = asmFile.makeOutputObject(OBJ_EXTN);
        }
예제 #8
0
        public AsmRewriterVerb(BoogieAsmLinkVerb asmVerb)
        {
            this.asmVerb    = asmVerb;
            this.asmFileIn  = asmVerb.getAsmFile();
            this.asmFileOut = asmFileIn.makeOutputObject(WASM_EXTN);

            abstractId        = new AbstractId(this.GetType().Name, version, asmFileOut.ToString());
            this.pythonScript = new SourcePath("tools/scripts/build-standalone-asm.py", SourcePath.SourceType.sourceTypeTools);
        }
        public VerificationResultSummaryVerb(IObligationsProducer producer)
        {
            this.producer = producer;
            BuildObject id = producer.getObligationSet(); //-producer.getIdentifier();

            outputObject         = id.makeOutputObject(id.getExtension() + SUMMARY_EXTN);
            abstractId           = new AbstractId(this.GetType().Name, version, id.ToString());
            verification_results = null;
        }
        public SymDiffMergeConfigVerb(BoogieAsmVerifyVerb basmVerb, SymDiffInferVerb inferVerb)
        {
            this.basmVerb       = basmVerb;
            this.mutualSummary  = basmVerb.getMutualSummary();
            this.inferVerb      = inferVerb;
            this.inferredConfig = inferVerb.getOutputFile();

            abstractId = new AbstractId(this.GetType().Name, version, inferredConfig.ToString());  //- One should suffice for uniqueness: String.Format("{0},{1}", mutualSummary,inferredConfig));
            output     = this.basmVerb.outputFile().makeOutputObject(CONFIG_EXTN);
        }
예제 #11
0
 public ObjectFailedException(BuildObject obj, Failed failed)
     : base(obj.ToString() + ": " + failed.ToString())
 {
 }
예제 #12
0
        public LinkerVerb(MasmVerb masmVerb, bool isLoader)
        {
            this.masmVerb = masmVerb;
            this.isLoader = isLoader;
            this.objFile  = masmVerb.getObj();

            abstractId   = new AbstractId(this.GetType().Name, version + getVersion(), objFile.ToString(), concrete: isLoader ? "Loader" : "NonLoader");
            outputObject = objFile.makeOutputObject(outputExtension());

            //- Default settings for the apps
            maxExeSize = 1 * 1024 * 1024; //- 1 MB
            entryPoint = "?AppEntryPoint";
            baseAddr   = 0x340000;

            if (isLoader)
            {
                //- Override the settings above with loader-specific values
                maxExeSize = 58 * 1024;  //- 58 KB
                entryPoint = "?LoaderEntryPoint";
                baseAddr   = 0x300000;
            }
        }
예제 #13
0
 public ObjectNotReadyException(BuildObject obj)
     : base(obj.ToString())
 {
 }
예제 #14
0
 public ObjNotReadyException(BuildObject obj)
     : base(obj.ToString())
 {
 }