sagebind / isahc

The practical HTTP client that is fun to use.
https://docs.rs/isahc
MIT License
705 stars 62 forks source link

testserver fails 2 tests on s390x #425

Open jonassmedegaard opened 1 year ago

jonassmedegaard commented 1 year ago

Checking testsuite for embedded crate testserver fails on architecture s390x:

running 2 tests
test request_errors_if_read_timeout_is_reached ... FAILED
test timeout_during_response_body_produces_error ... FAILED

failures:

---- request_errors_if_read_timeout_is_reached stdout ----
thread 'request_errors_if_read_timeout_is_reached' panicked at 'assertion failed: `result` matches `Err(e) if e == isahc :: error :: ErrorKind :: Timeout`
  value: `Ok(Response { status: 200, version: HTTP/1.1, headers: {}, body: Body(?) })`', tests/timeouts.rs:28:5
stack backtrace:
   0: rust_begin_unwind
             at /usr/src/rustc-1.63.0/library/std/src/panicking.rs:584:5
   1: core::panicking::panic_fmt
             at /usr/src/rustc-1.63.0/library/core/src/panicking.rs:142:14
   2: timeouts::request_errors_if_read_timeout_is_reached
             at ./tests/timeouts.rs:28:5
   3: timeouts::request_errors_if_read_timeout_is_reached::{{closure}}
             at ./tests/timeouts.rs:14:1
   4: core::ops::function::FnOnce::call_once
             at /usr/src/rustc-1.63.0/library/core/src/ops/function.rs:248:5
   5: core::ops::function::FnOnce::call_once
             at /usr/src/rustc-1.63.0/library/core/src/ops/function.rs:248:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---- timeout_during_response_body_produces_error stdout ----
thread 'timeout_during_response_body_produces_error' panicked at 'called `Result::unwrap_err()` on an `Ok` value: 98304', tests/timeouts.rs:61:43
stack backtrace:
   0: rust_begin_unwind
             at /usr/src/rustc-1.63.0/library/std/src/panicking.rs:584:5
   1: core::panicking::panic_fmt
             at /usr/src/rustc-1.63.0/library/core/src/panicking.rs:142:14
   2: core::result::unwrap_failed
             at /usr/src/rustc-1.63.0/library/core/src/result.rs:1805:5
   3: core::result::Result<T,E>::unwrap_err
             at /usr/src/rustc-1.63.0/library/core/src/result.rs:1194:22
   4: timeouts::timeout_during_response_body_produces_error
             at ./tests/timeouts.rs:61:9
   5: timeouts::timeout_during_response_body_produces_error::{{closure}}
             at ./tests/timeouts.rs:35:1
   6: core::ops::function::FnOnce::call_once
             at /usr/src/rustc-1.63.0/library/core/src/ops/function.rs:248:5
   7: core::ops::function::FnOnce::call_once
             at /usr/src/rustc-1.63.0/library/core/src/ops/function.rs:248:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

failures:
    request_errors_if_read_timeout_is_reached
    timeout_during_response_body_produces_error

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s

Full build log: https://ci.debian.net/data/autopkgtest/testing/s390x/r/rust-isahc/31083641/log.gz

jonassmedegaard commented 1 year ago

Additional tests have been found to fail on s390x. Please consider applying this patch.

sagebind commented 1 year ago

Thanks for keeping up with this, I don't really have great means of testing these less common architectures regularly so it is fair to point them out. I'm not sure I am comfortable with just ignoring multiple tests on a specific architecture; if those tests are failing then I'd be concerned that Isahc is actually not functioning properly on this architecture, even if it does compile.

jonassmedegaard commented 1 year ago

I can help you get shell access to an s390x porter-box in Debian - more info on that is here.