11//! Run all tests in a project, similar to `cargo test`, but using the mir interpreter.
22
3+ use std:: convert:: identity;
34use std:: thread:: Builder ;
45use std:: time:: { Duration , Instant } ;
56use std:: { cell:: RefCell , fs:: read_to_string, panic:: AssertUnwindSafe , path:: PathBuf } ;
@@ -155,18 +156,18 @@ impl Tester {
155156 . stack_size ( 40 * 1024 * 1024 )
156157 . spawn_scoped ( s, {
157158 let diagnostic_config = & diagnostic_config;
158- // let main = std::thread::current();
159+ let main = std:: thread:: current ( ) ;
159160 let analysis = self . host . analysis ( ) ;
160161 let root_file = self . root_file ;
161162 move || {
162- // let res = std::panic::catch_unwind(move || {
163- let res = analysis. full_diagnostics (
164- diagnostic_config,
165- ide:: AssistResolveStrategy :: None ,
166- root_file,
167- ) ;
168- // });
169- // main.unpark();
163+ let res = std:: panic:: catch_unwind ( move || {
164+ analysis. full_diagnostics (
165+ diagnostic_config,
166+ ide:: AssistResolveStrategy :: None ,
167+ root_file,
168+ )
169+ } ) ;
170+ main. unpark ( ) ;
170171 res
171172 }
172173 } )
@@ -182,7 +183,7 @@ impl Tester {
182183 // attempt to cancel the worker, won't work for chalk hangs unfortunately
183184 self . host . request_cancellation ( ) ;
184185 }
185- worker. join ( )
186+ worker. join ( ) . and_then ( identity )
186187 } ) ;
187188 let mut actual = FxHashMap :: default ( ) ;
188189 let panicked = match res {
0 commit comments