Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Commit fb80e67

Browse files
committed
Separate common setup logic for test_tooltip tests
1 parent 65536f8 commit fb80e67

File tree

1 file changed

+27
-84
lines changed

1 file changed

+27
-84
lines changed

src/actions/hover.rs

Lines changed: 27 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -2052,10 +2052,32 @@ pub mod test {
20522052
assert_eq!(expected, actual);
20532053
}
20542054

2055+
// Common logic used in `test_tooltip_*` tests below
2056+
fn run_tooltip_tests(tests: &[Test], proj_dir: PathBuf, racer_completion: bool) -> Result<(), Box<dyn std::error::Error>> {
2057+
let out = LineOutput::default();
2058+
2059+
let save_dir_guard = tempfile::tempdir().unwrap();
2060+
let save_dir = save_dir_guard.path().to_owned();
2061+
let load_dir = proj_dir.join("save_data");
2062+
2063+
let harness = TooltipTestHarness::new(proj_dir, &out, racer_completion);
2064+
2065+
out.reset();
2066+
2067+
let failures = harness.run_tests(tests, load_dir, save_dir)?;
2068+
2069+
if failures.is_empty() {
2070+
Ok(())
2071+
} else {
2072+
eprintln!("{}\n\n", out.reset().join("\n"));
2073+
eprintln!("Failures (\x1b[91mexpected\x1b[92mactual\x1b[0m): {:#?}\n\n", failures);
2074+
Err(format!("{} of {} tooltip tests failed", failures.len(), tests.len()).into())
2075+
}
2076+
}
2077+
20552078
#[test]
20562079
fn test_tooltip() -> Result<(), Box<dyn std::error::Error>> {
20572080
let _ = env_logger::try_init();
2058-
use self::test::{LineOutput, Test, TooltipTestHarness};
20592081

20602082
let tests = vec![
20612083
Test::new("test_tooltip_01.rs", 13, 11),
@@ -2105,32 +2127,12 @@ pub mod test {
21052127
Test::new("test_tooltip_mod_use.rs", 13, 28),
21062128
];
21072129

2108-
let out = LineOutput::default();
2109-
let proj_dir = FIXTURES_DIR.join("hover");
2110-
2111-
let save_dir_guard = tempfile::tempdir().unwrap();
2112-
let save_dir = save_dir_guard.path().to_owned();
2113-
let load_dir = proj_dir.join("save_data");
2114-
2115-
let harness = TooltipTestHarness::new(proj_dir, &out, false);
2116-
2117-
out.reset();
2118-
2119-
let failures = harness.run_tests(&tests, load_dir, save_dir)?;
2120-
2121-
if failures.is_empty() {
2122-
Ok(())
2123-
} else {
2124-
eprintln!("{}\n\n", out.reset().join("\n"));
2125-
eprintln!("Failures (\x1b[91mexpected\x1b[92mactual\x1b[0m): {:#?}\n\n", failures);
2126-
Err(format!("{} of {} tooltip tests failed", failures.len(), tests.len()).into())
2127-
}
2130+
run_tooltip_tests(&tests, FIXTURES_DIR.join("hover"), false)
21282131
}
21292132

21302133
#[test]
21312134
fn test_tooltip_racer() -> Result<(), Box<dyn std::error::Error>> {
21322135
let _ = env_logger::try_init();
2133-
use self::test::{LineOutput, Test, TooltipTestHarness};
21342136

21352137
let tests = vec![
21362138
Test::new("test_tooltip_01.rs", 80, 11),
@@ -2140,26 +2142,7 @@ pub mod test {
21402142
Test::new("test_tooltip_mod_use_external.rs", 12, 12),
21412143
];
21422144

2143-
let out = LineOutput::default();
2144-
let proj_dir = FIXTURES_DIR.join("hover");
2145-
2146-
let save_dir_guard = tempfile::tempdir().unwrap();
2147-
let save_dir = save_dir_guard.path().to_owned();
2148-
let load_dir = proj_dir.join("save_data");
2149-
2150-
let harness = TooltipTestHarness::new(proj_dir, &out, true);
2151-
2152-
out.reset();
2153-
2154-
let failures = harness.run_tests(&tests, load_dir, save_dir)?;
2155-
2156-
if failures.is_empty() {
2157-
Ok(())
2158-
} else {
2159-
eprintln!("{}\n\n", out.reset().join("\n"));
2160-
eprintln!("Failures (\x1b[91mexpected\x1b[92mactual\x1b[0m): {:#?}\n\n", failures);
2161-
Err(format!("{} of {} tooltip tests failed", failures.len(), tests.len()).into())
2162-
}
2145+
run_tooltip_tests(&tests, FIXTURES_DIR.join("hover"), true)
21632146
}
21642147

21652148
/// Note: This test is ignored as it doesn't work in the rust-lang/rust repo.
@@ -2169,7 +2152,6 @@ pub mod test {
21692152
#[ignore]
21702153
fn test_tooltip_std() -> Result<(), Box<dyn std::error::Error>> {
21712154
let _ = env_logger::try_init();
2172-
use self::test::{LineOutput, Test, TooltipTestHarness};
21732155

21742156
let tests = vec![
21752157
Test::new("test_tooltip_std.rs", 18, 15),
@@ -2187,26 +2169,7 @@ pub mod test {
21872169
Test::new("test_tooltip_std.rs", 25, 25),
21882170
];
21892171

2190-
let out = LineOutput::default();
2191-
let proj_dir = FIXTURES_DIR.join("hover");
2192-
2193-
let save_dir_guard = tempfile::tempdir().unwrap();
2194-
let save_dir = save_dir_guard.path().to_owned();
2195-
let load_dir = proj_dir.join("save_data");
2196-
2197-
let harness = TooltipTestHarness::new(proj_dir, &out, false);
2198-
2199-
out.reset();
2200-
2201-
let failures = harness.run_tests(&tests, load_dir, save_dir)?;
2202-
2203-
if failures.is_empty() {
2204-
Ok(())
2205-
} else {
2206-
eprintln!("{}\n\n", out.reset().join("\n"));
2207-
eprintln!("Failures (\x1b[91mexpected\x1b[92mactual\x1b[0m): {:#?}\n\n", failures);
2208-
Err(format!("{} of {} tooltip tests failed", failures.len(), tests.len()).into())
2209-
}
2172+
run_tooltip_tests(&tests, FIXTURES_DIR.join("hover"), false)
22102173
}
22112174

22122175
/// Note: This test is ignored as it doesn't work in the rust-lang/rust repo.
@@ -2216,33 +2179,13 @@ pub mod test {
22162179
#[ignore]
22172180
fn test_tooltip_std_racer() -> Result<(), Box<dyn std::error::Error>> {
22182181
let _ = env_logger::try_init();
2219-
use self::test::{LineOutput, Test, TooltipTestHarness};
22202182

22212183
let tests = vec![
22222184
// these test std stuff
22232185
Test::new("test_tooltip_mod_use_external.rs", 14, 12),
22242186
Test::new("test_tooltip_mod_use_external.rs", 15, 12),
22252187
];
22262188

2227-
let out = LineOutput::default();
2228-
let proj_dir = FIXTURES_DIR.join("hover");
2229-
2230-
let save_dir_guard = tempfile::tempdir().unwrap();
2231-
let save_dir = save_dir_guard.path().to_owned();
2232-
let load_dir = proj_dir.join("save_data");
2233-
2234-
let harness = TooltipTestHarness::new(proj_dir, &out, true);
2235-
2236-
out.reset();
2237-
2238-
let failures = harness.run_tests(&tests, load_dir, save_dir)?;
2239-
2240-
if failures.is_empty() {
2241-
Ok(())
2242-
} else {
2243-
eprintln!("{}\n\n", out.reset().join("\n"));
2244-
eprintln!("Failures (\x1b[91mexpected\x1b[92mactual\x1b[0m): {:#?}\n\n", failures);
2245-
Err(format!("{} of {} tooltip tests failed", failures.len(), tests.len()).into())
2246-
}
2189+
run_tooltip_tests(&tests, FIXTURES_DIR.join("hover"), true)
22472190
}
22482191
}

0 commit comments

Comments
 (0)