Skip to content

Commit 0f4ed08

Browse files
committed
Harden tests to not rely on CWD
1 parent 8242ba9 commit 0f4ed08

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

src/test/mod.rs

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -857,28 +857,53 @@ fn configuration_snippet_tests() {
857857
assert_eq!(failures, 0, "{} configurations tests failed", failures);
858858
}
859859

860+
struct TempFile {
861+
file_name: &'static str,
862+
}
863+
864+
fn make_temp_file(file_name: &'static str) -> TempFile {
865+
use std::fs::File;
866+
867+
let mut file = File::create(file_name).expect("Couldn't create temp file");
868+
let content = "fn main() {}\n";
869+
file.write_all(content.as_bytes())
870+
.expect("Couldn't write temp file");
871+
TempFile { file_name }
872+
}
873+
874+
impl Drop for TempFile {
875+
fn drop(&mut self) {
876+
use std::fs::remove_file;
877+
remove_file(self.file_name).expect("Couldn't delete temp file");
878+
}
879+
}
880+
860881
#[test]
861882
fn verify_check_works() {
883+
let file_name = "temp_check.rs";
884+
let _temp_file = make_temp_file(file_name);
862885
assert_cli::Assert::command(&[
863886
"cargo",
864887
"run",
865888
"--bin=rustfmt",
866889
"--",
867890
"--write-mode=check",
868-
"src/bin/main.rs",
891+
file_name,
869892
]).succeeds()
870893
.unwrap();
871894
}
872895

873896
#[test]
874897
fn verify_diff_works() {
898+
let file_name = "temp_diff.rs";
899+
let _temp_file = make_temp_file(file_name);
875900
assert_cli::Assert::command(&[
876901
"cargo",
877902
"run",
878903
"--bin=rustfmt",
879904
"--",
880905
"--write-mode=diff",
881-
"src/bin/main.rs",
906+
file_name,
882907
]).succeeds()
883908
.unwrap();
884909
}

0 commit comments

Comments
 (0)