From fd85de14599d0ad8bbe5750d2fa83b806b2dbc5e Mon Sep 17 00:00:00 2001 From: varkor Date: Fri, 11 May 2018 17:04:50 +0100 Subject: [PATCH 1/2] Ignore non .rs files for tidy libcoretest Previously, any file would be read, which is both unnecessary, and causes issues if irrelevant non-Unicode files were read (e.g. `.DS_STORE`). --- src/tools/tidy/src/libcoretest.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/tools/tidy/src/libcoretest.rs b/src/tools/tidy/src/libcoretest.rs index ef8b55186b104..f6864c7f84e5a 100644 --- a/src/tools/tidy/src/libcoretest.rs +++ b/src/tools/tidy/src/libcoretest.rs @@ -22,12 +22,15 @@ pub fn check(path: &Path, bad: &mut bool) { &libcore_path, &mut |subpath| t!(subpath.strip_prefix(&libcore_path)).starts_with("tests"), &mut |subpath| { - if t!(read_to_string(subpath)).contains("#[test]") { - tidy_error!( - bad, - "{} contains #[test]; libcore tests must be placed inside `src/libcore/tests/`", - subpath.display() - ); + if subpath.ends_with(".rs") { + if t!(read_to_string(subpath)).contains("#[test]") { + tidy_error!( + bad, + "{} contains #[test]; libcore tests must be placed inside \ + `src/libcore/tests/`", + subpath.display() + ); + } } }, ); From 16c088d3254bf5fc75ae3ce9f498bfc522098db8 Mon Sep 17 00:00:00 2001 From: varkor Date: Fri, 11 May 2018 21:36:24 +0100 Subject: [PATCH 2/2] Display the name of the failed file in tidy/libcoretest --- src/tools/tidy/src/libcoretest.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/tools/tidy/src/libcoretest.rs b/src/tools/tidy/src/libcoretest.rs index f6864c7f84e5a..363d01d964eb5 100644 --- a/src/tools/tidy/src/libcoretest.rs +++ b/src/tools/tidy/src/libcoretest.rs @@ -22,14 +22,21 @@ pub fn check(path: &Path, bad: &mut bool) { &libcore_path, &mut |subpath| t!(subpath.strip_prefix(&libcore_path)).starts_with("tests"), &mut |subpath| { - if subpath.ends_with(".rs") { - if t!(read_to_string(subpath)).contains("#[test]") { - tidy_error!( - bad, - "{} contains #[test]; libcore tests must be placed inside \ - `src/libcore/tests/`", - subpath.display() - ); + if let Some("rs") = subpath.extension().and_then(|e| e.to_str()) { + match read_to_string(subpath) { + Ok(contents) => { + if contents.contains("#[test]") { + tidy_error!( + bad, + "{} contains #[test]; libcore tests must be placed inside \ + `src/libcore/tests/`", + subpath.display() + ); + } + } + Err(err) => { + panic!("failed to read file {:?}: {}", subpath, err); + } } } },