From 42a045e09dd8b757131ec2baef820ca09789fd24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20F=C3=B6rster?= Date: Tue, 11 Jun 2019 12:05:57 +0200 Subject: [PATCH] Make integration tests asynchronous --- Cargo.lock | 323 +++++++++++++++++++++++++++++++++------ Cargo.toml | 1 + tests/build.rs | 73 ++++----- tests/completion.rs | 267 +++++++++++++------------------- tests/definition.rs | 45 +++--- tests/diagnostics.rs | 126 ++++++++------- tests/formatting.rs | 49 +++--- tests/hover.rs | 123 +++++++-------- tests/synchronization.rs | 90 ++++++----- 9 files changed, 615 insertions(+), 482 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1eaeb931d..207eafb38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,6 +34,16 @@ name = "ascii" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "async-datagram" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "async-ready" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "atty" version = "0.2.11" @@ -89,6 +99,11 @@ name = "build_const" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "bumpalo" +version = "2.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "byteorder" version = "1.3.1" @@ -269,6 +284,30 @@ dependencies = [ "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crossbeam" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "crossbeam-channel" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crossbeam-deque" version = "0.2.0" @@ -278,6 +317,15 @@ dependencies = [ "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crossbeam-deque" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "crossbeam-deque" version = "0.7.1" @@ -401,7 +449,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.32 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -471,20 +519,20 @@ name = "futures-boxed" version = "0.1.0" dependencies = [ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.32 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-channel-preview" -version = "0.3.0-alpha.15" +version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-core-preview" -version = "0.3.0-alpha.15" +version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -498,59 +546,74 @@ dependencies = [ [[package]] name = "futures-executor-preview" -version = "0.3.0-alpha.15" +version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-channel-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-io-preview" -version = "0.3.0-alpha.15" +version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-core-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-preview" -version = "0.3.0-alpha.15" +version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-channel-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-executor-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-io-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-executor-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-io-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-util-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "futures-select-macro-preview" +version = "0.3.0-alpha.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro-hack 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-sink-preview" -version = "0.3.0-alpha.15" +version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "futures-channel-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "futures-util-preview" -version = "0.3.0-alpha.15" +version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-channel-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-io-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-io-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-select-macro-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-sink-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-hack 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -593,7 +656,7 @@ dependencies = [ "markup5ever 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.32 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -682,7 +745,7 @@ dependencies = [ "proc-macro-hack 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.32 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", "unindent 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -726,12 +789,20 @@ name = "jni-sys" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "js-sys" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "wasm-bindgen 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "jsonrpc" version = "0.1.0" dependencies = [ "futures-boxed 0.1.0", - "futures-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "serde_repr 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -743,7 +814,18 @@ version = "0.1.0" dependencies = [ "futures-boxed 0.1.0", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.32 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "juliex" +version = "0.3.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -981,7 +1063,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.32 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1136,9 +1218,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.32 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "proc-macro-nested" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "proc-macro2" version = "0.4.29" @@ -1374,6 +1461,70 @@ dependencies = [ "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "romio" +version = "0.3.0-alpha.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "async-datagram 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "async-ready 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "runtime" +version = "0.3.0-alpha.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "runtime-attributes 0.3.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "runtime-native 0.3.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "runtime-raw 0.3.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "runtime-attributes" +version = "0.3.0-alpha.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "runtime-native" +version = "0.3.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "async-datagram 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "juliex 0.3.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "romio 0.3.0-alpha.8 (registry+https://github.com/rust-lang/crates.io-index)", + "runtime-raw 0.3.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-futures 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "runtime-raw" +version = "0.3.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rustc-demangle" version = "0.1.14" @@ -1461,7 +1612,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.32 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1481,7 +1632,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.32 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1582,7 +1733,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "syn" -version = "0.15.32" +version = "0.15.35" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1597,7 +1748,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.32 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1653,7 +1804,7 @@ dependencies = [ "copy_dir 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "criterion 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures-boxed 0.1.0", - "futures-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", "html2md 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", "indoc 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1666,6 +1817,7 @@ dependencies = [ "path-clean 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "reqwest 0.9.16 (registry+https://github.com/rust-lang/crates.io-index)", + "runtime 0.3.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "serde_repr 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2060,6 +2212,64 @@ dependencies = [ "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "wasm-bindgen" +version = "0.2.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "wasm-bindgen-macro 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bumpalo 2.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)", + "js-sys 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro-support 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-backend 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.45" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "winapi" version = "0.2.8" @@ -2120,6 +2330,8 @@ dependencies = [ "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" "checksum ascii 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a5fc969a8ce2c9c0c4b0429bb8431544f6658283c8326ba5ff8c762b75369335" +"checksum async-datagram 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "43d8594c35b0f8c540f322ac40fcf32536fa9fe41872ccf60b445a06a87fd1ae" +"checksum async-ready 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb690f88f674eed5c82591f5bc74e97f0fe29393e39e3c3b18b451c92ab0e753" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" "checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" "checksum backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f106c02a3604afcdc0df5d36cc47b44b55917dbaf3d808f71c163a0ddba64637" @@ -2127,6 +2339,7 @@ dependencies = [ "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" +"checksum bumpalo 2.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "84dca3afd8e01b9526818b7963e5b4916063b3cdf9f10cf6b73ef0bd0ec37aa5" "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" "checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" "checksum cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427" @@ -2146,7 +2359,10 @@ dependencies = [ "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" "checksum criterion 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0363053954f3e679645fc443321ca128b7b950a6fe288cf5f9335cc22ee58394" "checksum criterion-plot 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76f9212ddf2f4a9eb2d401635190600656a1f88a932ef53d06e7fa4c7e02fb8e" +"checksum crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad4c7ea749d9fb09e23c5cb17e3b70650860553a0e2744e38446b1803bf7db94" +"checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b" "checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" +"checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" "checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" "checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" "checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4" @@ -2170,14 +2386,15 @@ dependencies = [ "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futf 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b" "checksum futures 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "62941eff9507c8177d448bd83a44d9b9760856e184081d8cd79ba9f03dd24981" -"checksum futures-channel-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)" = "edf150887ba490560f3d732e479a383ca4b8696af98651806d3f4edc1d968585" -"checksum futures-core-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)" = "10a3833d58fd08b3a40203613ed3a93c8bc0bc0181af5dd6422a0e08df1bfa68" +"checksum futures-channel-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4cd523712fc272e9b714669165a2832debee5a5b7e409bfccdc7c0d5cd0cf07a" +"checksum futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "719770f328642b657b849856bb5a607db9538dd5bb3000122e5ead55d0a58c36" "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" -"checksum futures-executor-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)" = "0a75c64f20734619b4668e87f902544ce8c108dfcb6c9b6b2fcefdd1a848c15a" -"checksum futures-io-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)" = "b24891994ce1445f7e0cd494e4f57fd79f5bd9d37e9cc90a31d109e9a06d9073" -"checksum futures-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f5b8da0ac7e67b6341b8c971918f2bb6540f57b06a8644a76edf17dda0728709" -"checksum futures-sink-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f64fa75a0ce02dee949c8c9447abfc117df214054d6e96755d329c9053baf2fd" -"checksum futures-util-preview 0.3.0-alpha.15 (registry+https://github.com/rust-lang/crates.io-index)" = "ca958da50f4073c475d9f7ec6ce405451e06707bfd69686e83abd76cb4e1e7fb" +"checksum futures-executor-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "315dc58c908535d059576a329b86cd185933433382cfcd394fb2fa353330de03" +"checksum futures-io-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "cca0bf7a1f39c9d32b797b0def93d5932aa71796236aad6b549bac6f7df159a3" +"checksum futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fcfeac5f016a4b5835bb93eb7961f50a64f0e001207562703d9ddf4109d7b263" +"checksum futures-select-macro-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "afee2644abc7c8a6529530bb20e044ace4b7dfc4df1c114614d1b458fc29f0b0" +"checksum futures-sink-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "49dcfdacd6b5974ca0b9b78bc38ffd1071da0206179735c3df82e279f5b784e4" +"checksum futures-util-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "f7a0451b9c5047c2b9ab93425ffd0793165511e93c04b977cd45fbd41c6e34b2" "checksum h2 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "85ab6286db06040ddefb71641b50017c06874614001a134b423783e2db2920bd" "checksum html2md 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e3f40515ebe18a0e23fa35cfce0694e681474a29c6cf0ebe510c05ad6cf2233c" "checksum html5ever 0.22.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c213fa6a618dc1da552f54f85cba74b05d8e883c92ec4e89067736938084c26e" @@ -2194,6 +2411,8 @@ dependencies = [ "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" "checksum jni 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "294eca097d1dc0bf59de5ab9f7eafa5f77129e9f6464c957ed3ddeb705fb4292" "checksum jni-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +"checksum js-sys 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)" = "9987e7c13a91d9cf0efe59cca48a3a7a70e2b11695d5a4640f85ae71e28f5e73" +"checksum juliex 0.3.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7ba5bc8e8d05cc0980ea90e146d2ffc0ad9634281ebb48e4edee411251184663" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" @@ -2240,6 +2459,7 @@ dependencies = [ "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" "checksum proc-macro-hack 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6a9bed9ebc40cf53e3a76d7486c54d05002eae6485b2711ab9104476fb2eb8bc" +"checksum proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "369a6ed065f249a159e06c45752c780bda2fb53c995718f9e484d08daa9eb42e" "checksum proc-macro2 0.4.29 (registry+https://github.com/rust-lang/crates.io-index)" = "64c827cea7a7ab30ce4593e5e04d7a11617ad6ece2fa230605a78b00ff965316" "checksum publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5afecba86dcf1e4fd610246f89899d1924fe12e1e89f555eb7c7f710f3c5ad1d" "checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db" @@ -2263,6 +2483,11 @@ dependencies = [ "checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum reqwest 0.9.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ddcfd2c13c6af0f9c45a1086be3b9c68af79e4430b42790759e2d34cce2a6c60" +"checksum romio 0.3.0-alpha.8 (registry+https://github.com/rust-lang/crates.io-index)" = "e45fc890683557502157efb9479163ad7af2ea4bce850cbd1218926d89c13018" +"checksum runtime 0.3.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0a5bc0b95e096ced67025933b8cf3cffc0b6283d5c5591b5e8f2bcbdd2d69186" +"checksum runtime-attributes 0.3.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6da2562eb0f314b0494a81fcb4a741357683ba538b9f769167925a3953df2c2b" +"checksum runtime-native 0.3.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)" = "acf5520e4f3d366498a968d746c276eee06d9c5fd6c553bd858437e052454976" +"checksum runtime-raw 0.3.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)" = "134702e4a37a0b4386c07f97ca309cdefa213b4dfb3eeeee51aa28d3dbfa718d" "checksum rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ccc78bfd5acd7bf3e89cffcf899e5cb1a52d6fafa8dec2739ad70c9577a57288" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" @@ -2290,7 +2515,7 @@ dependencies = [ "checksum string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eea1eee654ef80933142157fdad9dd8bc43cf7c74e999e369263496f04ff4da" "checksum string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" -"checksum syn 0.15.32 (registry+https://github.com/rust-lang/crates.io-index)" = "846620ec526c1599c070eff393bfeeeb88a93afa2513fc3b49f1fea84cf7b0ed" +"checksum syn 0.15.35 (registry+https://github.com/rust-lang/crates.io-index)" = "641e117d55514d6d918490e47102f7e08d096fdde360247e4a10f7a91a8478d3" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a" "checksum tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "707feda9f2582d5d680d733e38755547a3e8fb471e7ba11452ecfd9ce93a5d3b" @@ -2338,6 +2563,12 @@ dependencies = [ "checksum walkdir 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c66c0b9792f0a765345452775f3adbd28dde9d33f30d13e5dcc5ae17cf6f3780" "checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" "checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" +"checksum wasm-bindgen 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "b7ccc7b93cfd13e26700a9e2e41e6305f1951b87e166599069f77d10358100e6" +"checksum wasm-bindgen-backend 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "1953f91b1608eb1522513623c7739f047bb0fed4128ce51a93f08e12cc314645" +"checksum wasm-bindgen-futures 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)" = "fa1af11c73eca3dc8c51c76ea475a4416e912da6402064a49fc6c0214701866d" +"checksum wasm-bindgen-macro 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "0f69da5696545d7ca6607a2e4b1a0edf5a6b36b2c49dbb0f1df6ad1d92884047" +"checksum wasm-bindgen-macro-support 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "2d4246f3bc73223bbb846f4f2430a60725826a96c9389adf715ed1d5af46dec6" +"checksum wasm-bindgen-shared 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "c08381e07e7a79e5e229ad7c60d15833d19033542cc5dd91d085df59d235f4a6" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" diff --git a/Cargo.toml b/Cargo.toml index cfb25ee17..726eebbb5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,6 +29,7 @@ nom = "5.0.0-beta2" path-clean = "0.1.0" regex = "1.1.6" reqwest = "0.9.16" +runtime = "0.3.0-alpha.4" serde = { version = "1.0.90", features = ["derive", "rc"] } serde_json = "1.0.39" serde_repr = "0.1" diff --git a/tests/build.rs b/tests/build.rs index 9e801f033..e81d41fb2 100644 --- a/tests/build.rs +++ b/tests/build.rs @@ -1,6 +1,5 @@ #![feature(async_await)] -use futures::executor::block_on; use jsonrpc::server::ActionHandler; use lsp_types::*; use texlab::build::*; @@ -28,50 +27,42 @@ async fn run( (scenario, result) } -#[test] -fn test_success() { - block_on(async move { - let (scenario, result) = run("latexmk", false, "bar.tex").await; - assert_eq!(result.status, BuildStatus::Success); - let path = scenario.directory.path().join("foo.pdf"); - assert!(path.exists()); - }); +#[runtime::test] +async fn test_success() { + let (scenario, result) = run("latexmk", false, "bar.tex").await; + assert_eq!(result.status, BuildStatus::Success); + let path = scenario.directory.path().join("foo.pdf"); + assert!(path.exists()); } -#[test] -fn test_error() { - block_on(async move { - let (_, result) = run("latexmk", false, "baz.tex").await; - assert_eq!(result.status, BuildStatus::Error); - }) +#[runtime::test] +async fn test_error() { + let (_, result) = run("latexmk", false, "baz.tex").await; + assert_eq!(result.status, BuildStatus::Error); } -#[test] -fn test_failure() { - block_on(async move { - let (_, result) = run("foobarbaz", false, "foo.tex").await; - assert_eq!(result.status, BuildStatus::Failure); - }); +#[runtime::test] +async fn test_failure() { + let (_, result) = run("foobarbaz", false, "foo.tex").await; + assert_eq!(result.status, BuildStatus::Failure); } -#[test] -fn test_on_save() { - block_on(async move { - let scenario = Scenario::new("build").await; - scenario.open("foo.tex").await; - let mut build_options = BuildOptions::default(); - build_options.args.push("--view=none".to_owned()); - build_options.on_save = true; - { - let mut options = scenario.client.options.lock().await; - options.latex_build = Some(build_options); - } - let text_document = TextDocumentIdentifier::new(scenario.uri("foo.tex")); - scenario - .server - .did_save(DidSaveTextDocumentParams { text_document }); - scenario.server.execute_actions().await; - let path = scenario.directory.path().join("foo.pdf"); - assert!(path.exists()); - }); +#[runtime::test] +async fn test_on_save() { + let scenario = Scenario::new("build").await; + scenario.open("foo.tex").await; + let mut build_options = BuildOptions::default(); + build_options.args.push("--view=none".to_owned()); + build_options.on_save = true; + { + let mut options = scenario.client.options.lock().await; + options.latex_build = Some(build_options); + } + let text_document = TextDocumentIdentifier::new(scenario.uri("foo.tex")); + scenario + .server + .did_save(DidSaveTextDocumentParams { text_document }); + scenario.server.execute_actions().await; + let path = scenario.directory.path().join("foo.pdf"); + assert!(path.exists()); } diff --git a/tests/completion.rs b/tests/completion.rs index a4732302d..49405f5c3 100644 --- a/tests/completion.rs +++ b/tests/completion.rs @@ -1,6 +1,5 @@ #![feature(async_await)] -use futures::executor::block_on; use itertools::Itertools; use lsp_types::*; use texlab::scenario::Scenario; @@ -27,196 +26,148 @@ pub async fn run(scenario: &'static str, file: &'static str, position: Position) .collect() } -#[test] -fn test_kernel_command() { - block_on(async move { - let items = run("kernel", "foo.tex", Position::new(2, 5)).await; - assert!(items.iter().any(|item| item == "usepackage")); - }); +#[runtime::test] +async fn test_kernel_command() { + let items = run("kernel", "foo.tex", Position::new(2, 5)).await; + assert!(items.iter().any(|item| item == "usepackage")); } -#[test] -fn test_kernel_command_bibtex() { - block_on(async move { - let items = run("kernel", "foo.bib", Position::new(1, 17)).await; - assert!(items.iter().any(|item| item == "LaTeX")); - }); +#[runtime::test] +async fn test_kernel_command_bibtex() { + let items = run("kernel", "foo.bib", Position::new(1, 17)).await; + assert!(items.iter().any(|item| item == "LaTeX")); } -#[test] -fn test_kernel_environment() { - block_on(async move { - let items = run("kernel", "foo.tex", Position::new(4, 10)).await; - assert!(items.iter().any(|item| item == "document")); - }); +#[runtime::test] +async fn test_kernel_environment() { + let items = run("kernel", "foo.tex", Position::new(4, 10)).await; + assert!(items.iter().any(|item| item == "document")); } -#[test] -fn test_user_command() { - block_on(async move { - let items = run("user", "foo.tex", Position::new(2, 3)).await; - assert!(items.iter().all(|item| item != "fo")); - assert!(items.iter().any(|item| item == "foo")); - }); +#[runtime::test] +async fn test_user_command() { + let items = run("user", "foo.tex", Position::new(2, 3)).await; + assert!(items.iter().all(|item| item != "fo")); + assert!(items.iter().any(|item| item == "foo")); } -#[test] -fn test_label() { - block_on(async move { - let items = run("label", "foo.tex", Position::new(5, 5)).await; - assert_eq!(items, vec!["bar", "baz", "foo"]); - }); +#[runtime::test] +async fn test_label() { + let items = run("label", "foo.tex", Position::new(5, 5)).await; + assert_eq!(items, vec!["bar", "baz", "foo"]); } -#[test] -fn test_citation() { - block_on(async move { - let items = run("citation", "foo.tex", Position::new(3, 6)).await; - assert_eq!(items, vec!["bar", "baz", "foo"]); - }); +#[runtime::test] +async fn test_citation() { + let items = run("citation", "foo.tex", Position::new(3, 6)).await; + assert_eq!(items, vec!["bar", "baz", "foo"]); } -#[test] -fn test_symbol_command_kernel() { - block_on(async move { - let items = run("symbol", "foo.tex", Position::new(0, 1)).await; - assert!(items.iter().any(|item| item == "varepsilon")); - }); +#[runtime::test] +async fn test_symbol_command_kernel() { + let items = run("symbol", "foo.tex", Position::new(0, 1)).await; + assert!(items.iter().any(|item| item == "varepsilon")); } -#[test] -fn test_symbol_argument() { - block_on(async move { - let items = run("symbol", "foo.tex", Position::new(1, 8)).await; - assert_eq!(items.len(), 26); - assert_eq!(items[0], "A"); - }); +#[runtime::test] +async fn test_symbol_argument() { + let items = run("symbol", "foo.tex", Position::new(1, 8)).await; + assert_eq!(items.len(), 26); + assert_eq!(items[0], "A"); } -#[test] -fn test_color() { - block_on(async move { - let items = run("color", "foo.tex", Position::new(0, 10)).await; - assert!(items.iter().any(|item| item == "black")); - }); +#[runtime::test] +async fn test_color() { + let items = run("color", "foo.tex", Position::new(0, 10)).await; + assert!(items.iter().any(|item| item == "black")); } -#[test] -fn test_color_model() { - block_on(async move { - let items = run("color", "foo.tex", Position::new(1, 18)).await; - assert!(items.iter().any(|item| item == "rgb")); - }); +#[runtime::test] +async fn test_color_model() { + let items = run("color", "foo.tex", Position::new(1, 18)).await; + assert!(items.iter().any(|item| item == "rgb")); } -#[test] -fn test_include_top_level() { - block_on(async move { - let items = run("include", "foo.tex", Position::new(0, 9)).await; - assert_eq!(items, vec!["bar", "foo", "qux"]); - }); +#[runtime::test] +async fn test_include_top_level() { + let items = run("include", "foo.tex", Position::new(0, 9)).await; + assert_eq!(items, vec!["bar", "foo", "qux"]); } -#[test] -fn test_include_directory() { - block_on(async move { - let items = run("include", "foo.tex", Position::new(1, 11)).await; - assert_eq!(items, vec!["bar.tex", "baz.tex"]); - }); +#[runtime::test] +async fn test_include_directory() { + let items = run("include", "foo.tex", Position::new(1, 11)).await; + assert_eq!(items, vec!["bar.tex", "baz.tex"]); } -#[test] -fn test_include_bibliography() { - block_on(async move { - let items = run("include", "bar/baz.tex", Position::new(0, 16)).await; - assert_eq!(items, vec!["foo.bib"]); - }); -} +#[runtime::test] +async fn test_include_bibliography() { + let items = run("include", "bar/baz.tex", Position::new(0, 16)).await; + assert_eq!(items, vec!["foo.bib"]); +} -#[test] -fn test_include_graphics() { - block_on(async move { - let items = run("include", "bar/baz.tex", Position::new(1, 17)).await; - assert_eq!(items, vec!["image1.png", "image2.jpg"]); - }); -} +#[runtime::test] +async fn test_include_graphics() { + let items = run("include", "bar/baz.tex", Position::new(1, 17)).await; + assert_eq!(items, vec!["image1.png", "image2.jpg"]); +} -#[test] -fn test_include_graphics_svg() { - block_on(async move { - let items = run("include", "bar/baz.tex", Position::new(2, 12)).await; - assert_eq!(items, vec!["image3"]); - }); -} +#[runtime::test] +async fn test_include_graphics_svg() { + let items = run("include", "bar/baz.tex", Position::new(2, 12)).await; + assert_eq!(items, vec!["image3"]); +} -#[test] -fn test_import_class() { - block_on(async move { - let items = run("import", "foo.tex", Position::new(0, 18)).await; - assert!(items.iter().any(|item| item == "article")); - }); -} +#[runtime::test] +async fn test_import_class() { + let items = run("import", "foo.tex", Position::new(0, 18)).await; + assert!(items.iter().any(|item| item == "article")); +} -#[test] -fn test_import_package() { - block_on(async move { - let items = run("import", "foo.tex", Position::new(1, 15)).await; - assert!(items.iter().any(|item| item == "amsmath")); - }); -} +#[runtime::test] +async fn test_import_package() { + let items = run("import", "foo.tex", Position::new(1, 15)).await; + assert!(items.iter().any(|item| item == "amsmath")); +} -#[test] -fn test_pgf_library() { - block_on(async move { - let items = run("pgf_library", "foo.tex", Position::new(0, 18)).await; - assert!(items.iter().any(|item| item == "arrows")); - }); -} +#[runtime::test] +async fn test_pgf_library() { + let items = run("pgf_library", "foo.tex", Position::new(0, 18)).await; + assert!(items.iter().any(|item| item == "arrows")); +} -#[test] -fn test_tikz_library() { - block_on(async move { - let items = run("tikz_library", "foo.tex", Position::new(0, 19)).await; - assert!(items.iter().any(|item| item == "arrows")); - }); -} +#[runtime::test] +async fn test_tikz_library() { + let items = run("tikz_library", "foo.tex", Position::new(0, 19)).await; + assert!(items.iter().any(|item| item == "arrows")); +} -#[test] -fn test_entry_type() { - block_on(async move { - let items = run("entry_type", "foo.bib", Position::new(0, 1)).await; - assert!(items.iter().any(|item| item == "article")); - }); -} +#[runtime::test] +async fn test_entry_type() { + let items = run("entry_type", "foo.bib", Position::new(0, 1)).await; + assert!(items.iter().any(|item| item == "article")); +} -#[test] -fn test_entry_type_preamble() { - block_on(async move { - let items = run("entry_type", "foo.bib", Position::new(1, 3)).await; - assert!(items.iter().any(|item| item == "preamble")); - }); -} +#[runtime::test] +async fn test_entry_type_preamble() { + let items = run("entry_type", "foo.bib", Position::new(1, 3)).await; + assert!(items.iter().any(|item| item == "preamble")); +} -#[test] -fn test_entry_type_string() { - block_on(async move { - let items = run("entry_type", "foo.bib", Position::new(2, 3)).await; - assert!(items.iter().any(|item| item == "string")); - }); -} +#[runtime::test] +async fn test_entry_type_string() { + let items = run("entry_type", "foo.bib", Position::new(2, 3)).await; + assert!(items.iter().any(|item| item == "string")); +} -#[test] -fn test_entry_type_comment() { - block_on(async move { - let items = run("entry_type", "foo.bib", Position::new(3, 3)).await; - assert!(items.iter().any(|item| item == "comment")); - }); -} +#[runtime::test] +async fn test_entry_type_comment() { + let items = run("entry_type", "foo.bib", Position::new(3, 3)).await; + assert!(items.iter().any(|item| item == "comment")); +} -#[test] -fn test_field_name() { - block_on(async move { - let items = run("field_name", "foo.bib", Position::new(1, 7)).await; - assert!(items.iter().any(|item| item == "author")); - }); +#[runtime::test] +async fn test_field_name() { + let items = run("field_name", "foo.bib", Position::new(1, 7)).await; + assert!(items.iter().any(|item| item == "author")); } diff --git a/tests/definition.rs b/tests/definition.rs index 5613a7b9c..9265ca063 100644 --- a/tests/definition.rs +++ b/tests/definition.rs @@ -1,6 +1,5 @@ #![feature(async_await)] -use futures::executor::block_on; use lsp_types::*; use texlab::scenario::Scenario; @@ -18,30 +17,26 @@ pub async fn run( (scenario, definitions) } -#[test] -fn test_citation() { - block_on(async move { - let (scenario, definitions) = run("citation", "foo.tex", Position::new(5, 8)).await; - assert_eq!( - definitions, - vec![Location::new( - scenario.uri("foo.bib"), - Range::new_simple(2, 9, 2, 12) - )] - ); - }); +#[runtime::test] +async fn test_citation() { + let (scenario, definitions) = run("citation", "foo.tex", Position::new(5, 8)).await; + assert_eq!( + definitions, + vec![Location::new( + scenario.uri("foo.bib"), + Range::new_simple(2, 9, 2, 12) + )] + ); } -#[test] -fn test_label() { - block_on(async move { - let (scenario, definitions) = run("label", "foo.tex", Position::new(8, 8)).await; - assert_eq!( - definitions, - vec![Location::new( - scenario.uri("bar.tex"), - Range::new_simple(0, 7, 0, 10) - )] - ); - }); +#[runtime::test] +async fn test_label() { + let (scenario, definitions) = run("label", "foo.tex", Position::new(8, 8)).await; + assert_eq!( + definitions, + vec![Location::new( + scenario.uri("bar.tex"), + Range::new_simple(0, 7, 0, 10) + )] + ); } diff --git a/tests/diagnostics.rs b/tests/diagnostics.rs index a507ac166..36a2b30f5 100644 --- a/tests/diagnostics.rs +++ b/tests/diagnostics.rs @@ -1,83 +1,77 @@ #![feature(async_await)] -use futures::executor::block_on; use jsonrpc::server::ActionHandler; use lsp_types::*; use texlab::diagnostics::{BibtexErrorCode, LatexLintOptions}; use texlab::scenario::Scenario; -#[test] -fn test_lint_latex() { - block_on(async move { - let scenario = Scenario::new("diagnostics/lint").await; - scenario.open("foo.tex").await; - { - let mut options = scenario.client.options.lock().await; - options.latex_lint = Some(LatexLintOptions { on_save: true }); - } - let identifier = TextDocumentIdentifier::new(scenario.uri("foo.tex")); - scenario.server.did_save(DidSaveTextDocumentParams { - text_document: identifier, - }); - scenario.server.execute_actions().await; - let diagnostics_by_uri = scenario.client.diagnostics_by_uri.lock().await; - let diagnostics = diagnostics_by_uri.get(&scenario.uri("foo.tex")).unwrap(); - assert_eq!(diagnostics.len(), 1); - assert_eq!(diagnostics[0].message, "Wrong length of dash may have been used."); - assert_eq!(diagnostics[0].range.start.line, 4); +#[runtime::test] +async fn test_lint_latex() { + let scenario = Scenario::new("diagnostics/lint").await; + scenario.open("foo.tex").await; + { + let mut options = scenario.client.options.lock().await; + options.latex_lint = Some(LatexLintOptions { on_save: true }); + } + let identifier = TextDocumentIdentifier::new(scenario.uri("foo.tex")); + scenario.server.did_save(DidSaveTextDocumentParams { + text_document: identifier, }); + scenario.server.execute_actions().await; + let diagnostics_by_uri = scenario.client.diagnostics_by_uri.lock().await; + let diagnostics = diagnostics_by_uri.get(&scenario.uri("foo.tex")).unwrap(); + assert_eq!(diagnostics.len(), 1); + assert_eq!( + diagnostics[0].message, + "Wrong length of dash may have been used." + ); + assert_eq!(diagnostics[0].range.start.line, 4); } -#[test] -fn test_lint_latex_disabled() { - block_on(async move { - let scenario = Scenario::new("diagnostics/lint").await; - scenario.open("foo.tex").await; - let identifier = TextDocumentIdentifier::new(scenario.uri("foo.tex")); - scenario.server.did_save(DidSaveTextDocumentParams { - text_document: identifier, - }); - scenario.server.execute_actions().await; - let diagnostics_by_uri = scenario.client.diagnostics_by_uri.lock().await; - let diagnostics = diagnostics_by_uri.get(&scenario.uri("foo.tex")).unwrap(); - assert!(diagnostics.is_empty()); +#[runtime::test] +async fn test_lint_latex_disabled() { + let scenario = Scenario::new("diagnostics/lint").await; + scenario.open("foo.tex").await; + let identifier = TextDocumentIdentifier::new(scenario.uri("foo.tex")); + scenario.server.did_save(DidSaveTextDocumentParams { + text_document: identifier, }); + scenario.server.execute_actions().await; + let diagnostics_by_uri = scenario.client.diagnostics_by_uri.lock().await; + let diagnostics = diagnostics_by_uri.get(&scenario.uri("foo.tex")).unwrap(); + assert!(diagnostics.is_empty()); } -#[test] -fn test_lint_bibtex() { - block_on(async move { - let scenario = Scenario::new("diagnostics/lint").await; - scenario.open("foo.bib").await; - let diagnostics_by_uri = scenario.client.diagnostics_by_uri.lock().await; - let diagnostics = diagnostics_by_uri.get(&scenario.uri("foo.bib")).unwrap(); - assert_eq!(diagnostics.len(), 1); - assert_eq!( - diagnostics[0].message, - BibtexErrorCode::MissingBeginBrace.message() - ); - assert_eq!(diagnostics[0].range.start.line, 0); - }); +#[runtime::test] +async fn test_lint_bibtex() { + let scenario = Scenario::new("diagnostics/lint").await; + scenario.open("foo.bib").await; + let diagnostics_by_uri = scenario.client.diagnostics_by_uri.lock().await; + let diagnostics = diagnostics_by_uri.get(&scenario.uri("foo.bib")).unwrap(); + assert_eq!(diagnostics.len(), 1); + assert_eq!( + diagnostics[0].message, + BibtexErrorCode::MissingBeginBrace.message() + ); + assert_eq!(diagnostics[0].range.start.line, 0); } -#[test] -fn test_build() { - block_on(async move { - let scenario = Scenario::new("diagnostics/build").await; - scenario - .server - .did_change_watched_files(DidChangeWatchedFilesParams { - changes: vec![FileEvent { - uri: scenario.uri("foo.log"), - typ: FileChangeType::Changed, - }], - }); - scenario.server.execute_actions().await; +#[runtime::test] +async fn test_build() { + let scenario = Scenario::new("diagnostics/build").await; + scenario + .server + .did_change_watched_files(DidChangeWatchedFilesParams { + changes: vec![FileEvent { + uri: scenario.uri("foo.log"), + typ: FileChangeType::Changed, + }], + }); + scenario.server.execute_actions().await; - let diagnostics_by_uri = scenario.client.diagnostics_by_uri.lock().await; - let diagnostics = diagnostics_by_uri.get(&scenario.uri("foo.tex")).unwrap(); - assert_eq!(diagnostics.len(), 1); - assert_eq!(diagnostics[0].message, "Undefined control sequence."); - assert_eq!(diagnostics[0].range.start.line, 3); - }); + let diagnostics_by_uri = scenario.client.diagnostics_by_uri.lock().await; + let diagnostics = diagnostics_by_uri.get(&scenario.uri("foo.tex")).unwrap(); + assert_eq!(diagnostics.len(), 1); + assert_eq!(diagnostics[0].message, "Undefined control sequence."); + assert_eq!(diagnostics[0].range.start.line, 3); } diff --git a/tests/formatting.rs b/tests/formatting.rs index 0c137c909..c3d3db275 100644 --- a/tests/formatting.rs +++ b/tests/formatting.rs @@ -1,6 +1,5 @@ #![feature(async_await)] -use futures::executor::block_on; use lsp_types::*; use std::collections::HashMap; use texlab::formatting::bibtex::BibtexFormattingOptions; @@ -28,35 +27,29 @@ pub async fn run( (scenario, edits) } -#[test] -fn test_bibtex_entry_default() { - block_on(async move { - let (scenario, edits) = run("bibtex/default", "foo.bib", None).await; - assert_eq!(edits.len(), 1); - assert_eq!(edits[0].new_text, scenario.read("bar.bib").await); - assert_eq!(edits[0].range, Range::new_simple(0, 0, 0, 52)); - }); +#[runtime::test] +async fn test_bibtex_entry_default() { + let (scenario, edits) = run("bibtex/default", "foo.bib", None).await; + assert_eq!(edits.len(), 1); + assert_eq!(edits[0].new_text, scenario.read("bar.bib").await); + assert_eq!(edits[0].range, Range::new_simple(0, 0, 0, 52)); } -#[test] -fn test_bibtex_entry_infinite_line_length() { - block_on(async move { - let (scenario, edits) = run( - "bibtex/infinite_line_length", - "foo.bib", - Some(BibtexFormattingOptions { line_length: 0 }), - ) - .await; - assert_eq!(edits.len(), 1); - assert_eq!(edits[0].new_text, scenario.read("bar.bib").await); - assert_eq!(edits[0].range, Range::new_simple(0, 0, 0, 149)); - }); +#[runtime::test] +async fn test_bibtex_entry_infinite_line_length() { + let (scenario, edits) = run( + "bibtex/infinite_line_length", + "foo.bib", + Some(BibtexFormattingOptions { line_length: 0 }), + ) + .await; + assert_eq!(edits.len(), 1); + assert_eq!(edits[0].new_text, scenario.read("bar.bib").await); + assert_eq!(edits[0].range, Range::new_simple(0, 0, 0, 149)); } -#[test] -fn test_latex() { - block_on(async move { - let (_, edits) = run("latex", "foo.tex", None).await; - assert!(edits.is_empty()); - }) +#[runtime::test] +async fn test_latex() { + let (_, edits) = run("latex", "foo.tex", None).await; + assert!(edits.is_empty()); } diff --git a/tests/hover.rs b/tests/hover.rs index 20d3ee305..753956b93 100644 --- a/tests/hover.rs +++ b/tests/hover.rs @@ -1,6 +1,5 @@ #![feature(async_await)] -use futures::executor::block_on; use lsp_types::*; use std::borrow::Cow; use texlab::data::bibtex_entry_type; @@ -25,90 +24,72 @@ pub async fn run( .map(|hover| hover.contents) } -#[test] -fn test_entry_type_known() { - block_on(async move { - let contents = run("bibtex/entry_type", "foo.bib", Position::new(0, 5)) - .await - .unwrap(); - assert_eq!( - contents, - HoverContents::Markup(MarkupContent { - kind: MarkupKind::Markdown, - value: Cow::from(bibtex_entry_type::get_documentation("article").unwrap()) - }) - ); - }); +#[runtime::test] +async fn test_entry_type_known() { + let contents = run("bibtex/entry_type", "foo.bib", Position::new(0, 5)) + .await + .unwrap(); + assert_eq!( + contents, + HoverContents::Markup(MarkupContent { + kind: MarkupKind::Markdown, + value: Cow::from(bibtex_entry_type::get_documentation("article").unwrap()) + }) + ); } -#[test] -fn test_entry_type_unknown() { - block_on(async move { - let contents = run("bibtex/entry_type", "foo.bib", Position::new(2, 2)).await; - assert_eq!(contents, None); - }); +#[runtime::test] +async fn test_entry_type_unknown() { + let contents = run("bibtex/entry_type", "foo.bib", Position::new(2, 2)).await; + assert_eq!(contents, None); } -#[test] -fn test_field_known() { - block_on(async move { - let contents = run("bibtex/field", "foo.bib", Position::new(1, 4)) - .await - .unwrap(); - assert_eq!( - contents, - HoverContents::Markup(MarkupContent { - kind: MarkupKind::Markdown, - value: Cow::from(bibtex_field::get_documentation("author").unwrap()) - }) - ) - }); +#[runtime::test] +async fn test_field_known() { + let contents = run("bibtex/field", "foo.bib", Position::new(1, 4)) + .await + .unwrap(); + assert_eq!( + contents, + HoverContents::Markup(MarkupContent { + kind: MarkupKind::Markdown, + value: Cow::from(bibtex_field::get_documentation("author").unwrap()) + }) + ) } -#[test] -fn test_field_unknown() { - block_on(async move { - let contents = run("bibtex/field", "foo.bib", Position::new(2, 5)).await; - assert_eq!(contents, None); - }); +#[runtime::test] +async fn test_field_unknown() { + let contents = run("bibtex/field", "foo.bib", Position::new(2, 5)).await; + assert_eq!(contents, None); } -#[test] -fn test_citation_latex() { - block_on(async move { - let contents = run("latex/citation", "foo.tex", Position::new(2, 7)).await; - assert_ne!(contents, None); - }); +#[runtime::test] +async fn test_citation_latex() { + let contents = run("latex/citation", "foo.tex", Position::new(2, 7)).await; + assert_ne!(contents, None); } -#[test] -fn test_citation_bibtex() { - block_on(async move { - let contents = run("latex/citation", "foo.bib", Position::new(0, 11)).await; - assert_ne!(contents, None); - }); +#[runtime::test] +async fn test_citation_bibtex() { + let contents = run("latex/citation", "foo.bib", Position::new(0, 11)).await; + assert_ne!(contents, None); } -#[test] -fn test_component_class() { - block_on(async move { - let contents = run("latex/component", "foo.tex", Position::new(0, 19)).await; - assert!(contents.is_some()); - }); +#[runtime::test] +async fn test_component_class() { + let contents = run("latex/component", "foo.tex", Position::new(0, 19)).await; + assert!(contents.is_some()); } -#[test] -fn test_component_package() { - block_on(async move { - let contents = run("latex/component", "foo.tex", Position::new(2, 16)).await; - assert!(contents.is_some()); - }); +#[runtime::test] +async fn test_component_package() { + let contents = run("latex/component", "foo.tex", Position::new(2, 16)).await; + assert!(contents.is_some()); } -#[test] -fn test_component_package_unknown() { - block_on(async move { - let contents = run("latex/component", "foo.tex", Position::new(3, 14)).await; - assert_eq!(contents, None); - }); +#[runtime::test] +async fn test_component_package_unknown() { + let contents = run("latex/component", "foo.tex", Position::new(3, 14)).await; + assert_eq!(contents, None); } diff --git a/tests/synchronization.rs b/tests/synchronization.rs index 2f5d9b27e..d5a45d152 100644 --- a/tests/synchronization.rs +++ b/tests/synchronization.rs @@ -19,56 +19,52 @@ async fn run_completion( scenario.server.completion(params).await.unwrap().items } -#[test] -fn test_did_change() { - block_on(async move { - let scenario = Scenario::new("synchronization/did_change").await; - scenario.open("foo.tex").await; - assert_eq!( - run_completion(&scenario, "foo.tex", Position::new(0, 1)) - .await - .len() - > 0, - false - ); - - let params = DidChangeTextDocumentParams { - text_document: VersionedTextDocumentIdentifier::new(scenario.uri("foo.tex"), 0), - content_changes: vec![TextDocumentContentChangeEvent { - range: None, - range_length: None, - text: "\\".to_owned(), - }], - }; - scenario.server.did_change(params); - scenario.server.execute_actions().await; - assert!(!run_completion(&scenario, "foo.tex", Position::new(0, 1)) +#[runtime::test] +async fn test_did_change() { + let scenario = Scenario::new("synchronization/did_change").await; + scenario.open("foo.tex").await; + assert_eq!( + run_completion(&scenario, "foo.tex", Position::new(0, 1)) .await - .is_empty()); - }); + .len() + > 0, + false + ); + + let params = DidChangeTextDocumentParams { + text_document: VersionedTextDocumentIdentifier::new(scenario.uri("foo.tex"), 0), + content_changes: vec![TextDocumentContentChangeEvent { + range: None, + range_length: None, + text: "\\".to_owned(), + }], + }; + scenario.server.did_change(params); + scenario.server.execute_actions().await; + assert!(!run_completion(&scenario, "foo.tex", Position::new(0, 1)) + .await + .is_empty()); } -#[test] -fn test_indexing() { - block_on(async move { - let scenario = Scenario::new("synchronization/did_change").await; - scenario.open("foo.tex").await; +#[runtime::test] +async fn test_indexing() { + let scenario = Scenario::new("synchronization/did_change").await; + scenario.open("foo.tex").await; - let mut path = scenario.directory.path().to_owned(); - path.push("bar.tex"); - std::fs::write(&path, "\\foo").unwrap(); + let mut path = scenario.directory.path().to_owned(); + path.push("bar.tex"); + std::fs::write(&path, "\\foo").unwrap(); - let params = DidChangeTextDocumentParams { - text_document: VersionedTextDocumentIdentifier::new(scenario.uri("foo.tex"), 0), - content_changes: vec![TextDocumentContentChangeEvent { - range: None, - range_length: None, - text: "\\fo\n\\include{bar}".to_owned(), - }], - }; - scenario.server.did_change(params); - scenario.server.execute_actions().await; - let items = run_completion(&scenario, "foo.tex", Position::new(0, 1)).await; - assert!(items.iter().any(|item| item.label == "foo")); - }); + let params = DidChangeTextDocumentParams { + text_document: VersionedTextDocumentIdentifier::new(scenario.uri("foo.tex"), 0), + content_changes: vec![TextDocumentContentChangeEvent { + range: None, + range_length: None, + text: "\\fo\n\\include{bar}".to_owned(), + }], + }; + scenario.server.did_change(params); + scenario.server.execute_actions().await; + let items = run_completion(&scenario, "foo.tex", Position::new(0, 1)).await; + assert!(items.iter().any(|item| item.label == "foo")); }