Skip to content

Commit 924b834

Browse files
committed
Test cfg_match! support
1 parent ffa5ec0 commit 924b834

File tree

7 files changed

+60
-0
lines changed

7 files changed

+60
-0
lines changed

src/test/mod.rs

+41
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ const FILE_SKIP_LIST: &[&str] = &[
4242
"issue-3253/foo.rs",
4343
"issue-3253/bar.rs",
4444
"issue-3253/paths",
45+
// This directory is directly tested by format_files_find_new_files_via_cfg_match
46+
"cfg_match",
4547
// These files and directory are a part of modules defined inside `cfg_attr(..)`.
4648
"cfg_mod/dir",
4749
"cfg_mod/bar.rs",
@@ -468,6 +470,45 @@ fn format_files_find_new_files_via_cfg_if() {
468470
});
469471
}
470472

473+
#[test]
474+
fn format_files_find_new_files_via_cfg_match() {
475+
init_log();
476+
run_test_with(&TestSetting::default(), || {
477+
// We load these two files into the same session to test cfg_match!
478+
// transparent mod discovery, and to ensure that it does not suffer
479+
// from a similar issue as cfg_if! support did with issue-4656.
480+
let files = vec![
481+
Path::new("tests/source/cfg_match/lib2.rs"),
482+
Path::new("tests/source/cfg_match/lib.rs"),
483+
];
484+
485+
let config = Config::default();
486+
let mut session = Session::<io::Stdout>::new(config, None);
487+
488+
let mut write_result = HashMap::new();
489+
for file in files {
490+
assert!(file.exists());
491+
let result = session.format(Input::File(file.into())).unwrap();
492+
assert!(!session.has_formatting_errors());
493+
assert!(!result.has_warnings());
494+
let mut source_file = SourceFile::new();
495+
mem::swap(&mut session.source_file, &mut source_file);
496+
497+
for (filename, text) in source_file {
498+
if let FileName::Real(ref filename) = filename {
499+
write_result.insert(filename.to_owned(), text);
500+
}
501+
}
502+
}
503+
assert_eq!(
504+
3,
505+
write_result.len(),
506+
"Should have uncovered an extra file (format_me_please.rs) via lib.rs"
507+
);
508+
assert!(handle_result(write_result, None).is_ok());
509+
});
510+
}
511+
471512
#[test]
472513
fn stdin_formatting_smoke_test() {
473514
init_log();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
pub fn hello( ) { }

tests/source/cfg_match/lib.rs

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
std::cfg_match! {
2+
target_family = "unix" => {
3+
mod format_me_please;
4+
}
5+
}

tests/source/cfg_match/lib2.rs

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
its_a_macro! {
2+
// Contents
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub fn hello() {}

tests/target/cfg_match/lib.rs

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
std::cfg_match! {
2+
target_family = "unix" => {
3+
mod format_me_please;
4+
}
5+
}

tests/target/cfg_match/lib2.rs

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
its_a_macro! {
2+
// Contents
3+
}

0 commit comments

Comments
 (0)