diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ea5e339..134a367 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,10 +1,6 @@ name: Test -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] +on: [ push, pull_request ] env: CARGO_TERM_COLOR: always @@ -20,7 +16,7 @@ jobs: - uses: Swatinem/rust-cache@v2 - name: Build - run: cargo build + run: cargo build --features ci - name: Test - run: cargo test + run: cargo test --features ci diff --git a/Cargo.toml b/Cargo.toml index 40f9298..ad2507f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,3 +26,6 @@ tokio = { version = "1.37.0", features = ["macros", "net", "rt-multi-thread", "s [dev-dependencies] pretty_assertions = "1.4.0" + +[features] +ci = [] diff --git a/README.md b/README.md index 54ec33b..14643a2 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,13 @@ cargo add masterstat ```rust use std::time::Duration; -let master = "master.quakeworld.nu:27000"; -let timeout = Some(Duration::from_secs(2)); - -match masterstat::server_addresses(&master, timeout) { - Ok(addresses) => { println!("found {} server addresses", addresses.len()) }, - Err(e) => { eprintln!("error: {}", e); } +async fn test() { + let master = "master.quakeworld.nu:27000"; + let timeout = Duration::from_secs(2); + match masterstat::server_addresses(&master, timeout).await { + Ok(result) => { println!("found {} server addresses", result.len()) }, + Err(e) => { eprintln!("error: {}", e); } + } } ``` @@ -30,9 +31,10 @@ match masterstat::server_addresses(&master, timeout) { use std::time::Duration; async fn test() { - let masters = ["master.quakeworld.nu:27000", "master.quakeservers.net:27000"]; - let timeout = Some(Duration::from_secs(2)); - let server_addresses = masterstat::server_addresses_from_many(&masters, timeout).await?; + let masters = ["master.quakeworld.nu:27000", "master.quakeservers.net:27000"]; + let timeout = Duration::from_secs(2); + let result = masterstat::server_addresses_from_many(&masters, timeout).await; + println!("found {} server addresses", result.len()); } ``` diff --git a/src/command.rs b/src/command.rs index 1ea3883..331b711 100644 --- a/src/command.rs +++ b/src/command.rs @@ -107,25 +107,26 @@ fn sorted_and_unique(server_addresses: &[ServerAddress]) -> Vec { #[cfg(test)] mod tests { use super::*; - // use pretty_assertions::assert_eq; + use pretty_assertions::assert_eq; #[tokio::test] + #[cfg_attr(feature = "ci", ignore)] async fn test_server_addresses() -> Result<()> { let master = "master.quakeservers.net:27000"; - let timeout = Duration::from_secs(1); + let timeout = Duration::from_secs(2); let result = server_addresses(master, timeout).await?; assert!(!result.is_empty()); Ok(()) } #[tokio::test] + #[cfg_attr(feature = "ci", ignore)] async fn test_server_addresses_from_many() -> Result<()> { let masters = [ "master.quakeservers.net:27000", "master.quakeworld.nu:27000", - "qwmaster.fodquake.net:27000", ]; - let timeout = Duration::from_secs(1); + let timeout = Duration::from_secs(2); let result = server_addresses_from_many(&masters, timeout).await; assert!(result.len() > 500); Ok(())