2 use std::path::PathBuf;
4 use super::read_config;
6 use crate::{FileName, Input, Session};
8 fn verify_mod_resolution(input_file_name: &str, exp_misformatted_files: &[&str]) {
9 let input_file = PathBuf::from(input_file_name);
10 let config = read_config(&input_file);
11 let mut session = Session::<io::Stdout>::new(config, None);
13 .format(Input::File(input_file_name.into()))
14 .expect("Should not have had any execution errors");
15 let errors_by_file = &report.internal.borrow().0;
16 for exp_file in exp_misformatted_files {
17 assert!(errors_by_file.contains_key(&FileName::Real(PathBuf::from(exp_file))));
22 fn nested_out_of_line_mods_loaded() {
23 // See also https://github.com/rust-lang/rustfmt/issues/4874
24 verify_mod_resolution(
25 "tests/mod-resolver/issue-4874/main.rs",
27 "tests/mod-resolver/issue-4874/bar/baz.rs",
28 "tests/mod-resolver/issue-4874/foo/qux.rs",
34 fn out_of_line_nested_inline_within_out_of_line() {
35 // See also https://github.com/rust-lang/rustfmt/issues/5063
36 verify_mod_resolution(
37 "tests/mod-resolver/issue-5063/main.rs",
39 "tests/mod-resolver/issue-5063/foo/bar/baz.rs",
40 "tests/mod-resolver/issue-5063/foo.rs",
46 fn skip_out_of_line_nested_inline_within_out_of_line() {
47 // See also https://github.com/rust-lang/rustfmt/issues/5065
48 verify_mod_resolution(
49 "tests/mod-resolver/skip-files-issue-5065/main.rs",
50 &["tests/mod-resolver/skip-files-issue-5065/one.rs"],
55 fn fmt_out_of_line_test_modules() {
56 // See also https://github.com/rust-lang/rustfmt/issues/5119
57 verify_mod_resolution(
58 "tests/mod-resolver/test-submodule-issue-5119/tests/test1.rs",
60 "tests/mod-resolver/test-submodule-issue-5119/tests/test1.rs",
61 "tests/mod-resolver/test-submodule-issue-5119/tests/test1/sub1.rs",
62 "tests/mod-resolver/test-submodule-issue-5119/tests/test1/sub2.rs",
63 "tests/mod-resolver/test-submodule-issue-5119/tests/test1/sub3/sub4.rs",
69 fn fallback_and_try_to_resolve_external_submod_relative_to_current_dir_path() {
70 // See also https://github.com/rust-lang/rustfmt/issues/5198
71 verify_mod_resolution(
72 "tests/mod-resolver/issue-5198/lib.rs",
74 "tests/mod-resolver/issue-5198/a.rs",
75 "tests/mod-resolver/issue-5198/lib/b.rs",
76 "tests/mod-resolver/issue-5198/lib/c/mod.rs",
77 "tests/mod-resolver/issue-5198/lib/c/e.rs",
78 "tests/mod-resolver/issue-5198/lib/c/d/f.rs",
79 "tests/mod-resolver/issue-5198/lib/c/d/g/mod.rs",