Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Contracts for a few core functions #3107

Merged
merged 15 commits into from
May 29, 2024
Merged

Conversation

celinval
Copy link
Contributor

@celinval celinval commented Mar 25, 2024

Adds a new regression test suite that includes safety contracts for core functions.

Call-out

This PR is still incomplete since it depends on a few changes that are still pending. For example, #2997 is a blocker. The relevant changes should be the regression script changes and in the new directory tests/std-checks.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

@github-actions github-actions bot added the Z-BenchCI Tag a PR to run benchmark CI label Mar 25, 2024
@celinval celinval marked this pull request as ready for review May 14, 2024 21:10
@celinval celinval requested a review from a team as a code owner May 14, 2024 21:10
@celinval
Copy link
Contributor Author

FYI, I'm planning to add more tests to the new intrinsic in a follow up PR together with any possible fix.

@celinval celinval changed the title Draft: Contracts for a few core functions Contracts for a few core functions May 17, 2024
kani-compiler/src/kani_middle/transform/body.rs Outdated Show resolved Hide resolved
kani-compiler/src/kani_middle/transform/kani_intrinsics.rs Outdated Show resolved Hide resolved
tests/std-checks/core/src/mem.rs Show resolved Hide resolved
tests/std-checks/core/src/ptr.rs Outdated Show resolved Hide resolved
- I noticed that invalid values should be checked for
  copy_nonoverlapping statement. I added an unsupported check for now
  so we can actually implement the check later.
@celinval celinval enabled auto-merge (squash) May 29, 2024 17:01
@celinval celinval merged commit 8a2b7e5 into model-checking:main May 29, 2024
23 checks passed
tautschnig added a commit to tautschnig/kani that referenced this pull request Jun 4, 2024
Updated version in all `Cargo.toml` files (via `find . -name Cargo.toml -exec
sed -i 's/version = "0.51.0"/version = "0.52.0"/' {} \;`) and ran `cargo
build-dev` to have `Cargo.lock` files updated.

GitHub generated release notes:

 ## What's Changed
* Bump tests/perf/s2n-quic from `6dd41e0` to `bd37960` by @dependabot in model-checking#3178
* Automatic cargo update to 2024-05-13 by @github-actions in model-checking#3177
* Upgrade toolchain to 2024-04-22 by @zhassan-aws in model-checking#3171
* Upgrade toolchain to 2024-05-14 by @zhassan-aws in model-checking#3183
* Automatic toolchain upgrade to nightly-2024-05-15 by @github-actions in model-checking#3185
* Include `--check-cfg=cfg(kani)` in the rust flags to avoid a warning about an unknown `cfg`. by @zhassan-aws in model-checking#3187
* Automatic toolchain upgrade to nightly-2024-05-16 by @github-actions in model-checking#3189
* Perform cargo update because of yanked libc version by @zhassan-aws in model-checking#3192
* Automatic toolchain upgrade to nightly-2024-05-17 by @github-actions in model-checking#3191
* Automatic cargo update to 2024-05-20 by @github-actions in model-checking#3195
* Bump tests/perf/s2n-quic from `bd37960` to `f5d9d74` by @dependabot in model-checking#3196
* New section about linter configuraton checking in the doc. by @remi-delmas-3000 in model-checking#3198
* Automatic cargo update to 2024-05-27 by @github-actions in model-checking#3201
* Bump tests/perf/s2n-quic from `f5d9d74` to `d03cc47` by @dependabot in model-checking#3202
* Update Rust toolchain from nightly-2024-05-17 to nightly-2024-05-23 by @remi-delmas-3000 in model-checking#3199
* Fix `{,e}println!()` by @GrigorenkoPV in model-checking#3209
* Contracts for a few core functions by @celinval in model-checking#3107
* Don't crash benchcomp when rounding non-numeric values by @karkhaz in model-checking#3211
* Update Rust toolchain nightly-2024-05-24 by @qinheping in model-checking#3212
* Upgrade Rust toolchain nightly-2024-05-27  by @qinheping in model-checking#3215
* Automatic toolchain upgrade to nightly-2024-05-28 by @github-actions in model-checking#3217
* Automatic cargo update to 2024-06-03 by @github-actions in model-checking#3220
* Bump tests/perf/s2n-quic from `d03cc47` to `d90729d` by @dependabot in model-checking#3222
* Add simple API for shadow memory by @zhassan-aws in model-checking#3200

 ## New Contributors
* @GrigorenkoPV made their first contribution in model-checking#3209

**Full Changelog**: model-checking/kani@kani-0.51.0...kani-0.52.0
tautschnig added a commit that referenced this pull request Jun 4, 2024
Updated version in all `Cargo.toml` files (via `find . -name Cargo.toml
-exec sed -i 's/version = "0.51.0"/version = "0.52.0"/' {} \;`) and ran
`cargo build-dev` to have `Cargo.lock` files updated.

GitHub generated release notes:

 ## What's Changed
* Bump tests/perf/s2n-quic from `6dd41e0` to `bd37960` by @dependabot in
#3178
* Automatic cargo update to 2024-05-13 by @github-actions in
#3177
* Upgrade toolchain to 2024-04-22 by @zhassan-aws in
#3171
* Upgrade toolchain to 2024-05-14 by @zhassan-aws in
#3183
* Automatic toolchain upgrade to nightly-2024-05-15 by @github-actions
in #3185
* Include `--check-cfg=cfg(kani)` in the rust flags to avoid a warning
about an unknown `cfg`. by @zhassan-aws in
#3187
* Automatic toolchain upgrade to nightly-2024-05-16 by @github-actions
in #3189
* Perform cargo update because of yanked libc version by @zhassan-aws in
#3192
* Automatic toolchain upgrade to nightly-2024-05-17 by @github-actions
in #3191
* Automatic cargo update to 2024-05-20 by @github-actions in
#3195
* Bump tests/perf/s2n-quic from `bd37960` to `f5d9d74` by @dependabot in
#3196
* New section about linter configuraton checking in the doc. by
@remi-delmas-3000 in #3198
* Automatic cargo update to 2024-05-27 by @github-actions in
#3201
* Bump tests/perf/s2n-quic from `f5d9d74` to `d03cc47` by @dependabot in
#3202
* Update Rust toolchain from nightly-2024-05-17 to nightly-2024-05-23 by
@remi-delmas-3000 in #3199
* Fix `{,e}println!()` by @GrigorenkoPV in
#3209
* Contracts for a few core functions by @celinval in
#3107
* Don't crash benchcomp when rounding non-numeric values by @karkhaz in
#3211
* Update Rust toolchain nightly-2024-05-24 by @qinheping in
#3212
* Upgrade Rust toolchain nightly-2024-05-27 by @qinheping in
#3215
* Automatic toolchain upgrade to nightly-2024-05-28 by @github-actions
in #3217
* Automatic cargo update to 2024-06-03 by @github-actions in
#3220
* Bump tests/perf/s2n-quic from `d03cc47` to `d90729d` by @dependabot in
#3222
* Add simple API for shadow memory by @zhassan-aws in
#3200

 ## New Contributors
* @GrigorenkoPV made their first contribution in
#3209

**Full Changelog**:
kani-0.51.0...kani-0.52.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Z-BenchCI Tag a PR to run benchmark CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants