diff options
author | Carl Lerche <me@carllerche.com> | 2019-10-25 12:50:15 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-25 12:50:15 -0700 |
commit | 227533d456fe32e48ffcd3796f1e6c8f9318b230 (patch) | |
tree | 498029aaf42dd64eeb8ef0e7d7f29802b45d4e95 /tests-build | |
parent | 03a9378297c73c2e56a6d6b55db22b92427b850a (diff) |
net: move into tokio crate (#1683)
A step towards collapsing Tokio sub crates into a single `tokio`
crate (#1318).
The `net` implementation is now provided by the main `tokio` crate.
Functionality can be opted out of by using the various net related
feature flags.
Diffstat (limited to 'tests-build')
-rw-r--r-- | tests-build/Cargo.toml | 26 | ||||
-rw-r--r-- | tests-build/README.md | 2 | ||||
-rw-r--r-- | tests-build/src/lib.rs | 8 | ||||
-rw-r--r-- | tests-build/tests/fail/executor_without_current_thread.rs | 3 | ||||
-rw-r--r-- | tests-build/tests/fail/executor_without_current_thread.stderr | 7 | ||||
-rw-r--r-- | tests-build/tests/fail/macros_invalid_input.rs | 25 | ||||
-rw-r--r-- | tests-build/tests/fail/macros_invalid_input.stderr | 41 | ||||
-rw-r--r-- | tests-build/tests/fail/net_without_tcp_missing_tcp.rs | 4 | ||||
-rw-r--r-- | tests-build/tests/fail/net_without_tcp_missing_tcp.stderr | 7 | ||||
-rw-r--r-- | tests-build/tests/fail/net_without_udp_missing_udp.rs | 4 | ||||
-rw-r--r-- | tests-build/tests/fail/net_without_udp_missing_udp.stderr | 7 | ||||
-rw-r--r-- | tests-build/tests/fail/net_without_uds_missing_uds.rs | 4 | ||||
-rw-r--r-- | tests-build/tests/fail/net_without_uds_missing_uds.stderr | 7 | ||||
-rw-r--r-- | tests-build/tests/fail/tokio_without_net_missing_net.rs | 3 | ||||
-rw-r--r-- | tests-build/tests/fail/tokio_without_net_missing_net.stderr | 7 | ||||
-rw-r--r-- | tests-build/tests/features.rs | 62 |
16 files changed, 217 insertions, 0 deletions
diff --git a/tests-build/Cargo.toml b/tests-build/Cargo.toml new file mode 100644 index 00000000..fb837d03 --- /dev/null +++ b/tests-build/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "tests-build" +version = "0.1.0" +authors = ["Tokio Contributors <team@tokio.rs>"] +edition = "2018" +publish = false + +[features] +executor-without-current-thread = ["tokio-executor"] +# macros-invalid-input = ["tokio/rt-full"] +# net-no-features = ["tokio-net"] +# net-with-tcp = ["tokio-net/tcp"] +# net-with-udp = ["tokio-net/udp"] +# net-with-uds = ["tokio-net/uds"] +# net-with-process = ["tokio-net/process"] +# tokio-no-features = ["tokio"] +# tokio-with-net = ["tokio/net-full"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +tokio-executor = { path = "../tokio-executor", optional = true } +# tokio = { path = "../tokio", optional = true, default-features = false } + +[dev-dependencies] +trybuild = "1.0" diff --git a/tests-build/README.md b/tests-build/README.md new file mode 100644 index 00000000..f491e2bc --- /dev/null +++ b/tests-build/README.md @@ -0,0 +1,2 @@ +Tests the various combination of feature flags. This is broken out to a separate +crate to work around limitations with cargo features. diff --git a/tests-build/src/lib.rs b/tests-build/src/lib.rs new file mode 100644 index 00000000..7f38a440 --- /dev/null +++ b/tests-build/src/lib.rs @@ -0,0 +1,8 @@ +#[cfg(feature = "tokio-executor")] +pub use tokio_executor; + +#[cfg(feature = "tokio-net")] +pub use tokio_net; + +#[cfg(feature = "tokio")] +pub use tokio; diff --git a/tests-build/tests/fail/executor_without_current_thread.rs b/tests-build/tests/fail/executor_without_current_thread.rs new file mode 100644 index 00000000..205ce7e4 --- /dev/null +++ b/tests-build/tests/fail/executor_without_current_thread.rs @@ -0,0 +1,3 @@ +use tests_build::tokio_executor::current_thread; + +fn main() {} diff --git a/tests-build/tests/fail/executor_without_current_thread.stderr b/tests-build/tests/fail/executor_without_current_thread.stderr new file mode 100644 index 00000000..f2287c3f --- /dev/null +++ b/tests-build/tests/fail/executor_without_current_thread.stderr @@ -0,0 +1,7 @@ +error[E0432]: unresolved import `tests_build::tokio_executor::current_thread` + --> $DIR/executor_without_current_thread.rs:1:5 + | +1 | use tests_build::tokio_executor::current_thread; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `current_thread` in `tokio_executor` + +For more information about this error, try `rustc --explain E0432`. diff --git a/tests-build/tests/fail/macros_invalid_input.rs b/tests-build/tests/fail/macros_invalid_input.rs new file mode 100644 index 00000000..5b1a8adc --- /dev/null +++ b/tests-build/tests/fail/macros_invalid_input.rs @@ -0,0 +1,25 @@ +use tests_build::tokio; + +#[tokio::main] +fn main_is_not_async() {} + +#[tokio::main(foo)] +async fn main_attr_has_unknown_args() {} + +#[tokio::main(threadpool::bar)] +async fn main_attr_has_path_args() {} + +#[tokio::test] +fn test_is_not_async() {} + +#[tokio::test] +async fn test_fn_has_args(_x: u8) {} + +#[tokio::test(foo)] +async fn test_attr_has_args() {} + +#[tokio::test] +#[test] +async fn test_has_second_test_attr() {} + +fn main() {} diff --git a/tests-build/tests/fail/macros_invalid_input.stderr b/tests-build/tests/fail/macros_invalid_input.stderr new file mode 100644 index 00000000..12373486 --- /dev/null +++ b/tests-build/tests/fail/macros_invalid_input.stderr @@ -0,0 +1,41 @@ +error: the async keyword is missing from the function declaration + --> $DIR/macros_invalid_input.rs:4:1 + | +4 | fn main_is_not_async() {} + | ^^ + +error: Unknown attribute foo is specified; expected `current_thread` or `threadpool` + --> $DIR/macros_invalid_input.rs:6:15 + | +6 | #[tokio::main(foo)] + | ^^^ + +error: Must have specified ident + --> $DIR/macros_invalid_input.rs:9:15 + | +9 | #[tokio::main(threadpool::bar)] + | ^^^^^^^^^^^^^^^ + +error: the async keyword is missing from the function declaration + --> $DIR/macros_invalid_input.rs:13:1 + | +13 | fn test_is_not_async() {} + | ^^ + +error: the test function cannot accept arguments + --> $DIR/macros_invalid_input.rs:16:27 + | +16 | async fn test_fn_has_args(_x: u8) {} + | ^^^^^^ + +error: Unknown attribute foo is specified; expected `current_thread` or `threadpool` + --> $DIR/macros_invalid_input.rs:18:15 + | +18 | #[tokio::test(foo)] + | ^^^ + +error: second test attribute is supplied + --> $DIR/macros_invalid_input.rs:22:1 + | +22 | #[test] + | ^^^^^^^ diff --git a/tests-build/tests/fail/net_without_tcp_missing_tcp.rs b/tests-build/tests/fail/net_without_tcp_missing_tcp.rs new file mode 100644 index 00000000..80010233 --- /dev/null +++ b/tests-build/tests/fail/net_without_tcp_missing_tcp.rs @@ -0,0 +1,4 @@ +use tests_build::tokio_net::tcp; + +fn main() {} + diff --git a/tests-build/tests/fail/net_without_tcp_missing_tcp.stderr b/tests-build/tests/fail/net_without_tcp_missing_tcp.stderr new file mode 100644 index 00000000..83ff59fb --- /dev/null +++ b/tests-build/tests/fail/net_without_tcp_missing_tcp.stderr @@ -0,0 +1,7 @@ +error[E0432]: unresolved import `tests_build::tokio_net::tcp` + --> $DIR/net_without_tcp_missing_tcp.rs:1:5 + | +1 | use tests_build::tokio_net::tcp; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `tcp` in `tokio_net` + +For more information about this error, try `rustc --explain E0432`. diff --git a/tests-build/tests/fail/net_without_udp_missing_udp.rs b/tests-build/tests/fail/net_without_udp_missing_udp.rs new file mode 100644 index 00000000..6731af93 --- /dev/null +++ b/tests-build/tests/fail/net_without_udp_missing_udp.rs @@ -0,0 +1,4 @@ +use tests_build::tokio_net::udp; + +fn main() {} + diff --git a/tests-build/tests/fail/net_without_udp_missing_udp.stderr b/tests-build/tests/fail/net_without_udp_missing_udp.stderr new file mode 100644 index 00000000..e3471a79 --- /dev/null +++ b/tests-build/tests/fail/net_without_udp_missing_udp.stderr @@ -0,0 +1,7 @@ +error[E0432]: unresolved import `tests_build::tokio_net::udp` + --> $DIR/net_without_udp_missing_udp.rs:1:5 + | +1 | use tests_build::tokio_net::udp; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `udp` in `tokio_net` + +For more information about this error, try `rustc --explain E0432`. diff --git a/tests-build/tests/fail/net_without_uds_missing_uds.rs b/tests-build/tests/fail/net_without_uds_missing_uds.rs new file mode 100644 index 00000000..d48a5eb4 --- /dev/null +++ b/tests-build/tests/fail/net_without_uds_missing_uds.rs @@ -0,0 +1,4 @@ +use tests_build::tokio_net::uds; + +fn main() {} + diff --git a/tests-build/tests/fail/net_without_uds_missing_uds.stderr b/tests-build/tests/fail/net_without_uds_missing_uds.stderr new file mode 100644 index 00000000..ad79fe18 --- /dev/null +++ b/tests-build/tests/fail/net_without_uds_missing_uds.stderr @@ -0,0 +1,7 @@ +error[E0432]: unresolved import `tests_build::tokio_net::uds` + --> $DIR/net_without_uds_missing_uds.rs:1:5 + | +1 | use tests_build::tokio_net::uds; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `uds` in `tokio_net` + +For more information about this error, try `rustc --explain E0432`. diff --git a/tests-build/tests/fail/tokio_without_net_missing_net.rs b/tests-build/tests/fail/tokio_without_net_missing_net.rs new file mode 100644 index 00000000..f2e27836 --- /dev/null +++ b/tests-build/tests/fail/tokio_without_net_missing_net.rs @@ -0,0 +1,3 @@ +use tests_build::tokio::net; + +fn main() {} diff --git a/tests-build/tests/fail/tokio_without_net_missing_net.stderr b/tests-build/tests/fail/tokio_without_net_missing_net.stderr new file mode 100644 index 00000000..4435b0a6 --- /dev/null +++ b/tests-build/tests/fail/tokio_without_net_missing_net.stderr @@ -0,0 +1,7 @@ +error[E0432]: unresolved import `tests_build::tokio::net` + --> $DIR/tokio_without_net_missing_net.rs:1:5 + | +1 | use tests_build::tokio::net; + | ^^^^^^^^^^^^^^^^^^^^^^^ no `net` in `tokio` + +For more information about this error, try `rustc --explain E0432`. diff --git a/tests-build/tests/features.rs b/tests-build/tests/features.rs new file mode 100644 index 00000000..b40e44ed --- /dev/null +++ b/tests-build/tests/features.rs @@ -0,0 +1,62 @@ +#![allow(unused_imports)] + +#[test] +#[cfg(feature = "tokio-net")] +fn net_default() { + use tests_build::tokio_net::driver::{set_default, Handle, Reactor, Registration}; + use tests_build::tokio_net::util::PollEvented; +} + +#[test] +#[cfg(feature = "net-with-tcp")] +fn net_with_tcp() { + use tests_build::tokio_net::tcp; +} + +#[test] +#[cfg(feature = "net-with-udp")] +fn net_with_udp() { + use tests_build::tokio_net::udp; +} + +#[test] +#[cfg(feature = "net-with-uds")] +fn net_with_uds() { + use tests_build::tokio_net::uds; +} + +#[test] +#[cfg(feature = "net-with-process")] +fn net_with_process() { + use tests_build::tokio_net::process; +} + +#[test] +#[cfg(feature = "tokio-with-net")] +fn tokio_with_net() { + // net is present + use tests_build::tokio::net; +} + +#[test] +fn compile_fail() { + let t = trybuild::TestCases::new(); + + #[cfg(feature = "executor-without-current-thread")] + t.compile_fail("tests/fail/executor_without_current_thread.rs"); + + #[cfg(feature = "macros-invalid-input")] + t.compile_fail("tests/fail/macros_invalid_input.rs"); + + #[cfg(feature = "net-no-features")] + { + t.compile_fail("tests/fail/net_without_tcp_missing_tcp.rs"); + t.compile_fail("tests/fail/net_without_udp_missing_udp.rs"); + t.compile_fail("tests/fail/net_without_uds_missing_uds.rs"); + } + + #[cfg(feature = "tokio-no-features")] + t.compile_fail("tests/fail/tokio_without_net_missing_net.rs"); + + drop(t); +} |