35 Commits

Author SHA1 Message Date
Martin Grigorov
0fc23971d9
macros: add missing local flavor to tokio::main error message (#7597) 2025-09-09 21:26:16 +08:00
Alice Ryhl
a48e418dcb
ci: update macros_type_mismatch for Rust 1.87.0 (#7339) 2025-05-17 18:24:36 +09:00
Taiki Endo
7f09959b0a
chore: use [lints] to address unexpected_cfgs lint (#7124) 2025-01-25 17:46:21 +01:00
Josh McKinney
c081dfe3ce
macros: characterization tests for ? operator fail (#7069)
When a `?` operator is used in a tokio entry point function (wrapped in
`#[tokio::main]`), which has a Option or Result return type, but where
the function does not actually return that type correctly, currently the
compiler returns two errors instead of just one. The first of which is
incorrect and only exists due to the macro expanding to an async block.

```
cannot use the `?` operator in an async block that returns `()`
```

This commit is a characterization test for this behavior to help show
when it's fixed (or even changed for better / worse)
2025-01-22 10:55:00 +01:00
leopardracer
af9c683d52
tests: fix typo in build test instructions (#7004) 2024-12-03 13:11:36 +00:00
Alice Ryhl
ebe241647e
ci: use cargo deny (#6931) 2024-10-23 18:48:07 +02:00
tiif
161b8c80d5
ci: test more things with miri (#6885) 2024-10-11 09:44:50 +02:00
Hai-Hsin
833ee027d0
macros: allow unhandled_panic behavior for #[tokio::main] and #[tokio::test] (#6593) 2024-06-07 20:48:56 +09:00
Kezhu Wang
6fcd9c0217
macros: make #[tokio::test] append #[test] at the end of the attribute list (#6497) 2024-05-05 16:28:59 +00:00
kim / Motoyuki Kimura
5f7fe8fd0d
ci: fix new warnings on 1.75.0 (#6255) 2023-12-29 17:22:54 +01:00
Taiki Endo
af6c87a045
chore: upgrade remaining 2018 edition crates to 2021 edition (#5788) 2023-06-12 02:21:50 +09:00
Alice Ryhl
5e6c6bdafd
chore: fix compiler output changes in rustc 1.69 (#5643) 2023-04-21 07:10:55 +00:00
daxpedda
17cc283f58
macros: accept path as crate rename (#5557) 2023-03-19 12:28:43 +01:00
Alice Ryhl
50b8ee99b7
ci: fix new error output from rustc 1.63.0 (#4905) 2022-08-12 08:57:30 +00:00
Alice Ryhl
a2112b47d3
chore: update macro output tests for rust 1.61.0 (#4706) 2022-05-19 15:55:11 +00:00
Taiki Endo
fa665b91a8
macros: always emit return statement (#4636)
Fixes #4635
2022-04-28 07:53:40 +09:00
Kezhu Wang
d590a369d5
macros: custom crate name for #[tokio::main] and #[tokio::test] (#4613)
This also enables `#[crate::test(crate = "crate")]` in unit tests.

See: rust-lang/cargo#5653
Fixes: #2312
2022-04-18 11:24:27 +02:00
Eliza Weisman
dfac73d580
macros: update trybuild output for Rust 1.59.0 (#4536)
## Motivation

Rust error messages seem to have changed a bit in 1.59.0

## Solution

Update the `trybuild` stderr output.

This should unbreak the tests on the latest Rust (and fix CI).
2022-02-24 11:52:47 -08:00
Carl Lerche
16a8404967
chore: fix ci to track Rust 1.58 (#4401) 2022-01-13 20:49:13 +01:00
Alice Ryhl
83aeae8610
chore: fix output of macro after new rustc release (#4189) 2021-10-22 09:36:12 +02:00
Taiki Endo
095012b03b
macros: fix type resolution error in #[tokio::main] (#4176) 2021-10-19 12:49:57 +09:00
Alice Ryhl
d39c9ed9dc
chore: prepare tokio-macros 1.4.1 (#4142)
This reverts commit 33f0a1fd2e5dd2c9f8bc3066fda38911828d26f5.
2021-09-30 10:38:52 +02:00
Ben Noordhuis
33f0a1fd2e
macros: run runtime inside LocalSet when using macro (#4027) 2021-09-15 11:25:02 +02:00
Fedorenko Dmitrij
80bda3bf5f
macros: fix wrong error messages (#4067) 2021-08-25 19:59:41 +02:00
Alice Ryhl
e60d7a474b
chore: fix CI on master (#4008) 2021-07-30 12:28:46 +02:00
Taiki Endo
f9ce18a524
macros: improve diagnostics on type mismatch (#3766) 2021-05-09 18:58:05 +09:00
David Pedersen
28d6879897
macros: forward input arguments in #[tokio::test] (#3691)
Fixes #2388

Previously `#[tokio::test]` would error on functions that took
arguments. That meant other attribute macros couldn't do further
transformations on them. This changes that so arguments are forwarded as
is.

Whatever else might be included on the function is forwarded as well.
For example return type, generics, etc.

Worth noting that this is only for compatibility with other macros.
`#[test]`s that take arguments will still fail to compile.

A bit odd that [trybuild] tests don't fail `#[test]` functions with
arguments which is why the new tests are run with `t.pass(...)`. They do
actually fail if part of a real crate.

[trybuild]: https://crates.io/crates/trybuild
2021-04-11 20:39:05 +02:00
David Pedersen
618d2bfc71
macros: various error message improvements (#3677)
Improves a few of the error messages for `#[tokio::main]` and `#[tokio::test]`.

Also adds a note to the docs about `start_paused` requiring the `test-util` feature which wasn't mentioned previously.
2021-04-05 22:40:42 +02:00
Steven Fackler
fcb6d041b9
time: make test-util paused time fully deterministic (#3492)
The time driver stores an Instant internally used as a "base" for future
time calculations. Since this is generated as the Runtime is being
constructed, it previously always happened before the user had a chance
to pause time. The fractional-millisecond variations in the timing
around the runtime construction and time pause cause tests running
entirely in paused time to be very slightly deterministic, with the time
driver advancing time by 1 millisecond more or less depending on how the
sub-millisecond components of the `Instant`s involved compared.

To avoid this, there is now a new option on `runtime::Builder` which
will create a `Runtime` with time "instantly" paused. This, along with a
small change to have the time driver use the provided clock as the
source for its start time allow totally deterministic tests with paused
time.
2021-02-05 20:12:25 +01:00
Taiki Endo
c90681bd8e
rt: simplify rt-* features (#2949)
tokio:

    merge rt-core and rt-util as rt
    rename rt-threaded to rt-multi-thread

tokio-util:

    rename rt-core to rt

Closes #2942
2020-10-12 14:13:23 -07:00
Lucio Franco
8880222036
rt: Remove threaded_scheduler() and basic_scheduler() (#2876)
Co-authored-by: Alice Ryhl <alice@ryhl.io>
Co-authored-by: Carl Lerche <me@carllerche.com>
2020-10-12 13:44:54 -04:00
Carl Lerche
e1b1e216c5
ci: bring back build tests (#1813)
This directory was deleted when `cargo hack` was introduced, however
there were some tests that were still useful (macro failure output).

Also, additional build tests will be added over time.
2019-11-22 14:38:49 -08:00
Taiki Endo
02f7264008 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.
2019-10-31 21:09:32 -07:00
Carl Lerche
c62ef2d232
executor: move into tokio crate (#1702)
A step towards collapsing Tokio sub crates into a single `tokio`
crate (#1318).

The executor implementation is now provided by the main `tokio` crate.
Functionality can be opted out of by using the various net related
feature flags.
2019-10-28 21:40:29 -07:00
Carl Lerche
227533d456
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.
2019-10-25 12:50:15 -07:00