forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			88 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| #![cfg(all(feature = "full", not(tokio_wasi)))] // Wasi doesn't support threading
 | |
| 
 | |
| use tokio::test;
 | |
| 
 | |
| #[test]
 | |
| async fn test_macro_can_be_used_via_use() {
 | |
|     tokio::spawn(async {}).await.unwrap();
 | |
| }
 | |
| 
 | |
| #[tokio::test]
 | |
| async fn test_macro_is_resilient_to_shadowing() {
 | |
|     tokio::spawn(async {}).await.unwrap();
 | |
| }
 | |
| 
 | |
| // https://github.com/tokio-rs/tokio/issues/3403
 | |
| #[rustfmt::skip] // this `rustfmt::skip` is necessary because unused_braces does not warn if the block contains newline.
 | |
| #[tokio::main]
 | |
| pub async fn unused_braces_main() { println!("hello") }
 | |
| #[rustfmt::skip] // this `rustfmt::skip` is necessary because unused_braces does not warn if the block contains newline.
 | |
| #[tokio::test]
 | |
| async fn unused_braces_test() { assert_eq!(1 + 1, 2) }
 | |
| 
 | |
| // https://github.com/tokio-rs/tokio/pull/3766#issuecomment-835508651
 | |
| #[std::prelude::v1::test]
 | |
| fn trait_method() {
 | |
|     trait A {
 | |
|         fn f(self);
 | |
|     }
 | |
|     impl A for () {
 | |
|         #[tokio::main]
 | |
|         async fn f(self) {}
 | |
|     }
 | |
|     ().f()
 | |
| }
 | |
| 
 | |
| // https://github.com/tokio-rs/tokio/issues/4175
 | |
| #[tokio::main]
 | |
| pub async fn issue_4175_main_1() -> ! {
 | |
|     panic!();
 | |
| }
 | |
| #[tokio::main]
 | |
| pub async fn issue_4175_main_2() -> std::io::Result<()> {
 | |
|     panic!();
 | |
| }
 | |
| #[allow(unreachable_code)]
 | |
| #[tokio::test]
 | |
| pub async fn issue_4175_test() -> std::io::Result<()> {
 | |
|     return Ok(());
 | |
|     panic!();
 | |
| }
 | |
| 
 | |
| // https://github.com/tokio-rs/tokio/issues/4175
 | |
| #[allow(clippy::let_unit_value)]
 | |
| pub mod clippy_semicolon_if_nothing_returned {
 | |
|     #![deny(clippy::semicolon_if_nothing_returned)]
 | |
| 
 | |
|     #[tokio::main]
 | |
|     pub async fn local() {
 | |
|         let _x = ();
 | |
|     }
 | |
|     #[tokio::main]
 | |
|     pub async fn item() {
 | |
|         fn _f() {}
 | |
|     }
 | |
|     #[tokio::main]
 | |
|     pub async fn semi() {
 | |
|         panic!();
 | |
|     }
 | |
|     #[tokio::main]
 | |
|     pub async fn empty() {
 | |
|         // To trigger clippy::semicolon_if_nothing_returned lint, the block needs to contain newline.
 | |
|     }
 | |
| }
 | |
| 
 | |
| // https://github.com/tokio-rs/tokio/issues/5243
 | |
| pub mod issue_5243 {
 | |
|     macro_rules! mac {
 | |
|         (async fn $name:ident() $b:block) => {
 | |
|             #[::tokio::test]
 | |
|             async fn $name() {
 | |
|                 $b
 | |
|             }
 | |
|         };
 | |
|     }
 | |
|     mac!(
 | |
|         async fn foo() {}
 | |
|     );
 | |
| }
 | 
