| //! Tidy check to ensure that there are no stray `.stderr` files in UI test directories. |
| |
| use std::fs; |
| use std::path::Path; |
| |
| pub fn check(path: &Path, bad: &mut bool) { |
| super::walk_many( |
| &[&path.join("test/ui"), &path.join("test/ui-fulldeps")], |
| &mut |_| false, |
| &mut |file_path| { |
| if let Some(ext) = file_path.extension() { |
| if ext == "stderr" || ext == "stdout" { |
| // Test output filenames have one of the formats: |
| // ``` |
| // $testname.stderr |
| // $testname.$mode.stderr |
| // $testname.$revision.stderr |
| // $testname.$revision.$mode.stderr |
| // ``` |
| // |
| // For now, just make sure that there is a corresponding |
| // `$testname.rs` file. |
| let testname = file_path |
| .file_name() |
| .unwrap() |
| .to_str() |
| .unwrap() |
| .splitn(2, '.') |
| .next() |
| .unwrap(); |
| if !file_path |
| .with_file_name(testname) |
| .with_extension("rs") |
| .exists() |
| { |
| println!("Stray file with UI testing output: {:?}", file_path); |
| *bad = true; |
| } |
| |
| if let Ok(metadata) = fs::metadata(file_path) { |
| if metadata.len() == 0 { |
| println!("Empty file with UI testing output: {:?}", file_path); |
| *bad = true; |
| } |
| } |
| } |
| } |
| }, |
| ); |
| } |