Skip to content

Commit 5b03d07

Browse files
committed
Pull out unexpected extension check into own function
1 parent c23f07d commit 5b03d07

File tree

1 file changed

+46
-42
lines changed

1 file changed

+46
-42
lines changed

src/tools/tidy/src/ui_tests.rs

Lines changed: 46 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -7,41 +7,6 @@ use std::fs;
77
use std::io::Write;
88
use std::path::{Path, PathBuf};
99

10-
const EXPECTED_TEST_FILE_EXTENSIONS: &[&str] = &[
11-
"rs", // test source files
12-
"stderr", // expected stderr file, corresponds to a rs file
13-
"svg", // expected svg file, corresponds to a rs file, equivalent to stderr
14-
"stdout", // expected stdout file, corresponds to a rs file
15-
"fixed", // expected source file after applying fixes
16-
"md", // test directory descriptions
17-
"ftl", // translation tests
18-
];
19-
20-
const EXTENSION_EXCEPTION_PATHS: &[&str] = &[
21-
"tests/ui/asm/named-asm-labels.s", // loading an external asm file to test named labels lint
22-
"tests/ui/codegen/mismatched-data-layout.json", // testing mismatched data layout w/ custom targets
23-
"tests/ui/check-cfg/my-awesome-platform.json", // testing custom targets with cfgs
24-
"tests/ui/argfile/commandline-argfile-badutf8.args", // passing args via a file
25-
"tests/ui/argfile/commandline-argfile.args", // passing args via a file
26-
"tests/ui/crate-loading/auxiliary/libfoo.rlib", // testing loading a manually created rlib
27-
"tests/ui/include-macros/data.bin", // testing including data with the include macros
28-
"tests/ui/include-macros/file.txt", // testing including data with the include macros
29-
"tests/ui/macros/macro-expanded-include/file.txt", // testing including data with the include macros
30-
"tests/ui/macros/not-utf8.bin", // testing including data with the include macros
31-
"tests/ui/macros/syntax-extension-source-utils-files/includeme.fragment", // more include
32-
"tests/ui/proc-macro/auxiliary/included-file.txt", // more include
33-
"tests/ui/unpretty/auxiliary/data.txt", // more include
34-
"tests/ui/invalid/foo.natvis.xml", // sample debugger visualizer
35-
"tests/ui/sanitizer/dataflow-abilist.txt", // dataflow sanitizer ABI list file
36-
"tests/ui/shell-argfiles/shell-argfiles.args", // passing args via a file
37-
"tests/ui/shell-argfiles/shell-argfiles-badquotes.args", // passing args via a file
38-
"tests/ui/shell-argfiles/shell-argfiles-via-argfile-shell.args", // passing args via a file
39-
"tests/ui/shell-argfiles/shell-argfiles-via-argfile.args", // passing args via a file
40-
"tests/ui/std/windows-bat-args1.bat", // tests escaping arguments through batch files
41-
"tests/ui/std/windows-bat-args2.bat", // tests escaping arguments through batch files
42-
"tests/ui/std/windows-bat-args3.bat", // tests escaping arguments through batch files
43-
];
44-
4510
pub fn check(root_path: &Path, bless: bool, bad: &mut bool) {
4611
let issues_txt_header = r#"============================================================
4712
⚠️⚠️⚠️NOTHING SHOULD EVER BE ADDED TO THIS LIST⚠️⚠️⚠️
@@ -82,13 +47,7 @@ pub fn check(root_path: &Path, bless: bool, bad: &mut bool) {
8247
crate::walk::walk_no_read(&paths, |_, _| false, &mut |entry| {
8348
let file_path = entry.path();
8449
if let Some(ext) = file_path.extension().and_then(OsStr::to_str) {
85-
// files that are neither an expected extension or an exception should not exist
86-
// they're probably typos or not meant to exist
87-
if !(EXPECTED_TEST_FILE_EXTENSIONS.contains(&ext)
88-
|| EXTENSION_EXCEPTION_PATHS.iter().any(|path| file_path.ends_with(path)))
89-
{
90-
tidy_error!(bad, "file {} has unexpected extension {}", file_path.display(), ext);
91-
}
50+
check_unexpected_extension(bad, file_path, ext);
9251

9352
// NB: We do not use file_stem() as some file names have multiple `.`s and we
9453
// must strip all of them.
@@ -171,3 +130,48 @@ pub fn check(root_path: &Path, bless: bool, bad: &mut bool) {
171130
}
172131
}
173132
}
133+
134+
fn check_unexpected_extension(bad: &mut bool, file_path: &Path, ext: &str) {
135+
const EXPECTED_TEST_FILE_EXTENSIONS: &[&str] = &[
136+
"rs", // test source files
137+
"stderr", // expected stderr file, corresponds to a rs file
138+
"svg", // expected svg file, corresponds to a rs file, equivalent to stderr
139+
"stdout", // expected stdout file, corresponds to a rs file
140+
"fixed", // expected source file after applying fixes
141+
"md", // test directory descriptions
142+
"ftl", // translation tests
143+
];
144+
145+
const EXTENSION_EXCEPTION_PATHS: &[&str] = &[
146+
"tests/ui/asm/named-asm-labels.s", // loading an external asm file to test named labels lint
147+
"tests/ui/codegen/mismatched-data-layout.json", // testing mismatched data layout w/ custom targets
148+
"tests/ui/check-cfg/my-awesome-platform.json", // testing custom targets with cfgs
149+
"tests/ui/argfile/commandline-argfile-badutf8.args", // passing args via a file
150+
"tests/ui/argfile/commandline-argfile.args", // passing args via a file
151+
"tests/ui/crate-loading/auxiliary/libfoo.rlib", // testing loading a manually created rlib
152+
"tests/ui/include-macros/data.bin", // testing including data with the include macros
153+
"tests/ui/include-macros/file.txt", // testing including data with the include macros
154+
"tests/ui/macros/macro-expanded-include/file.txt", // testing including data with the include macros
155+
"tests/ui/macros/not-utf8.bin", // testing including data with the include macros
156+
"tests/ui/macros/syntax-extension-source-utils-files/includeme.fragment", // more include
157+
"tests/ui/proc-macro/auxiliary/included-file.txt", // more include
158+
"tests/ui/unpretty/auxiliary/data.txt", // more include
159+
"tests/ui/invalid/foo.natvis.xml", // sample debugger visualizer
160+
"tests/ui/sanitizer/dataflow-abilist.txt", // dataflow sanitizer ABI list file
161+
"tests/ui/shell-argfiles/shell-argfiles.args", // passing args via a file
162+
"tests/ui/shell-argfiles/shell-argfiles-badquotes.args", // passing args via a file
163+
"tests/ui/shell-argfiles/shell-argfiles-via-argfile-shell.args", // passing args via a file
164+
"tests/ui/shell-argfiles/shell-argfiles-via-argfile.args", // passing args via a file
165+
"tests/ui/std/windows-bat-args1.bat", // tests escaping arguments through batch files
166+
"tests/ui/std/windows-bat-args2.bat", // tests escaping arguments through batch files
167+
"tests/ui/std/windows-bat-args3.bat", // tests escaping arguments through batch files
168+
];
169+
170+
// files that are neither an expected extension or an exception should not exist
171+
// they're probably typos or not meant to exist
172+
if !(EXPECTED_TEST_FILE_EXTENSIONS.contains(&ext)
173+
|| EXTENSION_EXCEPTION_PATHS.iter().any(|path| file_path.ends_with(path)))
174+
{
175+
tidy_error!(bad, "file {} has unexpected extension {}", file_path.display(), ext);
176+
}
177+
}

0 commit comments

Comments
 (0)