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

Commit a848afb

Browse files
committed
Add test for retaining diagnostics between crate targets
1 parent 24bea9d commit a848afb

File tree

1 file changed

+26
-12
lines changed

1 file changed

+26
-12
lines changed

tests/tests.rs

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,13 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
167167
let unused = ();
168168
42
169169
}
170+
#[cfg(test)]
171+
mod test {
172+
#[test]
173+
fn my_test() {
174+
let test_val: u32 = super::fetch_u32();
175+
}
176+
}
170177
"#)
171178
.file("binary/Cargo.toml", r#"
172179
[package]
@@ -198,16 +205,17 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
198205
rls.expect_messages(&[
199206
ExpectedMessage::new(Some(0)).expect_contains("capabilities"),
200207
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
201-
ExpectedMessage::new(None).expect_contains("progress"),
202-
ExpectedMessage::new(None).expect_contains("progress"),
203-
ExpectedMessage::new(None).expect_contains("progress"),
204-
ExpectedMessage::new(None).expect_contains("progress"),
208+
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
209+
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
210+
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
211+
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
205212
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#""done":true"#),
206213
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Indexing""#),
207214
]);
208215
rls.expect_messages_unordered(&[
209216
ExpectedMessage::new(None).expect_contains("publishDiagnostics").expect_contains("library/src/lib.rs")
210-
.expect_contains("unused variable: `unused`"),
217+
.expect_contains("unused variable: `unused`")
218+
.expect_contains("unused variable: `test_val`"),
211219
ExpectedMessage::new(None).expect_contains("publishDiagnostics").expect_contains("binary/src/main.rs")
212220
.expect_contains("unused variable: `val`"),
213221
]);
@@ -229,7 +237,7 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
229237
}
230238
},
231239
"rangeLength": 3,
232-
"text": "invalid_return_type"
240+
"text": "u64"
233241
}
234242
],
235243
"textDocument": {
@@ -242,14 +250,17 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
242250
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
243251
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
244252
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
245-
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#).expect_contains(r#""done":true"#),
253+
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
254+
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
255+
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#""done":true"#),
246256
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Indexing""#),
247257
]);
248258
rls.expect_messages_unordered(&[
249259
ExpectedMessage::new(None).expect_contains("publishDiagnostics").expect_contains("library/src/lib.rs")
250-
.expect_contains("cannot find type `invalid_return_type` in this scope"),
260+
.expect_contains("unused variable: `unused`") // Regular lib compiles
261+
.expect_contains("expected u32, found u64"), // lib unit tests have compile errors
251262
ExpectedMessage::new(None).expect_contains("publishDiagnostics").expect_contains("binary/src/main.rs")
252-
.expect_contains("unused variable: `val`"),
263+
.expect_contains("expected u32, found u64"), // bin depending on lib picks up type mismatch
253264
]);
254265
rls.expect_messages(&[
255266
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Indexing""#).expect_contains(r#""done":true"#),
@@ -265,10 +276,10 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
265276
},
266277
"end": {
267278
"line": 1,
268-
"character": 57,
279+
"character": 41,
269280
}
270281
},
271-
"rangeLength": 19,
282+
"rangeLength": 3,
272283
"text": "u32"
273284
}
274285
],
@@ -279,6 +290,8 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
279290
}))).unwrap();
280291

281292
rls.expect_messages(&[
293+
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
294+
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
282295
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
283296
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
284297
ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#"title":"Building""#),
@@ -287,7 +300,8 @@ fn changing_workspace_lib_retains_bin_diagnostics() {
287300
]);
288301
rls.expect_messages_unordered(&[
289302
ExpectedMessage::new(None).expect_contains("publishDiagnostics").expect_contains("library/src/lib.rs")
290-
.expect_contains("unused variable: `unused`"),
303+
.expect_contains("unused variable: `unused`")
304+
.expect_contains("unused variable: `test_val`"),
291305
ExpectedMessage::new(None).expect_contains("publishDiagnostics").expect_contains("binary/src/main.rs")
292306
.expect_contains("unused variable: `val`"),
293307
]);

0 commit comments

Comments
 (0)