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