-
Notifications
You must be signed in to change notification settings - Fork 112
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Dependent Dafny PR: dafny-lang/dafny#5031 ### Changes - Change the API `executionEngine.GetImplementationTasks` to `executionEngine.GetVerificationTasks`, which returns a task for each statically defined assertion batch. When using the split on every assert option, this will return a verification task for each assertion. ### Testing - Added test SplitOnEveryAssertion --------- Co-authored-by: Aaron Tomb <[email protected]>
- Loading branch information
1 parent
aa88c55
commit fbf1aa2
Showing
24 changed files
with
925 additions
and
793 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#nullable enable | ||
using VC; | ||
|
||
namespace Microsoft.Boogie; | ||
|
||
public interface IVerificationStatus {} | ||
|
||
/// <summary> | ||
/// Results are available | ||
/// </summary> | ||
public record Completed(VerificationRunResult Result) : IVerificationStatus; | ||
|
||
/// <summary> | ||
/// Scheduled to be run but waiting for resources | ||
/// </summary> | ||
public record Queued : IVerificationStatus; | ||
|
||
/// <summary> | ||
/// Not scheduled to be run | ||
/// </summary> | ||
public record Stale : IVerificationStatus; | ||
|
||
/// <summary> | ||
/// Currently being run | ||
/// </summary> | ||
public record Running : IVerificationStatus; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
#nullable enable | ||
using System; | ||
using System.Diagnostics; | ||
using VC; | ||
|
||
namespace Microsoft.Boogie; | ||
|
||
public interface IVerificationTask { | ||
IVerificationStatus CacheStatus { get; } | ||
ManualSplit Split { get; } | ||
|
||
/// <summary> | ||
/// Associated with the verification scope this task occurs in. Multiple tasks can occur in the same scope | ||
/// Boogie's term for a verification scope is an Implementation | ||
/// </summary> | ||
IToken ScopeToken { get; } | ||
|
||
/// <summary> | ||
/// Uniquely identifies the verification scope this task occurs in. | ||
/// Boogie's term for a verification scope is an Implementation | ||
/// </summary> | ||
string ScopeId { get; } | ||
|
||
/// <summary> | ||
/// Token that identifies where this task originates from | ||
/// </summary> | ||
IToken Token { get; } | ||
|
||
/// <summary> | ||
/// If not running, start running. | ||
/// If already running and not cancelled, return null. | ||
/// If already running but being cancelled, queue a new run and return its observable. | ||
/// If already running but being cancelled, and a new run is queued, return null. | ||
/// </summary> | ||
IObservable<IVerificationStatus>? TryRun(); | ||
bool IsIdle { get; } | ||
void Cancel(); | ||
} |
Oops, something went wrong.