diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index a2337566c..9da7d2143 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -60,6 +60,28 @@ jobs: cargo build --all-targets && cargo test && cargo test --manifest-path fuzz/Cargo.toml && cargo test -p quinn-udp --benches + test-solaris: + name: test on solaris + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: test on Solaris + uses: vmactions/solaris-vm@v1 + with: + release: "11.4-gcc" + usesh: true + mem: 4096 + copyback: false + prepare: | + source <(curl -s https://raw.githubusercontent.com/psumbera/solaris-rust/refs/heads/main/sh.rust-web-install) + echo "~~~~ rustc --version ~~~~" + rustc --version + echo "~~~~ Solaris-version ~~~~" + uname -a + run: | + export PATH=$HOME/.rust_solaris/bin:$PATH + cargo build --all-targets && cargo test && cargo test --manifest-path fuzz/Cargo.toml && cargo test -p quinn-udp --benches + test: strategy: matrix: diff --git a/quinn/src/tests.rs b/quinn/src/tests.rs index 021a1a650..ea5a65713 100755 --- a/quinn/src/tests.rs +++ b/quinn/src/tests.rs @@ -387,6 +387,7 @@ async fn zero_rtt() { } #[test] +#[cfg_attr(target_os = "solaris", ignore = "Fails on Solaris")] fn echo_v6() { run_echo(EchoArgs { client_addr: SocketAddr::new(IpAddr::V6(Ipv6Addr::UNSPECIFIED), 0), @@ -399,6 +400,7 @@ fn echo_v6() { } #[test] +#[cfg_attr(target_os = "solaris", ignore = "Sometimes hangs in poll() on Solaris")] fn echo_v4() { run_echo(EchoArgs { client_addr: SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), 0), @@ -411,6 +413,7 @@ fn echo_v4() { } #[test] +#[cfg_attr(target_os = "solaris", ignore = "Hangs in poll() on Solaris")] fn echo_dualstack() { run_echo(EchoArgs { client_addr: SocketAddr::new(IpAddr::V6(Ipv6Addr::UNSPECIFIED), 0), @@ -423,6 +426,7 @@ fn echo_dualstack() { } #[test] +#[cfg_attr(target_os = "solaris", ignore = "Hangs in poll() on Solaris")] fn stress_receive_window() { run_echo(EchoArgs { client_addr: SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), 0), @@ -435,6 +439,7 @@ fn stress_receive_window() { } #[test] +#[cfg_attr(target_os = "solaris", ignore = "Hangs in poll() on Solaris")] fn stress_stream_receive_window() { // Note that there is no point in running this with too many streams, // since the window is only active within a stream. @@ -449,6 +454,7 @@ fn stress_stream_receive_window() { } #[test] +#[cfg_attr(target_os = "solaris", ignore = "Hangs in poll() on Solaris")] fn stress_both_windows() { run_echo(EchoArgs { client_addr: SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), 0),