Skip to content

Commit

Permalink
Revert "chore: disable warnings in old CI (#4691)"
Browse files Browse the repository at this point in the history
This reverts commit b24df49 so we can
merge the CHANGELOG changes in #4691 into master.
  • Loading branch information
Darksonn committed May 14, 2022
1 parent 2659adf commit cdb132d
Show file tree
Hide file tree
Showing 22 changed files with 323 additions and 37 deletions.
25 changes: 0 additions & 25 deletions .circleci/config.yml

This file was deleted.

4 changes: 3 additions & 1 deletion .cirrus.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
freebsd_instance:
image: freebsd-12-2-release-amd64
env:
RUSTFLAGS: -D warnings

# Test FreeBSD in a full VM on cirrus-ci.com. Test the i686 target too, in the
# same VM. The binary will be built in 32-bit mode, but will execute on a
Expand All @@ -23,7 +25,7 @@ task:
name: FreeBSD docs
env:
RUSTFLAGS: --cfg docsrs
RUSTDOCFLAGS: --cfg docsrs
RUSTDOCFLAGS: --cfg docsrs -Dwarnings
setup_script:
- pkg install -y bash curl
- curl https://sh.rustup.rs -sSf --output rustup.sh
Expand Down
14 changes: 10 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
name: CI

env:
RUSTFLAGS: -Dwarnings
RUST_BACKTRACE: 1
nightly: nightly-2021-10-25
minrust: 1.45.2
Expand Down Expand Up @@ -64,6 +65,11 @@ jobs:
run: cargo hack test --each-feature
working-directory: tests-integration

# Run macro build tests
- name: test tests-build --each-feature
run: cargo hack test --each-feature
working-directory: tests-build

# Build benchmarks. Run of benchmarks is done by bench.yml workflow.
- name: build benches
run: cargo build --benches
Expand Down Expand Up @@ -123,7 +129,7 @@ jobs:
run: cargo test --all-features
working-directory: tokio
env:
RUSTFLAGS: --cfg tokio_unstable
RUSTFLAGS: --cfg tokio_unstable -Dwarnings

miri:
name: miri
Expand Down Expand Up @@ -207,7 +213,7 @@ jobs:
- name: check --each-feature --unstable
run: cargo hack check --all --each-feature -Z avoid-dev-deps
env:
RUSTFLAGS: --cfg tokio_unstable
RUSTFLAGS: --cfg tokio_unstable -Dwarnings

minrust:
name: minrust
Expand Down Expand Up @@ -292,7 +298,7 @@ jobs:
run: cargo doc --lib --no-deps --all-features --document-private-items
env:
RUSTFLAGS: --cfg docsrs
RUSTDOCFLAGS: --cfg docsrs
RUSTDOCFLAGS: --cfg docsrs -Dwarnings

loom-compile:
name: build loom tests
Expand All @@ -306,7 +312,7 @@ jobs:
run: cargo test --no-run --lib --features full
working-directory: tokio
env:
RUSTFLAGS: --cfg loom --cfg tokio_unstable
RUSTFLAGS: --cfg loom --cfg tokio_unstable -Dwarnings

check-readme:
name: Check README
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/loom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
name: Loom

env:
RUSTFLAGS: -Dwarnings
RUST_BACKTRACE: 1

jobs:
Expand All @@ -34,6 +35,6 @@ jobs:
run: cargo test --lib --release --features full -- --nocapture $SCOPE
working-directory: tokio
env:
RUSTFLAGS: --cfg loom --cfg tokio_unstable
RUSTFLAGS: --cfg loom --cfg tokio_unstable -Dwarnings
LOOM_MAX_PREEMPTIONS: 2
SCOPE: ${{ matrix.scope }}
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ members = [
"benches",
"examples",
"stress-test",
"tests-build",
"tests-integration",
]
16 changes: 16 additions & 0 deletions tests-build/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[package]
name = "tests-build"
version = "0.1.0"
authors = ["Tokio Contributors <team@tokio.rs>"]
edition = "2018"
publish = false

[features]
full = ["tokio/full"]
rt = ["tokio/rt", "tokio/macros"]

[dependencies]
tokio = { path = "../tokio", optional = true }

[dev-dependencies]
trybuild = "1.0"
2 changes: 2 additions & 0 deletions tests-build/README.md
Original file line number Diff line number Diff line change
@@ -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.
2 changes: 2 additions & 0 deletions tests-build/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#[cfg(feature = "tokio")]
pub use tokio;
6 changes: 6 additions & 0 deletions tests-build/tests/fail/macros_core_no_default.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
use tests_build::tokio;

#[tokio::main]
async fn my_fn() {}

fn main() {}
7 changes: 7 additions & 0 deletions tests-build/tests/fail/macros_core_no_default.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
error: The default runtime flavor is `multi_thread`, but the `rt-multi-thread` feature is disabled.
--> $DIR/macros_core_no_default.rs:3:1
|
3 | #[tokio::main]
| ^^^^^^^^^^^^^^
|
= note: this error originates in the attribute macro `tokio::main` (in Nightly builds, run with -Z macro-backtrace for more info)
8 changes: 8 additions & 0 deletions tests-build/tests/fail/macros_dead_code.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#![deny(dead_code)]

use tests_build::tokio;

#[tokio::main]
async fn f() {}

fn main() {}
11 changes: 11 additions & 0 deletions tests-build/tests/fail/macros_dead_code.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
error: function is never used: `f`
--> $DIR/macros_dead_code.rs:6:10
|
6 | async fn f() {}
| ^
|
note: the lint level is defined here
--> $DIR/macros_dead_code.rs:1:9
|
1 | #![deny(dead_code)]
| ^^^^^^^^^
40 changes: 40 additions & 0 deletions tests-build/tests/fail/macros_invalid_input.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
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(foo)]
async fn test_attr_has_args() {}

