@@ -375,43 +375,21 @@ fn idempotence_tests() {
375
375
});
376
376
}
377
377
378
- // Run rustfmt on itself. This operation must be idempotent. We also check that
379
- // no warnings are emitted.
380
- // Issue-3443: these tests require nightly
381
378
#[nightly_only_test]
382
379
#[test]
383
380
fn self_tests() {
384
- init_log();
385
- let mut files = get_test_files(Path::new("tests"), false);
386
- let bin_directories = vec!["cargo-fmt", "git-rustfmt", "bin", "format-diff"];
387
- for dir in bin_directories {
388
- let mut path = PathBuf::from("src");
389
- path.push(dir);
390
- path.push("main.rs");
391
- files.push(path);
392
- }
393
- files.push(PathBuf::from("src/lib.rs"));
394
-
395
- let (reports, count, fails) = check_files(files, &Some(PathBuf::from("rustfmt.toml")));
396
- let mut warnings = 0;
397
-
398
- // Display results.
399
- println!("Ran {} self tests.", count);
400
- assert_eq!(fails, 0, "{} self tests failed", fails);
401
-
402
- for format_report in reports {
403
- println!(
404
- "{}",
405
- FormatReportFormatterBuilder::new(&format_report).build()
406
- );
407
- warnings += format_report.warning_count();
408
- }
409
-
410
- assert_eq!(
411
- warnings, 0,
412
- "Rustfmt's code generated {} warnings",
413
- warnings
414
- );
381
+ let get_exe_path = |name| {
382
+ let mut path = env::current_exe().unwrap();
383
+ path.pop();
384
+ path.set_file_name(format!("{name}{}", env::consts::EXE_SUFFIX));
385
+ path
386
+ };
387
+ let status = Command::new(get_exe_path("cargo-fmt"))
388
+ .args(["--check", "--all"])
389
+ .env("RUSTFMT", get_exe_path("rustfmt"))
390
+ .status()
391
+ .unwrap();
392
+ assert!(status.success());
415
393
}
416
394
417
395
#[test]
0 commit comments