Skip to content

Commit

Permalink
Rollup merge of rust-lang#122786 - Enselic:remove_and_create_dir_all,…
Browse files Browse the repository at this point in the history
… r=onur-ozkan

compiletest: Introduce `remove_and_create_dir_all()` helper

The code

    let _ = fs::remove_dir_all(&dir);
    create_dir_all(&dir).unwrap();

is duplicated in 7 places. Let's introduce a helper.
  • Loading branch information
matthiaskrgr authored Mar 20, 2024
2 parents 1ea3b75 + c3cc6c1 commit 1000526
Showing 1 changed file with 12 additions and 15 deletions.
27 changes: 12 additions & 15 deletions src/tools/compiletest/src/runtest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,11 @@ pub fn compute_stamp_hash(config: &Config) -> String {
format!("{:x}", hash.finish())
}

fn remove_and_create_dir_all(path: &Path) {
let _ = fs::remove_dir_all(path);
fs::create_dir_all(path).unwrap();
}

#[derive(Copy, Clone)]
struct TestCx<'test> {
config: &'test Config,
Expand Down Expand Up @@ -998,8 +1003,7 @@ impl<'test> TestCx<'test> {
let mut rustc = Command::new(&self.config.rustc_path);

let out_dir = self.output_base_name().with_extension("pretty-out");
let _ = fs::remove_dir_all(&out_dir);
create_dir_all(&out_dir).unwrap();
remove_and_create_dir_all(&out_dir);

let target = if self.props.force_host { &*self.config.host } else { &*self.config.target };

Expand Down Expand Up @@ -2094,14 +2098,12 @@ impl<'test> TestCx<'test> {
let aux_dir = self.aux_output_dir_name();

if !self.props.aux_builds.is_empty() {
let _ = fs::remove_dir_all(&aux_dir);
create_dir_all(&aux_dir).unwrap();
remove_and_create_dir_all(&aux_dir);
}

if !self.props.aux_bins.is_empty() {
let aux_bin_dir = self.aux_bin_output_dir_name();
let _ = fs::remove_dir_all(&aux_bin_dir);
create_dir_all(&aux_bin_dir).unwrap();
remove_and_create_dir_all(&aux_bin_dir);
}

aux_dir
Expand Down Expand Up @@ -2469,8 +2471,7 @@ impl<'test> TestCx<'test> {
}

let mir_dump_dir = self.get_mir_dump_dir();
let _ = fs::remove_dir_all(&mir_dump_dir);
create_dir_all(mir_dump_dir.as_path()).unwrap();
remove_and_create_dir_all(&mir_dump_dir);
let mut dir_opt = "-Zdump-mir-dir=".to_string();
dir_opt.push_str(mir_dump_dir.to_str().unwrap());
debug!("dir_opt: {:?}", dir_opt);
Expand Down Expand Up @@ -2951,8 +2952,7 @@ impl<'test> TestCx<'test> {
assert!(self.revision.is_none(), "revisions not relevant here");

let out_dir = self.output_base_dir();
let _ = fs::remove_dir_all(&out_dir);
create_dir_all(&out_dir).unwrap();
remove_and_create_dir_all(&out_dir);

let proc_res = self.document(&out_dir);
if !proc_res.status.success() {
Expand Down Expand Up @@ -2986,9 +2986,7 @@ impl<'test> TestCx<'test> {
let suffix =
self.safe_revision().map_or("nightly".into(), |path| path.to_owned() + "-nightly");
let compare_dir = output_base_dir(self.config, self.testpaths, Some(&suffix));
// Don't give an error if the directory didn't already exist
let _ = fs::remove_dir_all(&compare_dir);
create_dir_all(&compare_dir).unwrap();
remove_and_create_dir_all(&compare_dir);

// We need to create a new struct for the lifetimes on `config` to work.
let new_rustdoc = TestCx {
Expand Down Expand Up @@ -3137,8 +3135,7 @@ impl<'test> TestCx<'test> {
assert!(self.revision.is_none(), "revisions not relevant here");

let out_dir = self.output_base_dir();
let _ = fs::remove_dir_all(&out_dir);
create_dir_all(&out_dir).unwrap();
remove_and_create_dir_all(&out_dir);

let proc_res = self.document(&out_dir);
if !proc_res.status.success() {
Expand Down

0 comments on commit 1000526

Please sign in to comment.