test(client): update and expand DSCP negotiation test coverage
This commit is contained in:
3 files changed
+78
-4
No files matched your search
@@ -28,10 +28,13 @@ fn strict_negotiation_accepts_identical_params() {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn strict_negotiation_rejects_changed_params() {
|
fn strict_negotiation_rejects_changed_params() {
|
||||||
let config = ClientConfig::default();
|
let config = ClientConfig {
|
||||||
|
dscp: 46,
|
||||||
|
..ClientConfig::default()
|
||||||
|
};
|
||||||
let requested = params_from_config(&config).unwrap();
|
let requested = params_from_config(&config).unwrap();
|
||||||
let mut returned = requested.clone();
|
let mut returned = requested.clone();
|
||||||
returned.dscp = 1;
|
returned.dscp = 0;
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
rejection_reason(&requested, &returned, NegotiationPolicy::Strict),
|
rejection_reason(&requested, &returned, NegotiationPolicy::Strict),
|
||||||
NegotiationRestriction::DscpChanged {
|
NegotiationRestriction::DscpChanged {
|
||||||
@@ -192,3 +195,74 @@ fn loose_negotiation_rejects_runtime_invalid_returned_dscp() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn loose_negotiation_records_dscp_disabled_by_server() {
|
||||||
|
let config = ClientConfig {
|
||||||
|
dscp: 46,
|
||||||
|
..ClientConfig::default()
|
||||||
|
};
|
||||||
|
let requested = params_from_config(&config).unwrap();
|
||||||
|
let mut returned = requested.clone();
|
||||||
|
returned.dscp = 0;
|
||||||
|
|
||||||
|
let negotiated = assert_negotiates(&requested, &returned, NegotiationPolicy::Loose);
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
negotiated.restrictions,
|
||||||
|
vec![NegotiationRestriction::DscpChanged {
|
||||||
|
requested: 46,
|
||||||
|
negotiated: 0,
|
||||||
|
}]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn strict_negotiation_rejects_dscp_disabled_by_server_as_specific_restriction() {
|
||||||
|
let config = ClientConfig {
|
||||||
|
dscp: 46,
|
||||||
|
..ClientConfig::default()
|
||||||
|
};
|
||||||
|
let requested = params_from_config(&config).unwrap();
|
||||||
|
let mut returned = requested.clone();
|
||||||
|
returned.dscp = 0;
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
rejection_reason(&requested, &returned, NegotiationPolicy::Strict),
|
||||||
|
NegotiationRestriction::DscpChanged {
|
||||||
|
requested: 46,
|
||||||
|
negotiated: 0,
|
||||||
|
}
|
||||||
|
.message()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn negotiation_rejects_unsupported_dscp_changes() {
|
||||||
|
let config = ClientConfig {
|
||||||
|
dscp: 46,
|
||||||
|
..ClientConfig::default()
|
||||||
|
};
|
||||||
|
let requested = params_from_config(&config).unwrap();
|
||||||
|
let mut returned = requested.clone();
|
||||||
|
returned.dscp = 8;
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
rejection_reason(&requested, &returned, NegotiationPolicy::Loose),
|
||||||
|
"server returned unsupported DSCP change"
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
rejection_reason(&requested, &returned, NegotiationPolicy::Strict),
|
||||||
|
"server returned unsupported DSCP change"
|
||||||
|
);
|
||||||
|
|
||||||
|
let zero_config = ClientConfig::default();
|
||||||
|
let zero_requested = params_from_config(&zero_config).unwrap();
|
||||||
|
let mut returned = zero_requested.clone();
|
||||||
|
returned.dscp = 46;
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
rejection_reason(&zero_requested, &returned, NegotiationPolicy::Loose),
|
||||||
|
"server returned unsupported DSCP change"
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -413,7 +413,7 @@ mod tests {
|
|||||||
);
|
);
|
||||||
|
|
||||||
let mut returned = requested.clone();
|
let mut returned = requested.clone();
|
||||||
returned.dscp = 8;
|
returned.dscp = 0;
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
rejection_reason(&requested, &returned, NegotiationPolicy::Strict),
|
rejection_reason(&requested, &returned, NegotiationPolicy::Strict),
|
||||||
NegotiationRestriction::DscpChanged {
|
NegotiationRestriction::DscpChanged {
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ fn loose_open_uses_returned_params_for_echo_layout_and_reply_parsing() {
|
|||||||
returned.received_stats = ReceivedStats::Count;
|
returned.received_stats = ReceivedStats::Count;
|
||||||
returned.stamp_at = StampAt::Receive;
|
returned.stamp_at = StampAt::Receive;
|
||||||
returned.clock = Clock::Wall;
|
returned.clock = Clock::Wall;
|
||||||
returned.dscp = 8;
|
returned.dscp = 0;
|
||||||
returned.server_fill = None;
|
returned.server_fill = None;
|
||||||
|
|
||||||
let requested_for_config = requested.clone();
|
let requested_for_config = requested.clone();
|
||||||
|
|||||||
Reference in new issue
Block a user