@@ -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