Skip to content

Commit 4891526

Browse files
authored
[cargo-verus] fix: mitigate known caching issue (#2794)
1 parent 99ae45a commit 4891526

4 files changed

Lines changed: 13 additions & 5 deletions

File tree

source/.cargo/config.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ rustflags = [
99
]
1010

1111
[env]
12+
CARGO_UNSTABLE_CHECKSUM_FRESHNESS = "true"
1213
RUSTC_BOOTSTRAP = "1"
1314
RUST_MIN_STACK = "20971520"
1415
VERUS_IN_VARGO = "1"

source/cargo-verus/src/subcommands.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ use crate::toolchains::{self, TOOLCHAINS, is_matching_known_and_used};
1515
use crate::vstd_build::{VstdBuild, build_vstd};
1616

1717
pub const CARGO_DEFAULT_LIB_METADATA: &str = "__CARGO_DEFAULT_LIB_METADATA";
18+
pub const CARGO_UNSTABLE_CHECKSUM_FRESHNESS: &str = "CARGO_UNSTABLE_CHECKSUM_FRESHNESS";
1819

1920
pub const RUSTC_WRAPPER: &str = "RUSTC_WRAPPER";
21+
pub const RUSTC_BOOTSTRAP: &str = "RUSTC_BOOTSTRAP";
2022

2123
pub const VERUS_DRIVER_ARGS: &str = " __VERUS_DRIVER_ARGS__";
2224
pub const VERUS_DRIVER_ARGS_FOR: &str = " __VERUS_DRIVER_ARGS_FOR_";
@@ -426,6 +428,8 @@ fn make_cargo_plan(
426428
env_overrides.insert(VERUS_DRIVER_VIA_CARGO.to_owned(), "1".to_owned());
427429
// See https://github.com/rust-lang/cargo/blob/94aa7fb1321545bbe922a87cb11f5f4559e3be63/src/cargo/core/compiler/fingerprint/mod.rs#L71
428430
env_overrides.insert(CARGO_DEFAULT_LIB_METADATA.to_owned(), "verus".to_owned());
431+
env_overrides.insert(CARGO_UNSTABLE_CHECKSUM_FRESHNESS.to_owned(), "true".to_owned());
432+
env_overrides.insert(RUSTC_BOOTSTRAP.to_owned(), "1".to_owned());
429433

430434
let common_verus_driver_args = pack_verus_driver_args_for_env(common_verus_driver_args.iter());
431435

source/cargo-verus/src/test_utils.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ use std::path::Path;
55
use crate::subcommands::CargoRunPlan;
66

77
pub use crate::subcommands::{
8-
CARGO_DEFAULT_LIB_METADATA, RUSTC_WRAPPER, VERUS_DRIVER_ARGS, VERUS_DRIVER_ARGS_FOR,
9-
VERUS_DRIVER_ARGS_SEP, VERUS_DRIVER_IS_BUILTIN, VERUS_DRIVER_IS_BUILTIN_MACROS,
10-
VERUS_DRIVER_VERIFY, VERUS_DRIVER_VIA_CARGO,
8+
CARGO_DEFAULT_LIB_METADATA, CARGO_UNSTABLE_CHECKSUM_FRESHNESS, RUSTC_BOOTSTRAP, RUSTC_WRAPPER,
9+
VERUS_DRIVER_ARGS, VERUS_DRIVER_ARGS_FOR, VERUS_DRIVER_ARGS_SEP, VERUS_DRIVER_IS_BUILTIN,
10+
VERUS_DRIVER_IS_BUILTIN_MACROS, VERUS_DRIVER_VERIFY, VERUS_DRIVER_VIA_CARGO,
1111
};
1212

1313
pub struct MockWorkspace {

source/cargo-verus/tests/test_verify.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use cargo_verus::{
22
BIN_NAME, ExecutionPlan, plan_execution,
33
test_utils::{
4-
CARGO_DEFAULT_LIB_METADATA, MockDep, MockPackage, MockWorkspace, RUSTC_WRAPPER,
5-
VERUS_DRIVER_ARGS, VERUS_DRIVER_ARGS_FOR, VERUS_DRIVER_VERIFY, VERUS_DRIVER_VIA_CARGO,
4+
CARGO_DEFAULT_LIB_METADATA, CARGO_UNSTABLE_CHECKSUM_FRESHNESS, MockDep, MockPackage,
5+
MockWorkspace, RUSTC_BOOTSTRAP, RUSTC_WRAPPER, VERUS_DRIVER_ARGS, VERUS_DRIVER_ARGS_FOR,
6+
VERUS_DRIVER_VERIFY, VERUS_DRIVER_VIA_CARGO,
67
},
78
};
89

@@ -23,6 +24,8 @@ fn crate_optin_workdir() {
2324

2425
cargo_plan.assert_env_has(RUSTC_WRAPPER);
2526
cargo_plan.assert_env_sets(CARGO_DEFAULT_LIB_METADATA, "verus");
27+
cargo_plan.assert_env_sets(CARGO_UNSTABLE_CHECKSUM_FRESHNESS, "true");
28+
cargo_plan.assert_env_sets(RUSTC_BOOTSTRAP, "1");
2629
cargo_plan.assert_env_sets(VERUS_DRIVER_VIA_CARGO, "1");
2730
cargo_plan.assert_env_sets_key_prefix(&verify_crate_prefix, "1");
2831
}

0 commit comments

Comments
 (0)