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

Commit 5f5e64a

Browse files
committed
Add test cases for inferring crate target types
1 parent 77d8274 commit 5f5e64a

File tree

10 files changed

+109
-0
lines changed

10 files changed

+109
-0
lines changed

src/test/mod.rs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,63 @@ fn test_simple_workspace() {
477477
ExpectedMessage::new(None).expect_contains("diagnosticsEnd")]);
478478
}
479479

480+
#[test]
481+
fn test_infer_lib() {
482+
let (cache, _tc) = init_env("infer_lib");
483+
484+
let root_path = cache.abs_path(Path::new("."));
485+
let messages = vec![
486+
ServerMessage::initialize(0, root_path.as_os_str().to_str().map(|x| x.to_owned()))
487+
];
488+
489+
let (mut server, results) = mock_server(messages);
490+
// Initialise and build.
491+
assert_eq!(ls_server::LsService::handle_message(&mut server),
492+
ls_server::ServerStateChange::Continue);
493+
expect_messages(results.clone(), &[ExpectedMessage::new(Some(0)).expect_contains("capabilities"),
494+
ExpectedMessage::new(None).expect_contains("diagnosticsBegin"),
495+
ExpectedMessage::new(None).expect_contains("struct is never used: `UnusedLib`"),
496+
ExpectedMessage::new(None).expect_contains("diagnosticsEnd")]);
497+
}
498+
499+
#[test]
500+
fn test_infer_bin() {
501+
let (cache, _tc) = init_env("infer_bin");
502+
503+
let root_path = cache.abs_path(Path::new("."));
504+
let messages = vec![
505+
ServerMessage::initialize(0, root_path.as_os_str().to_str().map(|x| x.to_owned()))
506+
];
507+
508+
let (mut server, results) = mock_server(messages);
509+
// Initialise and build.
510+
assert_eq!(ls_server::LsService::handle_message(&mut server),
511+
ls_server::ServerStateChange::Continue);
512+
expect_messages(results.clone(), &[ExpectedMessage::new(Some(0)).expect_contains("capabilities"),
513+
ExpectedMessage::new(None).expect_contains("diagnosticsBegin"),
514+
ExpectedMessage::new(None).expect_contains("struct is never used: `UnusedBin`"),
515+
ExpectedMessage::new(None).expect_contains("diagnosticsEnd")]);
516+
}
517+
518+
#[test]
519+
fn test_infer_custom_bin() {
520+
let (cache, _tc) = init_env("infer_custom_bin");
521+
522+
let root_path = cache.abs_path(Path::new("."));
523+
let messages = vec![
524+
ServerMessage::initialize(0, root_path.as_os_str().to_str().map(|x| x.to_owned()))
525+
];
526+
527+
let (mut server, results) = mock_server(messages);
528+
// Initialise and build.
529+
assert_eq!(ls_server::LsService::handle_message(&mut server),
530+
ls_server::ServerStateChange::Continue);
531+
expect_messages(results.clone(), &[ExpectedMessage::new(Some(0)).expect_contains("capabilities"),
532+
ExpectedMessage::new(None).expect_contains("diagnosticsBegin"),
533+
ExpectedMessage::new(None).expect_contains("struct is never used: `UnusedCustomBin`"),
534+
ExpectedMessage::new(None).expect_contains("diagnosticsEnd")]);
535+
}
536+
480537
#[test]
481538
fn test_omit_init_build() {
482539
let (cache, _tc) = init_env("omit_init_build");

test_data/infer_bin/Cargo.lock

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test_data/infer_bin/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[package]
2+
name = "infer_bin"
3+
version = "0.1.0"
4+
authors = ["Igor Matuszewski <[email protected]>"]
5+
6+
[dependencies]

test_data/infer_bin/src/main.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
struct UnusedBin;
2+
3+
fn main() {
4+
println!("Hello, world!");
5+
}

test_data/infer_custom_bin/Cargo.lock

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test_data/infer_custom_bin/Cargo.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[package]
2+
name = "infer_custom_bin"
3+
version = "0.1.0"
4+
authors = ["Igor Matuszewski <[email protected]>"]
5+
6+
[[bin]]
7+
name = "custom_bin"
8+
path = "src/custom_bin.rs"
9+
10+
[dependencies]
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
struct UnusedCustomBin;
2+
3+
fn main() {
4+
println!("Hello, world!");
5+
}

test_data/infer_lib/Cargo.lock

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test_data/infer_lib/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[package]
2+
name = "infer_lib"
3+
version = "0.1.0"
4+
authors = ["Igor Matuszewski <[email protected]>"]
5+
6+
[dependencies]

test_data/infer_lib/src/lib.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
struct UnusedLib;
2+
3+
#[cfg(test)]
4+
mod tests {
5+
#[test]
6+
fn it_works() {
7+
}
8+
}

0 commit comments

Comments
 (0)