Skip to content

Commit 8cf1121

Browse files
authored
test(server): fix conditional cfg for tests needing the server feature (hyperium#3799)
Update tests that require the server feature to only be compiled when the feature is enabled. After updating these tests, the server feature is no longer required for the ffi job when running tests. Closes hyperium#3790
1 parent eaf2267 commit 8cf1121

File tree

4 files changed

+30
-5
lines changed

4 files changed

+30
-5
lines changed

.github/workflows/CI.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ jobs:
195195
- name: Run FFI unit tests
196196
env:
197197
RUSTFLAGS: --cfg hyper_unstable_ffi
198-
run: cargo test --features server,client,http1,http2,ffi --lib
198+
run: cargo test --features client,http1,http2,ffi --lib
199199

200200
ffi-header:
201201
name: Verify hyper.h is up to date
@@ -279,7 +279,7 @@ jobs:
279279
- name: Install Rust
280280
uses: dtolnay/rust-toolchain@master
281281
with:
282-
toolchain: nightly-2024-05-01 # Compatible version for cargo-check-external-types
282+
toolchain: nightly-2024-05-01 # Compatible version for cargo-check-external-types
283283

284284
- name: Install cargo-check-external-types
285285
uses: taiki-e/cache-cargo-install-action@v2

examples/hello-http2.rs

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
#![deny(warnings)]
2-
3-
use std::convert::Infallible;
4-
use std::net::SocketAddr;
2+
#![allow(unused_imports)]
53

64
use http_body_util::Full;
75
use hyper::body::Bytes;
6+
#[cfg(feature = "server")]
87
use hyper::server::conn::http2;
98
use hyper::service::service_fn;
109
use hyper::{Request, Response};
10+
use std::convert::Infallible;
11+
use std::net::SocketAddr;
1112
use tokio::net::TcpListener;
1213

1314
// This would normally come from the `hyper-util` crate, but we can't depend
@@ -18,6 +19,7 @@ use support::TokioIo;
1819

1920
// An async function that consumes a request, does nothing with it and returns a
2021
// response.
22+
#[cfg(feature = "server")]
2123
async fn hello(_: Request<hyper::body::Incoming>) -> Result<Response<Full<Bytes>>, Infallible> {
2224
Ok(Response::new(Full::new(Bytes::from("Hello, World!"))))
2325
}
@@ -40,6 +42,7 @@ where
4042
}
4143
}
4244

45+
#[cfg(feature = "server")]
4346
#[tokio::main]
4447
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
4548
pretty_env_logger::init();
@@ -79,3 +82,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
7982
});
8083
}
8184
}
85+
86+
#[cfg(not(feature = "server"))]
87+
fn main() {
88+
panic!("This example requires the 'server' feature to be enabled");
89+
}

src/proto/h1/encode.rs

+1
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,7 @@ mod tests {
506506
assert!(encoder.end::<()>().unwrap().is_none());
507507
}
508508

509+
#[cfg(feature = "server")]
509510
#[test]
510511
fn eof() {
511512
let mut encoder = Encoder::close_delimited();

src/proto/h1/role.rs

+16
Original file line numberDiff line numberDiff line change
@@ -1646,6 +1646,7 @@ mod tests {
16461646

16471647
use super::*;
16481648

1649+
#[cfg(feature = "server")]
16491650
#[test]
16501651
fn test_parse_request() {
16511652
let _ = pretty_env_logger::try_init();
@@ -1701,6 +1702,7 @@ mod tests {
17011702
assert_eq!(msg.head.headers["Content-Length"], "0");
17021703
}
17031704

1705+
#[cfg(feature = "server")]
17041706
#[test]
17051707
fn test_parse_request_errors() {
17061708
let mut raw = BytesMut::from("GET htt:p// HTTP/1.1\r\nHost: hyper.rs\r\n\r\n");
@@ -1814,6 +1816,7 @@ mod tests {
18141816
Client::parse(&mut raw, ctx).unwrap_err();
18151817
}
18161818

1819+
#[cfg(feature = "server")]
18171820
#[test]
18181821
fn test_parse_preserve_header_case_in_request() {
18191822
let mut raw =
@@ -1852,6 +1855,7 @@ mod tests {
18521855
);
18531856
}
18541857

1858+
#[cfg(feature = "server")]
18551859
#[test]
18561860
fn test_decoder_request() {
18571861
fn parse(s: &str) -> ParsedMessage<RequestLine> {
@@ -2462,9 +2466,11 @@ mod tests {
24622466
Encode {
24632467
head: &mut head,
24642468
body: Some(BodyLength::Known(10)),
2469+
#[cfg(feature = "server")]
24652470
keep_alive: true,
24662471
req_method: &mut None,
24672472
title_case_headers: true,
2473+
#[cfg(feature = "server")]
24682474
date_header: true,
24692475
},
24702476
&mut vec,
@@ -2494,9 +2500,11 @@ mod tests {
24942500
Encode {
24952501
head: &mut head,
24962502
body: Some(BodyLength::Known(10)),
2503+
#[cfg(feature = "server")]
24972504
keep_alive: true,
24982505
req_method: &mut None,
24992506
title_case_headers: false,
2507+
#[cfg(feature = "server")]
25002508
date_header: true,
25012509
},
25022510
&mut vec,
@@ -2529,9 +2537,11 @@ mod tests {
25292537
Encode {
25302538
head: &mut head,
25312539
body: Some(BodyLength::Known(10)),
2540+
#[cfg(feature = "server")]
25322541
keep_alive: true,
25332542
req_method: &mut None,
25342543
title_case_headers: true,
2544+
#[cfg(feature = "server")]
25352545
date_header: true,
25362546
},
25372547
&mut vec,
@@ -2545,6 +2555,7 @@ mod tests {
25452555
);
25462556
}
25472557

2558+
#[cfg(feature = "server")]
25482559
#[test]
25492560
fn test_server_encode_connect_method() {
25502561
let mut head = MessageHead::default();
@@ -2566,6 +2577,7 @@ mod tests {
25662577
assert!(encoder.is_last());
25672578
}
25682579

2580+
#[cfg(feature = "server")]
25692581
#[test]
25702582
fn test_server_response_encode_title_case() {
25712583
use crate::proto::BodyLength;
@@ -2599,6 +2611,7 @@ mod tests {
25992611
assert_eq!(&vec[..expected_response.len()], &expected_response[..]);
26002612
}
26012613

2614+
#[cfg(feature = "server")]
26022615
#[test]
26032616
fn test_server_response_encode_orig_case() {
26042617
use crate::proto::BodyLength;
@@ -2634,6 +2647,7 @@ mod tests {
26342647
assert_eq!(&vec[..expected_response.len()], &expected_response[..]);
26352648
}
26362649

2650+
#[cfg(feature = "server")]
26372651
#[test]
26382652
fn test_server_response_encode_orig_and_title_case() {
26392653
use crate::proto::BodyLength;
@@ -2670,6 +2684,7 @@ mod tests {
26702684
assert_eq!(&vec[..expected_response.len()], &expected_response[..]);
26712685
}
26722686

2687+
#[cfg(feature = "server")]
26732688
#[test]
26742689
fn test_disabled_date_header() {
26752690
use crate::proto::BodyLength;
@@ -2729,6 +2744,7 @@ mod tests {
27292744
assert_eq!(parsed.head.headers["server"], "hello\tworld");
27302745
}
27312746

2747+
#[cfg(feature = "server")]
27322748
#[test]
27332749
fn parse_too_large_headers() {
27342750
fn gen_req_with_headers(num: usize) -> String {

0 commit comments

Comments
 (0)