Skip to content

Commit

Permalink
fix(fuzz): remove fuzz dir on forge clean (#7809)
Browse files Browse the repository at this point in the history
  • Loading branch information
grandizzy authored Apr 29, 2024
1 parent bab8350 commit 39d6881
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
5 changes: 5 additions & 0 deletions crates/forge/bin/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,11 @@ fn main() -> Result<()> {
ForgeSubcommand::Clean { root } => {
let config = utils::load_config_with_root(root);
config.project()?.cleanup()?;

// Remove fuzz cache directory.
if let Some(fuzz_cache) = config.fuzz.failure_persist_dir {
let _ = std::fs::remove_dir_all(fuzz_cache);
}
Ok(())
}
ForgeSubcommand::Snapshot(cmd) => {
Expand Down
18 changes: 17 additions & 1 deletion crates/forge/tests/cli/cmd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
use crate::constants::*;
use foundry_compilers::{artifacts::Metadata, remappings::Remapping, ConfigurableContractArtifact};
use foundry_config::{parse_with_profile, BasicConfig, Chain, Config, SolidityErrorCode};
use foundry_config::{
parse_with_profile, BasicConfig, Chain, Config, FuzzConfig, SolidityErrorCode,
};
use foundry_test_utils::{
foundry_compilers::PathStyle,
rpc::next_etherscan_api_key,
Expand Down Expand Up @@ -544,6 +546,20 @@ forgetest_init!(can_clean_config, |prj, cmd| {
assert!(!artifact.exists());
});

// checks that `clean` removes fuzz cache dir
forgetest_init!(can_clean_fuzz_cache, |prj, cmd| {
let config = Config { fuzz: FuzzConfig::new("cache/fuzz".into()), ..Default::default() };
prj.write_config(config);
// default test contract is written in custom out directory
let cache_dir = prj.root().join("cache/fuzz");
let _ = fs::create_dir(cache_dir.clone());
assert!(cache_dir.exists());

cmd.forge_fuse().arg("clean");
cmd.output();
assert!(!cache_dir.exists());
});

// checks that extra output works
forgetest_init!(can_emit_extra_output, |prj, cmd| {
cmd.args(["build", "--extra-output", "metadata"]);
Expand Down

0 comments on commit 39d6881

Please sign in to comment.