#[tokio::test(foo = 123)]
async fn test_unexpected_attr() {}

#[tokio::test(flavor = 123)]
async fn test_flavor_not_string() {}

#[tokio::test(flavor = "foo")]
async fn test_unknown_flavor() {}

#[tokio::test(flavor = "multi_thread", start_paused = false)]
async fn test_multi_thread_with_start_paused() {}

#[tokio::test(flavor = "multi_thread", worker_threads = "foo")]
async fn test_worker_threads_not_int() {}

#[tokio::test(flavor = "current_thread", worker_threads = 4)]
async fn test_worker_threads_and_current_thread() {}

#[tokio::test]
#[test]
async fn test_has_second_test_attr() {}

fn main() {}
71 changes: 71 additions & 0 deletions tests-build/tests/fail/macros_invalid_input.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
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 one of: `flavor`, `worker_threads`, `start_paused`
--> $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: Unknown attribute foo is specified; expected one of: `flavor`, `worker_threads`, `start_paused`
--> $DIR/macros_invalid_input.rs:15:15
|
15 | #[tokio::test(foo)]
| ^^^

error: Unknown attribute foo is specified; expected one of: `flavor`, `worker_threads`, `start_paused`
--> $DIR/macros_invalid_input.rs:18:15
|
18 | #[tokio::test(foo = 123)]
| ^^^^^^^^^

error: Failed to parse value of `flavor` as string.
--> $DIR/macros_invalid_input.rs:21:24
|
21 | #[tokio::test(flavor = 123)]
| ^^^

error: No such runtime flavor `foo`. The runtime flavors are `current_thread` and `multi_thread`.
--> $DIR/macros_invalid_input.rs:24:24
|
24 | #[tokio::test(flavor = "foo")]
| ^^^^^

error: The `start_paused` option requires the `current_thread` runtime flavor. Use `#[tokio::test(flavor = "current_thread")]`
--> $DIR/macros_invalid_input.rs:27:55
|
27 | #[tokio::test(flavor = "multi_thread", start_paused = false)]
| ^^^^^

error: Failed to parse value of `worker_threads` as integer.
--> $DIR/macros_invalid_input.rs:30:57
|
30 | #[tokio::test(flavor = "multi_thread", worker_threads = "foo")]
| ^^^^^

error: The `worker_threads` option requires the `multi_thread` runtime flavor. Use `#[tokio::test(flavor = "multi_thread")]`
--> $DIR/macros_invalid_input.rs:33:59
|
33 | #[tokio::test(flavor = "current_thread", worker_threads = 4)]
| ^

error: second test attribute is supplied
--> $DIR/macros_invalid_input.rs:37:1
|
37 | #[test]
| ^^^^^^^
26 changes: 26 additions & 0 deletions tests-build/tests/fail/macros_type_mismatch.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
use tests_build::tokio;

#[tokio::main]
async fn missing_semicolon_or_return_type() {
Ok(())
}

#[tokio::main]
async fn missing_return_type() {
return Ok(());
}

#[tokio::main]
async fn extra_semicolon() -> Result<(), ()> {
/* TODO(taiki-e): help message still wrong
help: try using a variant of the expected enum
|
23 | Ok(Ok(());)
|
23 | Err(Ok(());)
|
*/
Ok(());
}

fn main() {}
45 changes: 45 additions & 0 deletions tests-build/tests/fail/macros_type_mismatch.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
error[E0308]: mismatched types
--> $DIR/macros_type_mismatch.rs:5:5
|
5 | Ok(())
| ^^^^^^ expected `()`, found enum `Result`
|
= note: expected unit type `()`
found enum `Result<(), _>`
help: consider using a semicolon here
|
5 | Ok(());
| +
help: try adding a return type
|
4 | async fn missing_semicolon_or_return_type() -> Result<(), _> {
| ++++++++++++++++

error[E0308]: mismatched types
--> $DIR/macros_type_mismatch.rs:10:5
|
9 | async fn missing_return_type() {
| - help: try adding a return type: `-> Result<(), _>`
10 | return Ok(());
| ^^^^^^^^^^^^^^ expected `()`, found enum `Result`
|
= note: expected unit type `()`
found enum `Result<(), _>`

error[E0308]: mismatched types
--> $DIR/macros_type_mismatch.rs:23:5
|
14 | async fn extra_semicolon() -> Result<(), ()> {
| -------------- expected `Result<(), ()>` because of return type
...
23 | Ok(());
| ^^^^^^^ expected enum `Result`, found `()`
|
= note: expected enum `Result<(), ()>`
found unit type `()`
help: try using a variant of the expected enum
|
23 | Ok(Ok(());)
|
23 | Err(Ok(());)
|
27 changes: 27 additions & 0 deletions tests-build/tests/macros.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#[test]
fn compile_fail_full() {
let t = trybuild::TestCases::new();

#[cfg(feature = "full")]
t.pass("tests/pass/forward_args_and_output.rs");

#[cfg(feature = "full")]
t.pass("tests/pass/macros_main_return.rs");

#[cfg(feature = "full")]
t.pass("tests/pass/macros_main_loop.rs");

#[cfg(feature = "full")]
t.compile_fail("tests/fail/macros_invalid_input.rs");

#[cfg(feature = "full")]
t.compile_fail("tests/fail/macros_dead_code.rs");

#[cfg(feature = "full")]
t.compile_fail("tests/fail/macros_type_mismatch.rs");

#[cfg(all(feature = "rt", not(feature = "full")))]
t.compile_fail("tests/fail/macros_core_no_default.rs");

drop(t);
}

0 comments on commit cdb132d

Please sign in to comment.