mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-31 09:18:28 +00:00
test: cover stored-size range handling (#2544)
Co-authored-by: cxymds <Cxymds@qq.com>
This commit is contained in:
@@ -675,4 +675,58 @@ mod tests {
|
|||||||
assert_eq!(n2, 1);
|
assert_eq!(n2, 1);
|
||||||
assert_eq!(&buf2[..1], b"e");
|
assert_eq!(&buf2[..1], b"e");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_get_object_reader_range_uses_stored_size_for_encrypted_metadata() {
|
||||||
|
let object_info = ObjectInfo {
|
||||||
|
size: 10,
|
||||||
|
user_defined: HashMap::from([("x-amz-server-side-encryption-customer-original-size".to_string(), "20".to_string())]),
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
|
||||||
|
let range = HTTPRangeSpec {
|
||||||
|
is_suffix_length: false,
|
||||||
|
start: 8,
|
||||||
|
end: -1,
|
||||||
|
};
|
||||||
|
|
||||||
|
let (_, offset, length) = GetObjectReader::new(
|
||||||
|
Box::new(Cursor::new(b"0123456789".to_vec())),
|
||||||
|
Some(range),
|
||||||
|
&object_info,
|
||||||
|
&ObjectOptions::default(),
|
||||||
|
&HeaderMap::new(),
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
assert_eq!(offset, 8);
|
||||||
|
assert_eq!(length, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_get_object_reader_suffix_range_uses_stored_size_for_encrypted_metadata() {
|
||||||
|
let object_info = ObjectInfo {
|
||||||
|
size: 10,
|
||||||
|
user_defined: HashMap::from([("x-rustfs-encryption-original-size".to_string(), "20".to_string())]),
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
|
||||||
|
let range = HTTPRangeSpec {
|
||||||
|
is_suffix_length: true,
|
||||||
|
start: 4,
|
||||||
|
end: -1,
|
||||||
|
};
|
||||||
|
|
||||||
|
let (_, offset, length) = GetObjectReader::new(
|
||||||
|
Box::new(Cursor::new(b"0123456789".to_vec())),
|
||||||
|
Some(range),
|
||||||
|
&object_info,
|
||||||
|
&ObjectOptions::default(),
|
||||||
|
&HeaderMap::new(),
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
assert_eq!(offset, 6);
|
||||||
|
assert_eq!(length, 4);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user