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 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); }
public Disposition Complete(WorkingDirectory workingDirectory, double cpuTimeSeconds, string stdout, string stderr, Disposition disposition) { VerificationResult vr = new VerificationResult( bplInput.getRelativePath(), cpuTimeSeconds, stdout, stderr, new VerificationResultBoogieParser()); vr.addBasicPresentation(); vr.toXmlFile(workingDirectory.PathTo(getOutputFile())); setWasRejectableFailure(vr.wasOnlyTimeouts()); return disposition; }
public override IVerbWorker getWorker() { //- read and aggregate all the input results. int parseFailures = 0; int verificationFailures = 0; int timeouts = 0; int filesWithParseFailures = 0; int filesWithVerificationFailures = 0; int filesWithTimeouts = 0; int passCount = 0; int failCount = 0; double cpuTime = 0; List <VerificationMessage> failMessages = new List <VerificationMessage>(); List <VerificationResult> results = new List <VerificationResult>(); IEnumerable <BuildObject> verificationResults = verification_results; foreach (BuildObject verificationResult in verificationResults) { VerificationResult vr = VerificationResult.fromXmlFile(verificationResult.getFilesystemPath()); results.Add(vr); if (vr == null) { return(new VerbSyncWorker( new Failed("Build system broke: missing VerificationResult for " + verificationResult))); } if (vr.pass) { passCount += 1; } else { failCount += 1; failMessages.AddRange(vr.getMessages()); } parseFailures += vr.parseFailures; verificationFailures += vr.verificationFailures; timeouts += vr.timeouts; filesWithParseFailures += vr.parseFailures > 0 ? 1 : 0; filesWithVerificationFailures += vr.verificationFailures > 0 ? 1 : 0; filesWithTimeouts += vr.timeouts > 0 ? 1 : 0; //-Logger.WriteLine("Synthesizing cpuTime from " + verificationResult); cpuTime += vr.cpuTime; } bool allPass = failCount == 0; PresentationBuilder pr = new PresentationBuilder(); int any_failures = parseFailures + verificationFailures + timeouts; string overall_status = any_failures > 0 ? "Fail" : "Success"; pr.pre("Git info goes here.\n"); pr.spacer(); pr.startHeader(); pr.color(colorByFailureCount(any_failures), "Overall status: " + overall_status); pr.endHeader(); pr.line("Count of files with failures: " + failCount); pr.startBullet(); pr.color(colorByFailureCount(filesWithParseFailures), "Files with parse failures: " + filesWithParseFailures.ToString()); pr.endBullet(); pr.startBullet(); pr.color(colorByFailureCount(filesWithVerificationFailures), "Files with verification failures: " + filesWithVerificationFailures.ToString()); pr.endBullet(); pr.startBullet(); pr.color(colorByFailureCount(filesWithTimeouts), "Files with timeouts: " + filesWithTimeouts.ToString()); pr.endBullet(); pr.spacer(); pr.header(String.Format("Total processing time: {0:0.0}s {1}", cpuTime, new TimeSpan((long)(cpuTime * 10000000L)))); int top_n = 10; pr.header(String.Format("Slowest {0} verifications:", top_n)); results.Sort(ByCpuTimeDecreasing); foreach (VerificationResult slowResult in results.Take(top_n)) { pr.startBullet(); pr.color(colorByFailureCount(slowResult.pass ? 0 : 1), String.Format("{0,6:##0.0}s {1}", slowResult.cpuTime, slowResult.sourceLabel)); pr.endBullet(); } foreach (VerificationMessage message in failMessages) { pr.spacer(); pr.header("Failure with " + message.sourceLabel); pr.pre(message.message); } Presentation pres = pr.fix(); VerificationResult outvr = new VerificationResult("summary", allPass, cpuTime, parseFailures, verificationFailures, timeouts, failMessages); outvr.addXmlFiller(pres); outvr.toXmlFile(this.outputObject.getFilesystemPath()); setWasVerificationTimeout(outvr.wasOnlyTimeouts()); return(new VerbSyncWorker(new Fresh())); }