Skip to content

Commit

Permalink
add trybuild compile tests
Browse files Browse the repository at this point in the history
  • Loading branch information
robjtede committed Apr 26, 2020
1 parent 7d0cfe1 commit 4c5568e
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 4 deletions.
1 change: 1 addition & 0 deletions actix-macros/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/wip
6 changes: 4 additions & 2 deletions actix-macros/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ documentation = "https://docs.rs/actix-macros/"
categories = ["network-programming", "asynchronous"]
license = "MIT/Apache-2.0"
edition = "2018"
workspace = ".."

[lib]
proc-macro = true
Expand All @@ -18,4 +17,7 @@ quote = "1.0.3"
syn = { version = "^1", features = ["full"] }

[dev-dependencies]
actix-rt = { version = "1.0.0" }
actix-rt = "1.0"

futures = "0.3"
trybuild = "1"
9 changes: 9 additions & 0 deletions actix-macros/tests/trybuild.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#[test]
fn compile_macros() {
let t = trybuild::TestCases::new();
t.pass("tests/trybuild/main-01-basic.rs");
t.compile_fail("tests/trybuild/main-02-only-async.rs");

t.pass("tests/trybuild/test-01-basic.rs");
t.pass("tests/trybuild/test-02-keep-attrs.rs");
}
4 changes: 4 additions & 0 deletions actix-macros/tests/trybuild/main-01-basic.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#[actix_rt::main]
async fn main() {
println!("Hello world");
}
4 changes: 4 additions & 0 deletions actix-macros/tests/trybuild/main-02-only-async.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#[actix_rt::main]
fn main() {
futures::future::ready(()).await
}
14 changes: 14 additions & 0 deletions actix-macros/tests/trybuild/main-02-only-async.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
error: only async fn is supported
--> $DIR/main-02-only-async.rs:2:1
|
2 | fn main() {
| ^^

error[E0601]: `main` function not found in crate `$CRATE`
--> $DIR/main-02-only-async.rs:1:1
|
1 | / #[actix_rt::main]
2 | | fn main() {
3 | | futures::future::ready(()).await
4 | | }
| |_^ consider adding a `main` function to `$DIR/tests/trybuild/main-02-only-async.rs`
6 changes: 6 additions & 0 deletions actix-macros/tests/trybuild/test-01-basic.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#[actix_rt::test]
async fn my_test() {
assert!(true);
}

fn main() {}
7 changes: 7 additions & 0 deletions actix-macros/tests/trybuild/test-02-keep-attrs.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#[actix_rt::test]
#[should_panic]
async fn my_test() {
todo!()
}

fn main() {}
5 changes: 3 additions & 2 deletions string/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
//! A utl-8 encoded read-only string with Bytes as a storage.
//! A UTF-8 encoded read-only string using Bytes as storage.

use std::convert::TryFrom;
use std::{borrow, fmt, hash, ops, str};

use bytes::Bytes;

/// A utf-8 encoded string with [`Bytes`] as a storage.
/// A UTF-8 encoded string with [`Bytes`] as a storage.
///
/// [`Bytes`]: https://docs.rs/bytes/0.5.3/bytes/struct.Bytes.html
#[derive(Clone, Eq, Ord, PartialOrd, Default)]
Expand Down

0 comments on commit 4c5568e

Please sign in to comment.