Esempio n. 1
0
 public Disposition complete(ProcessInvokeAsyncWorker worker)
 {
     VerificationResult vr = new VerificationResult(bplInput.getRelativePath(), worker.pinv, new VerificationResultBoogieParser());
     vr.addBasicPresentation();
     vr.toXmlFile(getOutputFile().getFilesystemPath());
     setWasVerificationTimeout(vr.wasOnlyTimeouts());
     return worker.pinv.disposition;
 }
 public override Disposition complete(ProcessInvokeAsyncWorker worker)
 {
     if (!(worker.pinv.disposition is Failed))
     {
         File.WriteAllText(getOutputFile().getFilesystemPath(), worker.pinv.getStdout());
     }
     return(worker.pinv.disposition);
 }
Esempio n. 3
0
        public Disposition complete(ProcessInvokeAsyncWorker worker)
        {
            VerificationResult vr = new VerificationResult(dfysource.getRelativePath(), worker.pinv, new VerificationResultDafnyParser());

            vr.addBasicPresentation();
            vr.toXmlFile(getOutputFile().getRelativePath());
            setWasVerificationTimeout(vr.wasOnlyTimeouts());
            return(worker.pinv.disposition);
        }
Esempio n. 4
0
        public Disposition complete(ProcessInvokeAsyncWorker worker)
        {
            if (worker.pinv.disposition is Fresh)
            {
                BeatExtensions.propagatePrivateImports(contextVerb, beatobj, outputFile());

                //- And then propagate the NuBuild annotations, too.
                AnnotationScanner.transferAnnotations(
                    beatobj, outputFile(), BoogieAsmDepBase.CommentSymbol);
            }

            return(worker.pinv.disposition);
        }
Esempio n. 5
0
        public virtual Disposition complete(ProcessInvokeAsyncWorker worker)
        {
            if (!(worker.pinv.disposition is Failed))
            {
                //- Check that the executable isn't too large
                long exeSize = new FileInfo(outputObject.getFilesystemPath()).Length;

                if (exeSize > maxExeSize)
                {
                    return(new Failed("Executable too big"));
                }
            }

            return(worker.pinv.disposition);
        }
        public Disposition complete(ProcessInvokeAsyncWorker worker)
        {
            if (worker.pinv.disposition is Failed)
            {
                return(worker.pinv.disposition);
            }

            HashSet <string> createdFiles  = new HashSet <string>(Directory.GetFiles(getAbsDestPath()).Select(path => Path.GetFileName(path)));
            HashSet <string> expectedFiles = new HashSet <string>(getOutputs().Select(obj => obj.getFileName()));

            //- DafnyCC/DafnySpec process a big batch of files together. Verify that we correctly modeled what it did.
            if (!createdFiles.SetEquals(expectedFiles))
            {
                bool   dummy   = createdFiles.SetEquals(expectedFiles);
                int    missing = expectedFiles.Except(createdFiles).Count();
                int    extra   = createdFiles.Except(expectedFiles).Count();
                string msg     = "Missing files: " + String.Join(",", expectedFiles.Except(createdFiles)) + "\n" +
                                 "  Extra files: " + String.Join(",", createdFiles.Except(expectedFiles));
                return(new Failed(msg));
            }

            //- Propagate the NuBuild annotations.
            foreach (InOutMapping mapping in getInOutMappings())
            {
                if (mapping.dfysource != null &&
                    transformFilterAccepts(mapping.dfysource))
                {
                    AnnotationScanner.transferAnnotations(
                        mapping.dfysource, mapping.basmIfc, BoogieAsmDepBase.CommentSymbol);
                    AnnotationScanner.transferAnnotations(
                        mapping.dfysource, mapping.basmImp, BoogieAsmDepBase.CommentSymbol);
                }
            }

            return(new Fresh());;
        }
Esempio n. 7
0
 public Disposition complete(ProcessInvokeAsyncWorker worker)
 {
     return(worker.pinv.disposition);
 }
Esempio n. 8
0
 public override Disposition complete(ProcessInvokeAsyncWorker worker)
 {
     //- No cleanup to do
     return(worker.pinv.disposition);
 }
Esempio n. 9
0
 public Disposition complete(ProcessInvokeAsyncWorker worker)
 {
     //- No cleanup to do here but pass back the disposition.
     return(worker.pinv.disposition);
 }