mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-09-09 00:00:08 +02:00
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.
This commit is contained in:
@@ -9,5 +9,6 @@ members = [
|
|||||||
|
|
||||||
# Internal
|
# Internal
|
||||||
"examples",
|
"examples",
|
||||||
|
"tests-build",
|
||||||
"tests-integration",
|
"tests-integration",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -30,6 +30,13 @@ jobs:
|
|||||||
- tokio-util
|
- tokio-util
|
||||||
- examples
|
- examples
|
||||||
|
|
||||||
|
# Run tests from `tests-build`. This requires a different process
|
||||||
|
- template: ci/azure-test-build.yml
|
||||||
|
parameters:
|
||||||
|
name: test_build
|
||||||
|
displayName: Test build permutations
|
||||||
|
rust: stable
|
||||||
|
|
||||||
# Run loom tests
|
# Run loom tests
|
||||||
- template: ci/azure-loom.yml
|
- template: ci/azure-loom.yml
|
||||||
parameters:
|
parameters:
|
||||||
@@ -93,6 +100,7 @@ jobs:
|
|||||||
- clippy
|
- clippy
|
||||||
- test_tokio
|
- test_tokio
|
||||||
- test_linux
|
- test_linux
|
||||||
|
- test_build
|
||||||
- loom
|
- loom
|
||||||
- cross
|
- cross
|
||||||
- minrust
|
- minrust
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
jobs:
|
||||||
|
- job: ${{ parameters.name }}
|
||||||
|
displayName: ${{ parameters.displayName }}
|
||||||
|
pool:
|
||||||
|
vmImage: 'Ubuntu 16.04'
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- template: azure-install-rust.yml
|
||||||
|
parameters:
|
||||||
|
rust_version: ${{ parameters.rust }}
|
||||||
|
|
||||||
|
- script: cargo install cargo-hack
|
||||||
|
displayName: Install cargo-hack
|
||||||
|
|
||||||
|
- script: cargo hack test --each-feature
|
||||||
|
displayName: cargo hack test --each-feature
|
||||||
|
workingDirectory: $(Build.SourcesDirectory)/tests-build
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
[package]
|
||||||
|
name = "tests-build"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Tokio Contributors <[email protected]>"]
|
||||||
|
edition = "2018"
|
||||||
|
publish = false
|
||||||
|
|
||||||
|
[features]
|
||||||
|
full = ["tokio/full"]
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
tokio = { path = "../tokio", optional = true }
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
trybuild = "1.0"
|
||||||
@@ -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.
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
#[cfg(feature = "tokio")]
|
||||||
|
pub use tokio;
|
||||||
@@ -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() {}
|
||||||
@@ -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 `basic_scheduler` or `threaded_scheduler`
|
||||||
|
--> $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 `basic_scheduler` or `threaded_scheduler`
|
||||||
|
--> $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]
|
||||||
|
| ^^^^^^^
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
#[test]
|
||||||
|
fn compile_fail() {
|
||||||
|
let t = trybuild::TestCases::new();
|
||||||
|
|
||||||
|
#[cfg(feature = "full")]
|
||||||
|
t.compile_fail("tests/fail/macros_invalid_input.rs");
|
||||||
|
|
||||||
|
drop(t);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user