mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-09 14:49:25 +00:00
test(rpc): add corrupt-json decode coverage (#5216)
* test(rpc): add corrupt-json decode coverage * test(ilm): assert manual transition status-less contract
This commit is contained in:
@@ -3131,6 +3131,26 @@ mod tests {
|
||||
assert!(err.contains("server:9000"), "unexpected error: {err}");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn read_multiple_response_decode_reports_corrupt_json_item() {
|
||||
let endpoint = sample_remote_endpoint();
|
||||
let response = ReadMultipleResponse {
|
||||
success: true,
|
||||
read_multiple_resps: vec![
|
||||
serde_json::to_string(&sample_read_multiple_resp("good", b"ok")).expect("json response should encode"),
|
||||
"{not-json".to_string(),
|
||||
],
|
||||
read_multiple_resps_bin: Vec::new(),
|
||||
error: None,
|
||||
};
|
||||
|
||||
let err = decode_read_multiple_response_items(response, &endpoint).expect_err("corrupt json item should fail");
|
||||
let err = err.to_string();
|
||||
|
||||
assert!(err.contains("ReadMultipleResp json item 1"), "unexpected error: {err}");
|
||||
assert!(err.contains("server:9000"), "unexpected error: {err}");
|
||||
}
|
||||
|
||||
fn sample_batch_read_version_resp(index: usize, path: &str, success: bool) -> BatchReadVersionResp {
|
||||
let mut file_info = FileInfo::new(path, 1, 0);
|
||||
file_info.erasure.index = 1;
|
||||
@@ -3210,6 +3230,27 @@ mod tests {
|
||||
assert!(err.contains("server:9000"), "unexpected error: {err}");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn batch_read_version_response_decode_reports_corrupt_json_item() {
|
||||
let endpoint = sample_remote_endpoint();
|
||||
let response = BatchReadVersionResponse {
|
||||
success: true,
|
||||
batch_read_version_resps: vec![
|
||||
serde_json::to_string(&sample_batch_read_version_resp(0, "ok", false)).expect("json should encode"),
|
||||
"{not-json".to_string(),
|
||||
],
|
||||
batch_read_version_resps_bin: Vec::new(),
|
||||
error: None,
|
||||
};
|
||||
|
||||
let err = decode_batch_read_version_response_items(response, &endpoint)
|
||||
.expect_err("corrupt json item should fail")
|
||||
.to_string();
|
||||
|
||||
assert!(err.contains("BatchReadVersionResp json item 1"), "unexpected error: {err}");
|
||||
assert!(err.contains("server:9000"), "unexpected error: {err}");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn batch_metadata_rpc_mode_defaults_to_off_and_parses_supported_values() {
|
||||
assert_eq!(parse_batch_metadata_rpc_mode(""), BatchMetadataRpcMode::Off);
|
||||
|
||||
Reference in New Issue
Block a user