@@ -32,6 +32,8 @@ mod support;
32
32
33
33
lazy_static ! {
34
34
static ref COUNTER : AtomicUsize = AtomicUsize :: new( 0 ) ;
35
+ static ref MANIFEST_DIR : & ' static Path = Path :: new( env!( "CARGO_MANIFEST_DIR" ) ) ;
36
+ static ref FIXTURES_DIR : PathBuf = MANIFEST_DIR . join( "test_data" ) ;
35
37
}
36
38
37
39
crate struct Environment {
@@ -42,23 +44,19 @@ crate struct Environment {
42
44
43
45
impl Environment {
44
46
crate fn generate_from_fixture ( fixture_dir : impl AsRef < Path > ) -> Self {
45
- let fixture_dir = fixture_dir. as_ref ( ) ;
46
-
47
47
let _ = env_logger:: try_init ( ) ;
48
48
if env:: var ( "RUSTC" ) . is_err ( ) {
49
49
env:: set_var ( "RUSTC" , "rustc" ) ;
50
50
}
51
51
52
- let manifest_dir = & Path :: new ( env ! ( "CARGO_MANIFEST_DIR" ) ) ;
53
- let fixture_dir = manifest_dir. join ( "test_data" ) . join ( fixture_dir) ;
54
-
52
+ let fixture_dir = FIXTURES_DIR . join ( fixture_dir. as_ref ( ) ) ;
55
53
let project = support:: ProjectBuilder :: try_from_fixture ( fixture_dir)
56
54
. unwrap ( )
57
55
. build ( ) ;
58
56
59
57
let target_dir = env:: var ( "CARGO_TARGET_DIR" )
60
58
. map ( |s| Path :: new ( & s) . to_owned ( ) )
61
- . unwrap_or_else ( |_| manifest_dir . join ( "target" ) ) ;
59
+ . unwrap_or_else ( |_| MANIFEST_DIR . join ( "target" ) ) ;
62
60
63
61
let working_dir = target_dir
64
62
. join ( "tests" )
@@ -83,18 +81,9 @@ impl Environment {
83
81
env:: set_var ( "RUSTC" , "rustc" ) ;
84
82
}
85
83
86
- // Acquire the current directory, but this is changing when tests are
87
- // running so we need to be sure to access it in a synchronized fashion.
88
- let cur_dir = {
89
- use crate :: build:: environment:: { Environment , EnvironmentLock } ;
90
- let env = EnvironmentLock :: get ( ) ;
91
- let ( guard, _other) = env. lock ( ) ;
92
- let env = Environment :: push_with_lock ( & HashMap :: new ( ) , None , guard) ;
93
- match env:: var_os ( "RLS_TEST_WORKSPACE_DIR" ) {
94
- Some ( cur_dir) => cur_dir. into ( ) ,
95
- None => env. get_old_cwd ( ) . to_path_buf ( ) ,
96
- }
97
- } ;
84
+ let cur_dir = env:: var_os ( "RLS_TEST_WORKSPACE_DIR" )
85
+ . map ( PathBuf :: from)
86
+ . unwrap_or_else ( || MANIFEST_DIR . to_owned ( ) ) ;
98
87
let project_path = cur_dir. join ( "test_data" ) . join ( project_dir) ;
99
88
100
89
let target_dir = env:: var ( "CARGO_TARGET_DIR" )
0 commit comments