about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCameron Steffen <cam.steffen94@gmail.com>2022-02-01 13:39:01 -0600
committerCaleb Cartwright <calebcartwright@users.noreply.github.com>2022-02-15 19:44:53 -0600
commitc63d42e80473a0c18714b55058f27506fd24955c (patch)
tree444c65259b9074976e89656c24d14d7cb72a4257
parentd5aabccfebc645d9fce62f91512b03ca0fa1fb6d (diff)
downloadrust-c63d42e80473a0c18714b55058f27506fd24955c.tar.gz
rust-c63d42e80473a0c18714b55058f27506fd24955c.zip
Use cargo-fmt in self_tests
-rw-r--r--src/test/mod.rs46
1 files changed, 12 insertions, 34 deletions
diff --git a/src/test/mod.rs b/src/test/mod.rs
index ab966d4a360..4191e3e96b0 100644
--- a/src/test/mod.rs
+++ b/src/test/mod.rs
@@ -375,43 +375,21 @@ fn idempotence_tests() {
     });
 }
 
-// Run rustfmt on itself. This operation must be idempotent. We also check that
-// no warnings are emitted.
-// Issue-3443: these tests require nightly
 #[nightly_only_test]
 #[test]
 fn self_tests() {
-    init_log();
-    let mut files = get_test_files(Path::new("tests"), false);
-    let bin_directories = vec!["cargo-fmt", "git-rustfmt", "bin", "format-diff"];
-    for dir in bin_directories {
-        let mut path = PathBuf::from("src");
-        path.push(dir);
-        path.push("main.rs");
-        files.push(path);
-    }
-    files.push(PathBuf::from("src/lib.rs"));
-
-    let (reports, count, fails) = check_files(files, &Some(PathBuf::from("rustfmt.toml")));
-    let mut warnings = 0;
-
-    // Display results.
-    println!("Ran {} self tests.", count);
-    assert_eq!(fails, 0, "{} self tests failed", fails);
-
-    for format_report in reports {
-        println!(
-            "{}",
-            FormatReportFormatterBuilder::new(&format_report).build()
-        );
-        warnings += format_report.warning_count();
-    }
-
-    assert_eq!(
-        warnings, 0,
-        "Rustfmt's code generated {} warnings",
-        warnings
-    );
+    let get_exe_path = |name| {
+        let mut path = env::current_exe().unwrap();
+        path.pop();
+        path.set_file_name(format!("{name}{}", env::consts::EXE_SUFFIX));
+        path
+    };
+    let status = Command::new(get_exe_path("cargo-fmt"))
+        .args(["--check", "--all"])
+        .env("RUSTFMT", get_exe_path("rustfmt"))
+        .status()
+        .unwrap();
+    assert!(status.success());
 }
 
 #[test]