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

Commit 8753cb5

Browse files
authored
Merge pull request #1199 from Xanewok/test-overhaul
tests: Don't generate tooltip results in tests/fixtures
2 parents be28130 + 14eb786 commit 8753cb5

File tree

2 files changed

+12
-32
lines changed

2 files changed

+12
-32
lines changed

src/actions/hover.rs

+9-22
Original file line numberDiff line numberDiff line change
@@ -1191,14 +1191,9 @@ pub mod test {
11911191
related_information_support: true,
11921192
};
11931193
let mut config = config::Config::default();
1194-
let cur_dir = env::current_dir().unwrap();
1195-
let target_dir = env::var("CARGO_TARGET_DIR")
1196-
.map(|s| Path::new(&s).to_owned())
1197-
.unwrap_or_else(|_| cur_dir.join("target"));
11981194

1199-
let working_dir = target_dir.join("tests").join("hover").join("working_dir");
1200-
1201-
config.target_dir = config::Inferrable::Specified(Some(working_dir.clone()));
1195+
let temp_dir = tempfile::tempdir().unwrap().into_path();
1196+
config.target_dir = config::Inferrable::Specified(Some(temp_dir.clone()));
12021197

12031198
let config = Arc::new(Mutex::new(config));
12041199
let analysis = Arc::new(analysis::AnalysisHost::new(analysis::Target::Debug));
@@ -1220,7 +1215,7 @@ pub mod test {
12201215
TooltipTestHarness {
12211216
ctx,
12221217
project_dir,
1223-
working_dir,
1218+
working_dir: temp_dir
12241219
}
12251220
}
12261221

@@ -2056,7 +2051,6 @@ pub mod test {
20562051
fn test_tooltip() -> Result<(), Box<dyn std::error::Error>> {
20572052
let _ = env_logger::try_init();
20582053
use self::test::{LineOutput, Test, TooltipTestHarness};
2059-
use std::env;
20602054

20612055
let tests = vec![
20622056
Test::new("test_tooltip_01.rs", 13, 11),
@@ -2112,14 +2106,11 @@ pub mod test {
21122106
Test::new("test_tooltip_mod_use_external.rs", 12, 12),
21132107
];
21142108

2115-
let cwd = env::current_dir()?;
21162109
let out = LineOutput::default();
21172110
let proj_dir = FIXTURES_DIR.join("hover");
2118-
let save_dir = cwd
2119-
.join("target")
2120-
.join("tests")
2121-
.join("hover")
2122-
.join("save_data");
2111+
2112+
let save_dir_guard = tempfile::tempdir().unwrap();
2113+
let save_dir = save_dir_guard.path().to_owned();
21232114
let load_dir = proj_dir.join("save_data");
21242115

21252116
let harness = TooltipTestHarness::new(proj_dir, &out);
@@ -2145,7 +2136,6 @@ pub mod test {
21452136
fn test_tooltip_std() -> Result<(), Box<dyn std::error::Error>> {
21462137
let _ = env_logger::try_init();
21472138
use self::test::{LineOutput, Test, TooltipTestHarness};
2148-
use std::env;
21492139

21502140
let tests = vec![
21512141
// these test std stuff
@@ -2167,14 +2157,11 @@ pub mod test {
21672157
Test::new("test_tooltip_std.rs", 25, 25),
21682158
];
21692159

2170-
let cwd = env::current_dir()?;
21712160
let out = LineOutput::default();
21722161
let proj_dir = FIXTURES_DIR.join("hover");
2173-
let save_dir = cwd
2174-
.join("target")
2175-
.join("tests")
2176-
.join("hover")
2177-
.join("save_data");
2162+
2163+
let save_dir_guard = tempfile::tempdir().unwrap();
2164+
let save_dir = save_dir_guard.path().to_owned();
21782165
let load_dir = proj_dir.join("save_data");
21792166

21802167
let harness = TooltipTestHarness::new(proj_dir, &out);

src/test/harness.rs

+3-10
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ use serde_json;
2929
use walkdir::WalkDir;
3030

3131
lazy_static! {
32-
static ref COUNTER: AtomicUsize = AtomicUsize::new(0);
3332
static ref MANIFEST_DIR: &'static Path = Path::new(env!("CARGO_MANIFEST_DIR"));
3433
pub static ref FIXTURES_DIR: PathBuf = MANIFEST_DIR.join("tests").join("fixtures");
3534
}
@@ -51,24 +50,18 @@ impl Environment {
5150
let scratchpad_dir = build_scratchpad_from_fixture(fixture_dir)
5251
.expect("Can't copy fixture files to scratchpad");
5352

54-
let target_dir = env::var("CARGO_TARGET_DIR")
55-
.map(|s| Path::new(&s).to_owned())
56-
.unwrap_or_else(|_| MANIFEST_DIR.join("target"));
57-
58-
let working_dir = target_dir
59-
.join("tests")
60-
.join(format!("{}", COUNTER.fetch_add(1, Ordering::Relaxed)));
53+
let target_dir = scratchpad_dir.join("target");
6154

6255
let mut config = Config::default();
63-
config.target_dir = Inferrable::Specified(Some(working_dir.clone()));
56+
config.target_dir = Inferrable::Specified(Some(target_dir.clone()));
6457
config.unstable_features = true;
6558

6659
let cache = Cache::new(scratchpad_dir);
6760

6861
Self {
6962
config: Some(config),
7063
cache,
71-
target_path: working_dir,
64+
target_path: target_dir,
7265
}
7366
}
7467
}

0 commit comments

Comments
 (0)