diff options
author | Jeremy A. Kolb <[email protected]> | 2018-10-15 22:44:23 +0100 |
---|---|---|
committer | Jeremy A. Kolb <[email protected]> | 2018-10-16 14:41:10 +0100 |
commit | 61f3a438d3a729a6be941bca1ff4c6a97a33f221 (patch) | |
tree | 6551967cc8c6e921b66071453ad7888a9121d326 /crates/ra_lsp_server/tests/heavy_tests/support.rs | |
parent | 39cb6c6d3f78b193f5873c3492e530bbd24d5dd2 (diff) |
Cargo Format
Run `cargo fmt` and ignore generated files
Diffstat (limited to 'crates/ra_lsp_server/tests/heavy_tests/support.rs')
-rw-r--r-- | crates/ra_lsp_server/tests/heavy_tests/support.rs | 78 |
1 files changed, 33 insertions, 45 deletions
diff --git a/crates/ra_lsp_server/tests/heavy_tests/support.rs b/crates/ra_lsp_server/tests/heavy_tests/support.rs index d1339f62f..004d7e8ad 100644 --- a/crates/ra_lsp_server/tests/heavy_tests/support.rs +++ b/crates/ra_lsp_server/tests/heavy_tests/support.rs | |||
@@ -1,34 +1,33 @@ | |||
1 | use std::{ | 1 | use std::{ |
2 | fs, | ||
3 | cell::{Cell, RefCell}, | 2 | cell::{Cell, RefCell}, |
3 | fs, | ||
4 | path::PathBuf, | 4 | path::PathBuf, |
5 | time::Duration, | ||
6 | sync::Once, | 5 | sync::Once, |
6 | time::Duration, | ||
7 | }; | 7 | }; |
8 | 8 | ||
9 | use tempdir::TempDir; | ||
10 | use crossbeam_channel::{after, Receiver}; | 9 | use crossbeam_channel::{after, Receiver}; |
11 | use flexi_logger::Logger; | 10 | use flexi_logger::Logger; |
11 | use gen_lsp_server::{RawMessage, RawNotification, RawRequest}; | ||
12 | use languageserver_types::{ | 12 | use languageserver_types::{ |
13 | Url, | ||
14 | TextDocumentIdentifier, | ||
15 | request::{Request, Shutdown}, | ||
16 | notification::DidOpenTextDocument, | 13 | notification::DidOpenTextDocument, |
17 | DidOpenTextDocumentParams, | 14 | request::{Request, Shutdown}, |
18 | TextDocumentItem, | 15 | DidOpenTextDocumentParams, TextDocumentIdentifier, TextDocumentItem, Url, |
19 | }; | 16 | }; |
20 | use serde::Serialize; | 17 | use serde::Serialize; |
21 | use serde_json::{Value, from_str, to_string_pretty}; | 18 | use serde_json::{from_str, to_string_pretty, Value}; |
22 | use gen_lsp_server::{RawMessage, RawRequest, RawNotification}; | 19 | use tempdir::TempDir; |
23 | 20 | ||
24 | use ra_lsp_server::{main_loop, req, thread_watcher::{ThreadWatcher, Worker}}; | 21 | use ra_lsp_server::{ |
22 | main_loop, req, | ||
23 | thread_watcher::{ThreadWatcher, Worker}, | ||
24 | }; | ||
25 | 25 | ||
26 | pub fn project(fixture: &str) -> Server { | 26 | pub fn project(fixture: &str) -> Server { |
27 | static INIT: Once = Once::new(); | 27 | static INIT: Once = Once::new(); |
28 | INIT.call_once(|| Logger::with_env_or_str(crate::LOG).start().unwrap()); | 28 | INIT.call_once(|| Logger::with_env_or_str(crate::LOG).start().unwrap()); |
29 | 29 | ||
30 | let tmp_dir = TempDir::new("test-project") | 30 | let tmp_dir = TempDir::new("test-project").unwrap(); |
31 | .unwrap(); | ||
32 | let mut buf = String::new(); | 31 | let mut buf = String::new(); |
33 | let mut file_name = None; | 32 | let mut file_name = None; |
34 | let mut paths = vec![]; | 33 | let mut paths = vec![]; |
@@ -40,7 +39,7 @@ pub fn project(fixture: &str) -> Server { | |||
40 | fs::write(path.as_path(), buf.as_bytes()).unwrap(); | 39 | fs::write(path.as_path(), buf.as_bytes()).unwrap(); |
41 | paths.push((path, buf.clone())); | 40 | paths.push((path, buf.clone())); |
42 | } | 41 | } |
43 | } | 42 | }; |
44 | }; | 43 | }; |
45 | for line in fixture.lines() { | 44 | for line in fixture.lines() { |
46 | if line.starts_with("//-") { | 45 | if line.starts_with("//-") { |
@@ -71,9 +70,8 @@ impl Server { | |||
71 | "test server", | 70 | "test server", |
72 | 128, | 71 | 128, |
73 | move |mut msg_receiver, mut msg_sender| { | 72 | move |mut msg_receiver, mut msg_sender| { |
74 | main_loop(true, path, &mut msg_receiver, &mut msg_sender) | 73 | main_loop(true, path, &mut msg_receiver, &mut msg_sender).unwrap() |
75 | .unwrap() | 74 | }, |
76 | } | ||
77 | ); | 75 | ); |
78 | let res = Server { | 76 | let res = Server { |
79 | req_id: Cell::new(1), | 77 | req_id: Cell::new(1), |
@@ -91,8 +89,8 @@ impl Server { | |||
91 | language_id: "rust".to_string(), | 89 | language_id: "rust".to_string(), |
92 | version: 0, | 90 | version: 0, |
93 | text, | 91 | text, |
94 | } | 92 | }, |
95 | } | 93 | }, |
96 | )) | 94 | )) |
97 | } | 95 | } |
98 | res | 96 | res |
@@ -105,11 +103,7 @@ impl Server { | |||
105 | } | 103 | } |
106 | } | 104 | } |
107 | 105 | ||
108 | pub fn request<R>( | 106 | pub fn request<R>(&self, params: R::Params, expected_resp: &str) |
109 | &self, | ||
110 | params: R::Params, | ||
111 | expected_resp: &str, | ||
112 | ) | ||
113 | where | 107 | where |
114 | R: Request, | 108 | R: Request, |
115 | R::Params: Serialize, | 109 | R::Params: Serialize, |
@@ -119,7 +113,8 @@ impl Server { | |||
119 | let expected_resp: Value = from_str(expected_resp).unwrap(); | 113 | let expected_resp: Value = from_str(expected_resp).unwrap(); |
120 | let actual = self.send_request::<R>(id, params); | 114 | let actual = self.send_request::<R>(id, params); |
121 | assert_eq!( | 115 | assert_eq!( |
122 | expected_resp, actual, | 116 | expected_resp, |
117 | actual, | ||
123 | "Expected:\n{}\n\ | 118 | "Expected:\n{}\n\ |
124 | Actual:\n{}\n", | 119 | Actual:\n{}\n", |
125 | to_string_pretty(&expected_resp).unwrap(), | 120 | to_string_pretty(&expected_resp).unwrap(), |
@@ -135,12 +130,9 @@ impl Server { | |||
135 | let r = RawRequest::new::<R>(id, ¶ms); | 130 | let r = RawRequest::new::<R>(id, ¶ms); |
136 | self.send_request_(r) | 131 | self.send_request_(r) |
137 | } | 132 | } |
138 | fn send_request_(&self, r: RawRequest) -> Value | 133 | fn send_request_(&self, r: RawRequest) -> Value { |
139 | { | ||
140 | let id = r.id; | 134 | let id = r.id; |
141 | self.worker.as_ref() | 135 | self.worker.as_ref().unwrap().send(RawMessage::Request(r)); |
142 | .unwrap() | ||
143 | .send(RawMessage::Request(r)); | ||
144 | while let Some(msg) = self.recv() { | 136 | while let Some(msg) = self.recv() { |
145 | match msg { | 137 | match msg { |
146 | RawMessage::Request(req) => panic!("unexpected request: {:?}", req), | 138 | RawMessage::Request(req) => panic!("unexpected request: {:?}", req), |
@@ -161,11 +153,10 @@ impl Server { | |||
161 | } | 153 | } |
162 | pub fn wait_for_feedback_n(&self, feedback: &str, n: usize) { | 154 | pub fn wait_for_feedback_n(&self, feedback: &str, n: usize) { |
163 | let f = |msg: &RawMessage| match msg { | 155 | let f = |msg: &RawMessage| match msg { |
164 | RawMessage::Notification(n) if n.method == "internalFeedback" => { | 156 | RawMessage::Notification(n) if n.method == "internalFeedback" => { |
165 | return n.clone().cast::<req::InternalFeedback>() | 157 | return n.clone().cast::<req::InternalFeedback>().unwrap() == feedback |
166 | .unwrap() == feedback | 158 | } |
167 | } | 159 | _ => false, |
168 | _ => false, | ||
169 | }; | 160 | }; |
170 | let mut total = 0; | 161 | let mut total = 0; |
171 | for msg in self.messages.borrow().iter() { | 162 | for msg in self.messages.borrow().iter() { |
@@ -181,14 +172,14 @@ impl Server { | |||
181 | } | 172 | } |
182 | } | 173 | } |
183 | fn recv(&self) -> Option<RawMessage> { | 174 | fn recv(&self) -> Option<RawMessage> { |
184 | recv_timeout(&self.worker.as_ref().unwrap().out) | 175 | recv_timeout(&self.worker.as_ref().unwrap().out).map(|msg| { |
185 | .map(|msg| { | 176 | self.messages.borrow_mut().push(msg.clone()); |
186 | self.messages.borrow_mut().push(msg.clone()); | 177 | msg |
187 | msg | 178 | }) |
188 | }) | ||
189 | } | 179 | } |
190 | fn send_notification(&self, not: RawNotification) { | 180 | fn send_notification(&self, not: RawNotification) { |
191 | self.worker.as_ref() | 181 | self.worker |
182 | .as_ref() | ||
192 | .unwrap() | 183 | .unwrap() |
193 | .send(RawMessage::Notification(not)); | 184 | .send(RawMessage::Notification(not)); |
194 | } | 185 | } |
@@ -201,10 +192,7 @@ impl Drop for Server { | |||
201 | while let Some(msg) = recv_timeout(&receiver) { | 192 | while let Some(msg) = recv_timeout(&receiver) { |
202 | drop(msg); | 193 | drop(msg); |
203 | } | 194 | } |
204 | self.watcher.take() | 195 | self.watcher.take().unwrap().stop().unwrap(); |
205 | .unwrap() | ||
206 | .stop() | ||
207 | .unwrap(); | ||
208 | } | 196 | } |
209 | } | 197 | } |
210 | 198 | ||