diff options
Diffstat (limited to 'Test/AbsHoudini/test1.bpl')
-rw-r--r-- | Test/AbsHoudini/test1.bpl | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/Test/AbsHoudini/test1.bpl b/Test/AbsHoudini/test1.bpl index 10015723..80521921 100644 --- a/Test/AbsHoudini/test1.bpl +++ b/Test/AbsHoudini/test1.bpl @@ -1,40 +1,40 @@ -// RUN: %boogie -noinfer -contractInfer -printAssignment -inlineDepth:1 -abstractHoudini:IA[ConstantProp] "%s" > "%t"
-// RUN: %diff "%s.expect" "%t"
-var g: bool;
-
-procedure foo()
-modifies g;
-ensures b0() || (!old(g) ==> old(g) == g);
-{
- call AcquireLock();
- call ReleaseLock();
-}
-
-procedure AcquireLock()
-modifies g;
-ensures b1() || old(g) == g;
-{
- g := true;
-}
-
-procedure ReleaseLock()
-modifies g;
-ensures b2() || old(g) == g;
-{
- g := false;
-}
-
-procedure main()
-modifies g;
-{
- g := false;
- call foo();
- assert Assert() || !g;
-}
-
-function {:existential true} b0(): bool;
-function {:existential true} b1(): bool;
-function {:existential true } b2(): bool;
-function {:existential true} Assert(): bool;
-
-// Expected: b0 = false, b1 = true, b2 = true, Assert = false
+// RUN: %boogie -noinfer -contractInfer -printAssignment -inlineDepth:1 -abstractHoudini:IA[ConstantProp] "%s" > "%t" +// RUN: %diff "%s.expect" "%t" +var g: bool; + +procedure foo() +modifies g; +ensures b0() || (!old(g) ==> old(g) == g); +{ + call AcquireLock(); + call ReleaseLock(); +} + +procedure AcquireLock() +modifies g; +ensures b1() || old(g) == g; +{ + g := true; +} + +procedure ReleaseLock() +modifies g; +ensures b2() || old(g) == g; +{ + g := false; +} + +procedure main() +modifies g; +{ + g := false; + call foo(); + assert Assert() || !g; +} + +function {:existential true} b0(): bool; +function {:existential true} b1(): bool; +function {:existential true } b2(): bool; +function {:existential true} Assert(): bool; + +// Expected: b0 = false, b1 = true, b2 = true, Assert = false |