test(client): refactor client helper macro to handle options better

This commit is contained in:
Sean McArthur
2021-11-24 13:02:51 -08:00
parent 842c6553a5
commit 1010614a0d

View File

@@ -35,111 +35,9 @@ macro_rules! test {
expected: $server_expected:expr, expected: $server_expected:expr,
reply: $server_reply:expr, reply: $server_reply:expr,
client: client:
request: {$( $(options: {$(
$c_req_prop:ident: $c_req_val: tt, $c_opt_prop:ident: $c_opt_val:tt,
)*}, )*},)?
response:
status: $client_status:ident,
headers: { $($response_header_name:expr => $response_header_val:expr,)* },
body: $response_body:expr,
) => (
test! {
name: $name,
server:
expected: $server_expected,
reply: $server_reply,
client:
set_host: true,
request: {$(
$c_req_prop: $c_req_val,
)*},
response:
status: $client_status,
headers: { $($response_header_name => $response_header_val,)* },
body: $response_body,
}
);
(
name: $name:ident,
server:
expected: $server_expected:expr,
reply: $server_reply:expr,
client:
set_host: $set_host:expr,
request: {$(
$c_req_prop:ident: $c_req_val:tt,
)*},
response:
status: $client_status:ident,
headers: { $($response_header_name:expr => $response_header_val:expr,)* },
body: $response_body:expr,
) => (
test! {
name: $name,
server:
expected: $server_expected,
reply: $server_reply,
client:
set_host: $set_host,
title_case_headers: false,
request: {$(
$c_req_prop: $c_req_val,
)*},
response:
status: $client_status,
headers: { $($response_header_name => $response_header_val,)* },
body: $response_body,
}
);
(
name: $name:ident,
server:
expected: $server_expected:expr,
reply: $server_reply:expr,
client:
set_host: $set_host:expr,
title_case_headers: $title_case_headers:expr,
request: {$(
$c_req_prop:ident: $c_req_val:tt,
)*},
response:
status: $client_status:ident,
headers: { $($response_header_name:expr => $response_header_val:expr,)* },
body: $response_body:expr,
) => (
test! {
name: $name,
server:
expected: $server_expected,
reply: $server_reply,
client:
set_host: $set_host,
title_case_headers: $title_case_headers,
allow_h09_responses: false,
request: {$(
$c_req_prop: $c_req_val,
)*},
response:
status: $client_status,
headers: { $($response_header_name => $response_header_val,)* },
body: $response_body,
}
);
(
name: $name:ident,
server:
expected: $server_expected:expr,
reply: $server_reply:expr,
client:
set_host: $set_host:expr,
title_case_headers: $title_case_headers:expr,
allow_h09_responses: $allow_h09_responses:expr,
request: {$( request: {$(
$c_req_prop:ident: $c_req_val:tt, $c_req_prop:ident: $c_req_val:tt,
)*}, )*},
@@ -162,9 +60,9 @@ macro_rules! test {
expected: $server_expected, expected: $server_expected,
reply: $server_reply, reply: $server_reply,
client: client:
set_host: $set_host, $(options: {$(
title_case_headers: $title_case_headers, $c_opt_prop: $c_opt_val,
allow_h09_responses: $allow_h09_responses, )*},)?
request: {$( request: {$(
$c_req_prop: $c_req_val, $c_req_prop: $c_req_val,
)*}, )*},
@@ -217,9 +115,6 @@ macro_rules! test {
expected: $server_expected, expected: $server_expected,
reply: $server_reply, reply: $server_reply,
client: client:
set_host: true,
title_case_headers: false,
allow_h09_responses: false,
request: {$( request: {$(
$c_req_prop: $c_req_val, $c_req_prop: $c_req_val,
)*}, )*},
@@ -242,9 +137,9 @@ macro_rules! test {
expected: $server_expected:expr, expected: $server_expected:expr,
reply: $server_reply:expr, reply: $server_reply:expr,
client: client:
set_host: $set_host:expr, $(options: {$(
title_case_headers: $title_case_headers:expr, $c_opt_prop:ident: $c_opt_val:tt,
allow_h09_responses: $allow_h09_responses:expr, )*},)?
request: {$( request: {$(
$c_req_prop:ident: $c_req_val:tt, $c_req_prop:ident: $c_req_val:tt,
)*}, )*},
@@ -255,9 +150,7 @@ macro_rules! test {
let connector = ::hyper::client::HttpConnector::new(); let connector = ::hyper::client::HttpConnector::new();
let client = Client::builder() let client = Client::builder()
.set_host($set_host) $($(.$c_opt_prop($c_opt_val))*)?
.http1_title_case_headers($title_case_headers)
.http09_responses($allow_h09_responses)
.build(connector); .build(connector);
#[allow(unused_assignments, unused_mut)] #[allow(unused_assignments, unused_mut)]
@@ -1086,7 +979,9 @@ test! {
", ",
client: client:
set_host: false, options: {
set_host: false,
},
request: { request: {
method: GET, method: GET,
url: "http://{addr}/no-host/{addr}", url: "http://{addr}/no-host/{addr}",
@@ -1114,8 +1009,9 @@ test! {
", ",
client: client:
set_host: true, options: {
title_case_headers: true, http1_title_case_headers: true,
},
request: { request: {
method: GET, method: GET,
url: "http://{addr}/", url: "http://{addr}/",
@@ -1191,15 +1087,15 @@ test! {
server: server:
expected: "\ expected: "\
GET / HTTP/1.1\r\n\ GET / HTTP/1.1\r\n\
Host: {addr}\r\n\ host: {addr}\r\n\
\r\n\ \r\n\
", ",
reply: "Mmmmh, baguettes.", reply: "Mmmmh, baguettes.",
client: client:
set_host: true, options: {
title_case_headers: true, http09_responses: true,
allow_h09_responses: true, },
request: { request: {
method: GET, method: GET,
url: "http://{addr}/", url: "http://{addr}/",