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.
This commit is contained in:
parent
352587af44
commit
c3cc6c1990
@ -198,6 +198,11 @@ pub fn compute_stamp_hash(config: &Config) -> String {
|
|||||||
format!("{:x}", hash.finish())
|
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)]
|
#[derive(Copy, Clone)]
|
||||||
struct TestCx<'test> {
|
struct TestCx<'test> {
|
||||||
config: &'test Config,
|
config: &'test Config,
|
||||||
@ -998,8 +1003,7 @@ impl<'test> TestCx<'test> {
|
|||||||
let mut rustc = Command::new(&self.config.rustc_path);
|
let mut rustc = Command::new(&self.config.rustc_path);
|
||||||
|
|
||||||
let out_dir = self.output_base_name().with_extension("pretty-out");
|
let out_dir = self.output_base_name().with_extension("pretty-out");
|
||||||
let _ = fs::remove_dir_all(&out_dir);
|
remove_and_create_dir_all(&out_dir);
|
||||||
create_dir_all(&out_dir).unwrap();
|
|
||||||
|
|
||||||
let target = if self.props.force_host { &*self.config.host } else { &*self.config.target };
|
let target = if self.props.force_host { &*self.config.host } else { &*self.config.target };
|
||||||
|
|
||||||
@ -2094,14 +2098,12 @@ impl<'test> TestCx<'test> {
|
|||||||
let aux_dir = self.aux_output_dir_name();
|
let aux_dir = self.aux_output_dir_name();
|
||||||
|
|
||||||
if !self.props.aux_builds.is_empty() {
|
if !self.props.aux_builds.is_empty() {
|
||||||
let _ = fs::remove_dir_all(&aux_dir);
|
remove_and_create_dir_all(&aux_dir);
|
||||||
create_dir_all(&aux_dir).unwrap();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if !self.props.aux_bins.is_empty() {
|
if !self.props.aux_bins.is_empty() {
|
||||||
let aux_bin_dir = self.aux_bin_output_dir_name();
|
let aux_bin_dir = self.aux_bin_output_dir_name();
|
||||||
let _ = fs::remove_dir_all(&aux_bin_dir);
|
remove_and_create_dir_all(&aux_bin_dir);
|
||||||
create_dir_all(&aux_bin_dir).unwrap();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
aux_dir
|
aux_dir
|
||||||
@ -2469,8 +2471,7 @@ impl<'test> TestCx<'test> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let mir_dump_dir = self.get_mir_dump_dir();
|
let mir_dump_dir = self.get_mir_dump_dir();
|
||||||
let _ = fs::remove_dir_all(&mir_dump_dir);
|
remove_and_create_dir_all(&mir_dump_dir);
|
||||||
create_dir_all(&mir_dump_dir).unwrap();
|
|
||||||
let mut dir_opt = "-Zdump-mir-dir=".to_string();
|
let mut dir_opt = "-Zdump-mir-dir=".to_string();
|
||||||
dir_opt.push_str(mir_dump_dir.to_str().unwrap());
|
dir_opt.push_str(mir_dump_dir.to_str().unwrap());
|
||||||
debug!("dir_opt: {:?}", dir_opt);
|
debug!("dir_opt: {:?}", dir_opt);
|
||||||
@ -2951,8 +2952,7 @@ impl<'test> TestCx<'test> {
|
|||||||
assert!(self.revision.is_none(), "revisions not relevant here");
|
assert!(self.revision.is_none(), "revisions not relevant here");
|
||||||
|
|
||||||
let out_dir = self.output_base_dir();
|
let out_dir = self.output_base_dir();
|
||||||
let _ = fs::remove_dir_all(&out_dir);
|
remove_and_create_dir_all(&out_dir);
|
||||||
create_dir_all(&out_dir).unwrap();
|
|
||||||
|
|
||||||
let proc_res = self.document(&out_dir);
|
let proc_res = self.document(&out_dir);
|
||||||
if !proc_res.status.success() {
|
if !proc_res.status.success() {
|
||||||
@ -2986,9 +2986,7 @@ impl<'test> TestCx<'test> {
|
|||||||
let suffix =
|
let suffix =
|
||||||
self.safe_revision().map_or("nightly".into(), |path| path.to_owned() + "-nightly");
|
self.safe_revision().map_or("nightly".into(), |path| path.to_owned() + "-nightly");
|
||||||
let compare_dir = output_base_dir(self.config, self.testpaths, Some(&suffix));
|
let compare_dir = output_base_dir(self.config, self.testpaths, Some(&suffix));
|
||||||
// Don't give an error if the directory didn't already exist
|
remove_and_create_dir_all(&compare_dir);
|
||||||
let _ = fs::remove_dir_all(&compare_dir);
|
|
||||||
create_dir_all(&compare_dir).unwrap();
|
|
||||||
|
|
||||||
// We need to create a new struct for the lifetimes on `config` to work.
|
// We need to create a new struct for the lifetimes on `config` to work.
|
||||||
let new_rustdoc = TestCx {
|
let new_rustdoc = TestCx {
|
||||||
@ -3137,8 +3135,7 @@ impl<'test> TestCx<'test> {
|
|||||||
assert!(self.revision.is_none(), "revisions not relevant here");
|
assert!(self.revision.is_none(), "revisions not relevant here");
|
||||||
|
|
||||||
let out_dir = self.output_base_dir();
|
let out_dir = self.output_base_dir();
|
||||||
let _ = fs::remove_dir_all(&out_dir);
|
remove_and_create_dir_all(&out_dir);
|
||||||
create_dir_all(&out_dir).unwrap();
|
|
||||||
|
|
||||||
let proc_res = self.document(&out_dir);
|
let proc_res = self.document(&out_dir);
|
||||||
if !proc_res.status.success() {
|
if !proc_res.status.success() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user