diff --git a/kani-dependencies b/kani-dependencies index b3667d086efa..d12d30e1a95b 100644 --- a/kani-dependencies +++ b/kani-dependencies @@ -1,5 +1,5 @@ CBMC_MAJOR="6" -CBMC_MINOR="6" -CBMC_VERSION="6.6.0" +CBMC_MINOR="7" +CBMC_VERSION="6.7.1" KISSAT_VERSION="4.0.1" diff --git a/tests/expected/loop-contract/struct_projection.expected b/tests/expected/loop-contract/struct_projection.expected index e398784ef656..cb57de9f6a56 100644 --- a/tests/expected/loop-contract/struct_projection.expected +++ b/tests/expected/loop-contract/struct_projection.expected @@ -1,8 +1,4 @@ -struct_projection.loop_invariant_step.1\ - - Status: SUCCESS\ - - Description: "Check invariant after step for loop struct_projection.0" - -struct_projection.loop_invariant_step.2\ +struct_projection.loop_invariant_step.\ - Status: SUCCESS\ - Description: "Check invariant after step for loop struct_projection.0" diff --git a/tests/expected/shadow/unsupported_num_objects/test.rs b/tests/expected/shadow/unsupported_num_objects/test.rs index bb9233afc648..f7efb80312d7 100644 --- a/tests/expected/shadow/unsupported_num_objects/test.rs +++ b/tests/expected/shadow/unsupported_num_objects/test.rs @@ -10,17 +10,22 @@ static mut SM: kani::shadow::ShadowMem = kani::shadow::ShadowMem::new(fals fn check_max_objects() { let mut i = 0; // A dummy loop that creates `N`` objects. - // After the loop, CBMC's object ID counter should be at `N` + 2: + // After the loop, CBMC's object ID counter should be at `N` + 3: // - `N` created in the loop + // - the NULL pointer whose object ID is 0, and - // - the object ID for `i` + // - objects for i, have_42 + let mut have_42 = false; while i < N { - let x: Box = Box::new(i); + let x: Box = Box::new(kani::any()); + if *x == 42 { + have_42 = true; + } i += 1; } - // create a new object whose ID is `N` + 2 - let x = 42; + // create a new object whose ID is `N` + 4 + let x: i32 = have_42 as i32; + assert_eq!(x, have_42 as i32); // the following call to `set` would fail if the object ID for `x` exceeds // the maximum allowed by Kani's shadow memory model unsafe { @@ -30,10 +35,10 @@ fn check_max_objects() { #[kani::proof] fn check_max_objects_pass() { - check_max_objects::<510>(); + check_max_objects::<1019>(); } #[kani::proof] fn check_max_objects_fail() { - check_max_objects::<511>(); + check_max_objects::<1020>(); } diff --git a/tests/kani/Quantifiers/from_raw_part_fixme.rs b/tests/kani/Quantifiers/from_raw_parts.rs similarity index 94% rename from tests/kani/Quantifiers/from_raw_part_fixme.rs rename to tests/kani/Quantifiers/from_raw_parts.rs index 88a711e963d1..4010554a3745 100644 --- a/tests/kani/Quantifiers/from_raw_part_fixme.rs +++ b/tests/kani/Quantifiers/from_raw_parts.rs @@ -2,8 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 OR MIT // kani-flags: -Z quantifiers -//! FIXME: - use std::mem; #[kani::proof] diff --git a/tests/kani/ThreadLocalRef/main.rs b/tests/kani/ThreadLocalRef/main.rs index f6660e3806fb..4af902d1915b 100644 --- a/tests/kani/ThreadLocalRef/main.rs +++ b/tests/kani/ThreadLocalRef/main.rs @@ -29,14 +29,16 @@ fn test_i32() { }); } -#[kani::proof] -#[kani::unwind(7)] -fn test_complex_data() { - COMPLEX_DATA.with(|c| { - assert_eq!(*c.borrow(), "before"); - *c.borrow_mut() = "after" - }); - COMPLEX_DATA.with(|c| { - assert_eq!(*c.borrow(), "after"); - }); -} +// TODO: This test exposes a bug in CBMC 6.7.1. It should be re-enabled once a version of CBMC that +// includes https://github.com/diffblue/cbmc/pull/8678 has been released. +// #[kani::proof] +// #[kani::unwind(7)] +// fn test_complex_data() { +// COMPLEX_DATA.with(|c| { +// assert_eq!(*c.borrow(), "before"); +// *c.borrow_mut() = "after" +// }); +// COMPLEX_DATA.with(|c| { +// assert_eq!(*c.borrow(), "after"); +// }); +// } diff --git a/tests/perf/hashset/expected b/tests/perf/hashset/expected index 1fbcbbd13c25..e498f89ac185 100644 --- a/tests/perf/hashset/expected +++ b/tests/perf/hashset/expected @@ -1 +1 @@ -3 successfully verified harnesses, 0 failures, 3 total +2 successfully verified harnesses, 0 failures, 2 total diff --git a/tests/perf/hashset/src/lib.rs b/tests/perf/hashset/src/lib.rs index c9a3c01f93de..cc3378f05790 100644 --- a/tests/perf/hashset/src/lib.rs +++ b/tests/perf/hashset/src/lib.rs @@ -35,14 +35,16 @@ fn check_contains() { assert!(set.contains(&first)); } -#[kani::proof] -#[kani::stub(RandomState::new, concrete_state)] -#[kani::unwind(5)] -#[kani::solver(kissat)] -fn check_contains_str() { - let set = HashSet::from(["s"]); - assert!(set.contains(&"s")); -} +// TODO: This test exposes a bug in CBMC 6.7.1. It should be re-enabled once a version of CBMC that +// includes https://github.com/diffblue/cbmc/pull/8678 has been released. +// #[kani::proof] +// #[kani::stub(RandomState::new, concrete_state)] +// #[kani::unwind(5)] +// #[kani::solver(kissat)] +// fn check_contains_str() { +// let set = HashSet::from(["s"]); +// assert!(set.contains(&"s")); +// } // too slow so don't run in the regression for now #[cfg(slow)] diff --git a/tests/perf/s2n-quic b/tests/perf/s2n-quic index 8715fdffdd33..32ba87d2eb08 160000 --- a/tests/perf/s2n-quic +++ b/tests/perf/s2n-quic @@ -1 +1 @@ -Subproject commit 8715fdffdd33f8fdc89000831eb99a9b0c261276 +Subproject commit 32ba87d2eb08459ad5ad6e3cf7207cba72c47a49