-
Notifications
You must be signed in to change notification settings - Fork 14
Description
In a recent zerocopy PR, we had to stop testing our nightly-only features under Kani. The reason is that those features were recently updated to work with a more recent version of the nightly Rust toolchain, and so are now incompatible with older nightlies. Since the Kani GH action selects its own toolchain, it makes that action incompatible with our nightly-only features. At the moment, we don't use Kani to test any of those features, so we simply disabled those features when using Kani. In the future, though, this could become a problem for us if we want to use Kani to test nightly-only features.
It would be great if the Kani GH action allowed specifying which Rust toolchain to use.
Here's the code in question from our Kani GH action invocation in CI:
# Use `--features __internal_use_only_features_that_work_on_stable`
# because the Kani GitHub Action uses its own pinned nightly
# toolchain. Sometimes, we make changes to our nightly features for
# more recent toolchains, and so our nightly features become
# incompatible with the toolchain that Kani uses. By only testing
# stable features, we ensure that this doesn't cause problems in CI.
args: "--package zerocopy --features __internal_use_only_features_that_work_on_stable --output-format=terse --randomize-layout --memory-safety-checks --overflow-checks --undefined-function-checks --unwinding-checks"