From 02f7264008e0333d7c4df183d3bcfbda8a6d930f Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Fri, 1 Nov 2019 13:09:32 +0900 Subject: chore: check each feature works properly (#1695) It is hard to maintain features list manually, so use cargo-hack's `--each-feature` flag. And cargo-hack provides a workaround for an issue that dev-dependencies leaking into normal build (`--no-dev-deps` flag), so removed own ci tool. Also, compared to running tests on all features, there is not much advantage in running tests on each feature, so only the default features and all features are tested. If the behavior changes depending on the feature, we need to test it as another job in CI. --- tests-build/Cargo.toml | 25 --------- tests-build/README.md | 2 - tests-build/src/lib.rs | 8 --- .../tests/fail/executor_without_current_thread.rs | 3 -- .../fail/executor_without_current_thread.stderr | 7 --- tests-build/tests/fail/macros_invalid_input.rs | 25 --------- tests-build/tests/fail/macros_invalid_input.stderr | 41 -------------- .../tests/fail/net_without_tcp_missing_tcp.rs | 4 -- .../tests/fail/net_without_tcp_missing_tcp.stderr | 7 --- .../tests/fail/net_without_udp_missing_udp.rs | 4 -- .../tests/fail/net_without_udp_missing_udp.stderr | 7 --- .../tests/fail/net_without_uds_missing_uds.rs | 4 -- .../tests/fail/net_without_uds_missing_uds.stderr | 7 --- .../tests/fail/tokio_without_net_missing_net.rs | 3 -- .../fail/tokio_without_net_missing_net.stderr | 7 --- tests-build/tests/features.rs | 62 ---------------------- 16 files changed, 216 deletions(-) delete mode 100644 tests-build/Cargo.toml delete mode 100644 tests-build/README.md delete mode 100644 tests-build/src/lib.rs delete mode 100644 tests-build/tests/fail/executor_without_current_thread.rs delete mode 100644 tests-build/tests/fail/executor_without_current_thread.stderr delete mode 100644 tests-build/tests/fail/macros_invalid_input.rs delete mode 100644 tests-build/tests/fail/macros_invalid_input.stderr delete mode 100644 tests-build/tests/fail/net_without_tcp_missing_tcp.rs delete mode 100644 tests-build/tests/fail/net_without_tcp_missing_tcp.stderr delete mode 100644 tests-build/tests/fail/net_without_udp_missing_udp.rs delete mode 100644 tests-build/tests/fail/net_without_udp_missing_udp.stderr delete mode 100644 tests-build/tests/fail/net_without_uds_missing_uds.rs delete mode 100644 tests-build/tests/fail/net_without_uds_missing_uds.stderr delete mode 100644 tests-build/tests/fail/tokio_without_net_missing_net.rs delete mode 100644 tests-build/tests/fail/tokio_without_net_missing_net.stderr delete mode 100644 tests-build/tests/features.rs (limited to 'tests-build') diff --git a/tests-build/Cargo.toml b/tests-build/Cargo.toml deleted file mode 100644 index 36dbc883..00000000 --- a/tests-build/Cargo.toml +++ /dev/null @@ -1,25 +0,0 @@ -[package] -name = "tests-build" -version = "0.1.0" -authors = ["Tokio Contributors "] -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 = { path = "../tokio", optional = true, default-features = false } - -[dev-dependencies] -trybuild = "1.0" diff --git a/tests-build/README.md b/tests-build/README.md deleted file mode 100644 index f491e2bc..00000000 --- a/tests-build/README.md +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index 7f38a440..00000000 --- a/tests-build/src/lib.rs +++ /dev/null @@ -1,8 +0,0 @@ -#[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 deleted file mode 100644 index 205ce7e4..00000000 --- a/tests-build/tests/fail/executor_without_current_thread.rs +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100644 index f2287c3f..00000000 --- a/tests-build/tests/fail/executor_without_current_thread.stderr +++ /dev/null @@ -1,7 +0,0 @@ -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 deleted file mode 100644 index 5b1a8adc..00000000 --- a/tests-build/tests/fail/macros_invalid_input.rs +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 12373486..00000000 --- a/tests-build/tests/fail/macros_invalid_input.stderr +++ /dev/null @@ -1,41 +0,0 @@ -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 deleted file mode 100644 index 80010233..00000000 --- a/tests-build/tests/fail/net_without_tcp_missing_tcp.rs +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index 83ff59fb..00000000 --- a/tests-build/tests/fail/net_without_tcp_missing_tcp.stderr +++ /dev/null @@ -1,7 +0,0 @@ -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 deleted file mode 100644 index 6731af93..00000000 --- a/tests-build/tests/fail/net_without_udp_missing_udp.rs +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index e3471a79..00000000 --- a/tests-build/tests/fail/net_without_udp_missing_udp.stderr +++ /dev/null @@ -1,7 +0,0 @@ -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 deleted file mode 100644 index d48a5eb4..00000000 --- a/tests-build/tests/fail/net_without_uds_missing_uds.rs +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index ad79fe18..00000000 --- a/tests-build/tests/fail/net_without_uds_missing_uds.stderr +++ /dev/null @@ -1,7 +0,0 @@ -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 deleted file mode 100644 index f2e27836..00000000 --- a/tests-build/tests/fail/tokio_without_net_missing_net.rs +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100644 index 4435b0a6..00000000 --- a/tests-build/tests/fail/tokio_without_net_missing_net.stderr +++ /dev/null @@ -1,7 +0,0 @@ -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 deleted file mode 100644 index b40e44ed..00000000 --- a/tests-build/tests/features.rs +++ /dev/null @@ -1,62 +0,0 @@ -#![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); -} -- cgit v1.2.3