diff options
author | Aleksey Kladov <[email protected]> | 2019-01-10 21:37:10 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-01-10 21:51:34 +0000 |
commit | cd00158b1db9dd8565d2db08b4b0ebab9d5c00b3 (patch) | |
tree | 2072596e298e76aa6d5a8896ef30f591d7c7051c /crates/ra_lsp_server/tests | |
parent | e35374ec7c26be8de61ec7c6175c2385ee5c006f (diff) |
wire sysroot into crate graph
Diffstat (limited to 'crates/ra_lsp_server/tests')
-rw-r--r-- | crates/ra_lsp_server/tests/heavy_tests/main.rs | 41 | ||||
-rw-r--r-- | crates/ra_lsp_server/tests/heavy_tests/support.rs | 13 |
2 files changed, 23 insertions, 31 deletions
diff --git a/crates/ra_lsp_server/tests/heavy_tests/main.rs b/crates/ra_lsp_server/tests/heavy_tests/main.rs index 927664ffb..02d62a259 100644 --- a/crates/ra_lsp_server/tests/heavy_tests/main.rs +++ b/crates/ra_lsp_server/tests/heavy_tests/main.rs | |||
@@ -1,5 +1,10 @@ | |||
1 | mod support; | 1 | mod support; |
2 | 2 | ||
3 | use std::{ | ||
4 | collections::HashMap, | ||
5 | time::Instant, | ||
6 | }; | ||
7 | |||
3 | use languageserver_types::{ | 8 | use languageserver_types::{ |
4 | CodeActionContext, DocumentFormattingParams, FormattingOptions, Position, Range, | 9 | CodeActionContext, DocumentFormattingParams, FormattingOptions, Position, Range, |
5 | }; | 10 | }; |
@@ -14,6 +19,7 @@ const LOG: &'static str = ""; | |||
14 | 19 | ||
15 | #[test] | 20 | #[test] |
16 | fn completes_items_from_standard_library() { | 21 | fn completes_items_from_standard_library() { |
22 | let project_start = Instant::now(); | ||
17 | let server = project( | 23 | let server = project( |
18 | r#" | 24 | r#" |
19 | //- Cargo.toml | 25 | //- Cargo.toml |
@@ -22,33 +28,19 @@ name = "foo" | |||
22 | version = "0.0.0" | 28 | version = "0.0.0" |
23 | 29 | ||
24 | //- src/lib.rs | 30 | //- src/lib.rs |
25 | use std::collections::; | 31 | use std::collections::Spam; |
26 | "#, | 32 | "#, |
27 | ); | 33 | ); |
28 | server.wait_for_feedback("workspace loaded"); | 34 | server.wait_for_feedback("workspace loaded"); |
29 | server.request::<Completion>( | 35 | eprintln!("loading took {:?}", project_start.elapsed()); |
30 | CompletionParams { | 36 | let completion_start = Instant::now(); |
31 | text_document: server.doc_id("src/lib.rs"), | 37 | let res = server.send_request::<Completion>(CompletionParams { |
32 | context: None, | 38 | text_document: server.doc_id("src/lib.rs"), |
33 | position: Position::new(0, 22), | 39 | context: None, |
34 | }, | 40 | position: Position::new(0, 23), |
35 | json!([ | 41 | }); |
36 | { | 42 | assert!(format!("{}", res).contains("HashMap")); |
37 | "filterText": "self", | 43 | eprintln!("completion took {:?}", completion_start.elapsed()); |
38 | "insertText": "self", | ||
39 | "insertTextFormat": 1, | ||
40 | "kind": 14, | ||
41 | "label": "self" | ||
42 | }, | ||
43 | { | ||
44 | "filterText": "super", | ||
45 | "insertText": "super", | ||
46 | "insertTextFormat": 1, | ||
47 | "kind": 14, | ||
48 | "label": "super" | ||
49 | } | ||
50 | ]), | ||
51 | ); | ||
52 | } | 44 | } |
53 | 45 | ||
54 | #[test] | 46 | #[test] |
@@ -161,7 +153,6 @@ fn test_eggs() {} | |||
161 | ); | 153 | ); |
162 | } | 154 | } |
163 | 155 | ||
164 | use std::collections::HashMap; | ||
165 | #[test] | 156 | #[test] |
166 | fn test_format_document() { | 157 | fn test_format_document() { |
167 | let server = project( | 158 | let server = project( |
diff --git a/crates/ra_lsp_server/tests/heavy_tests/support.rs b/crates/ra_lsp_server/tests/heavy_tests/support.rs index 7db168b0f..46107b6b6 100644 --- a/crates/ra_lsp_server/tests/heavy_tests/support.rs +++ b/crates/ra_lsp_server/tests/heavy_tests/support.rs | |||
@@ -93,9 +93,7 @@ impl Server { | |||
93 | R: Request, | 93 | R: Request, |
94 | R::Params: Serialize, | 94 | R::Params: Serialize, |
95 | { | 95 | { |
96 | let id = self.req_id.get(); | 96 | let actual = self.send_request::<R>(params); |
97 | self.req_id.set(id + 1); | ||
98 | let actual = self.send_request::<R>(id, params); | ||
99 | match find_mismatch(&expected_resp, &actual) { | 97 | match find_mismatch(&expected_resp, &actual) { |
100 | Some((expected_part, actual_part)) => panic!( | 98 | Some((expected_part, actual_part)) => panic!( |
101 | "JSON mismatch\nExpected:\n{}\nWas:\n{}\nExpected part:\n{}\nActual part:\n{}\n", | 99 | "JSON mismatch\nExpected:\n{}\nWas:\n{}\nExpected part:\n{}\nActual part:\n{}\n", |
@@ -108,11 +106,14 @@ impl Server { | |||
108 | } | 106 | } |
109 | } | 107 | } |
110 | 108 | ||
111 | fn send_request<R>(&self, id: u64, params: R::Params) -> Value | 109 | pub fn send_request<R>(&self, params: R::Params) -> Value |
112 | where | 110 | where |
113 | R: Request, | 111 | R: Request, |
114 | R::Params: Serialize, | 112 | R::Params: Serialize, |
115 | { | 113 | { |
114 | let id = self.req_id.get(); | ||
115 | self.req_id.set(id + 1); | ||
116 | |||
116 | let r = RawRequest::new::<R>(id, ¶ms); | 117 | let r = RawRequest::new::<R>(id, ¶ms); |
117 | self.send_request_(r) | 118 | self.send_request_(r) |
118 | } | 119 | } |
@@ -178,7 +179,7 @@ impl Server { | |||
178 | 179 | ||
179 | impl Drop for Server { | 180 | impl Drop for Server { |
180 | fn drop(&mut self) { | 181 | fn drop(&mut self) { |
181 | self.send_request::<Shutdown>(666, ()); | 182 | self.send_request::<Shutdown>(()); |
182 | let receiver = self.worker.take().unwrap().shutdown(); | 183 | let receiver = self.worker.take().unwrap().shutdown(); |
183 | while let Some(msg) = recv_timeout(&receiver) { | 184 | while let Some(msg) = recv_timeout(&receiver) { |
184 | drop(msg); | 185 | drop(msg); |
@@ -188,7 +189,7 @@ impl Drop for Server { | |||
188 | } | 189 | } |
189 | 190 | ||
190 | fn recv_timeout(receiver: &Receiver<RawMessage>) -> Option<RawMessage> { | 191 | fn recv_timeout(receiver: &Receiver<RawMessage>) -> Option<RawMessage> { |
191 | let timeout = Duration::from_secs(5); | 192 | let timeout = Duration::from_secs(50); |
192 | select! { | 193 | select! { |
193 | recv(receiver) -> msg => msg.ok(), | 194 | recv(receiver) -> msg => msg.ok(), |
194 | recv(after(timeout)) -> _ => panic!("timed out"), | 195 | recv(after(timeout)) -> _ => panic!("timed out"), |