mirror of
https://github.com/rustfs/rustfs.git
synced 2026-09-07 20:46:11 +00:00
feat(filemeta): fix tests for AHashMap adaptation
- Import AHashMap in metacache.rs - Fix metacache_entry_with_mod_time to use AHashMap - Fix metacache_entry_with_erasure_versions to use AHashMap - Fix metacache_entry_single_version to use AHashMap - Fix make_file_info_with_metadata to convert HashMap to AHashMap - Fix object_part_info_strategy to use AHashMap for checksums - Fix file_info_strategy to use AHashMap for metadata - Fix legacy_version_body_round_trips_through_encode to use AHashMap All 260 tests pass. AHashMap adaptation complete. Refs: https://github.com/rustfs/backlog/issues/2005 Co-Authored-By: heihutu <heihutu@gmail.com>
This commit is contained in:
@@ -2136,7 +2136,7 @@ mod tests {
|
|||||||
-1_000_000i64..=1_000_000i64,
|
-1_000_000i64..=1_000_000i64,
|
||||||
optional_timestamp_strategy(),
|
optional_timestamp_strategy(),
|
||||||
proptest::option::of(bytes_strategy(16)),
|
proptest::option::of(bytes_strategy(16)),
|
||||||
proptest::option::of(hash_map(small_string_strategy(), small_string_strategy(), 0..=3)),
|
proptest::option::of(hash_map(small_string_strategy(), small_string_strategy(), 0..=3).prop_map(|m| m.into_iter().collect::<AHashMap<String, String>>())),
|
||||||
proptest::option::of(small_string_strategy()),
|
proptest::option::of(small_string_strategy()),
|
||||||
)
|
)
|
||||||
.prop_map(|(etag, number, size, actual_size, mod_time, index, checksums, error)| ObjectPartInfo {
|
.prop_map(|(etag, number, size, actual_size, mod_time, index, checksums, error)| ObjectPartInfo {
|
||||||
@@ -2171,7 +2171,7 @@ mod tests {
|
|||||||
-1_000_000i64..=1_000_000i64,
|
-1_000_000i64..=1_000_000i64,
|
||||||
proptest::option::of(any::<u32>()),
|
proptest::option::of(any::<u32>()),
|
||||||
proptest::option::of(any::<u64>()),
|
proptest::option::of(any::<u64>()),
|
||||||
hash_map(small_string_strategy(), small_string_strategy(), 0..=4),
|
hash_map(small_string_strategy(), small_string_strategy(), 0..=4).prop_map(|m| m.into_iter().collect::<AHashMap<String, String>>()),
|
||||||
vec(object_part_info_strategy(), 0..=3),
|
vec(object_part_info_strategy(), 0..=3),
|
||||||
erasure_info_strategy(),
|
erasure_info_strategy(),
|
||||||
any::<bool>(),
|
any::<bool>(),
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ mod tests {
|
|||||||
data_dir: Some(data_dir),
|
data_dir: Some(data_dir),
|
||||||
size: 64 * 1024,
|
size: 64 * 1024,
|
||||||
mod_time: Some(OffsetDateTime::now_utc()),
|
mod_time: Some(OffsetDateTime::now_utc()),
|
||||||
metadata,
|
metadata: metadata.into_iter().collect(),
|
||||||
erasure: ErasureInfo {
|
erasure: ErasureInfo {
|
||||||
algorithm: ErasureAlgo::ReedSolomon.to_string(),
|
algorithm: ErasureAlgo::ReedSolomon.to_string(),
|
||||||
data_blocks: 4,
|
data_blocks: 4,
|
||||||
|
|||||||
@@ -5500,10 +5500,10 @@ mod tests {
|
|||||||
/// entirely, silently dropping the whole legacy body on re-marshal.
|
/// entirely, silently dropping the whole legacy body on re-marshal.
|
||||||
#[test]
|
#[test]
|
||||||
fn legacy_version_body_round_trips_through_encode() {
|
fn legacy_version_body_round_trips_through_encode() {
|
||||||
let mut meta = HashMap::new();
|
let mut meta = AHashMap::new();
|
||||||
meta.insert("content-type".to_string(), "application/octet-stream".to_string());
|
meta.insert("content-type".to_string(), "application/octet-stream".to_string());
|
||||||
|
|
||||||
let mut crc = HashMap::new();
|
let mut crc = AHashMap::new();
|
||||||
crc.insert("crc32c".to_string(), "deadbeef".to_string());
|
crc.insert("crc32c".to_string(), "deadbeef".to_string());
|
||||||
|
|
||||||
let legacy = MetaObjectV1 {
|
let legacy = MetaObjectV1 {
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
|
|
||||||
use crate::filemeta::msgp_decode::MAX_MSGP_ELEMENT_SIZE;
|
use crate::filemeta::msgp_decode::MAX_MSGP_ELEMENT_SIZE;
|
||||||
use crate::{
|
use crate::{
|
||||||
Error, FileInfo, FileInfoOpts, FileInfoVersions, FileMeta, FileMetaShallowVersion, Result, VersionType, get_file_info,
|
AHashMap, Error, FileInfo, FileInfoOpts, FileInfoVersions, FileMeta, FileMetaShallowVersion, Result, VersionType,
|
||||||
merge_file_meta_versions, merge_file_meta_versions_with_write_quorum,
|
get_file_info, merge_file_meta_versions, merge_file_meta_versions_with_write_quorum,
|
||||||
};
|
};
|
||||||
use arc_swap::ArcSwapOption;
|
use arc_swap::ArcSwapOption;
|
||||||
use rmp::Marker;
|
use rmp::Marker;
|
||||||
@@ -1676,7 +1676,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn metacache_entry_with_mod_time(mod_time: OffsetDateTime, etag: &str) -> MetaCacheEntry {
|
fn metacache_entry_with_mod_time(mod_time: OffsetDateTime, etag: &str) -> MetaCacheEntry {
|
||||||
let mut metadata = HashMap::new();
|
let mut metadata = AHashMap::new();
|
||||||
metadata.insert("etag".to_string(), etag.to_string());
|
metadata.insert("etag".to_string(), etag.to_string());
|
||||||
|
|
||||||
let mut meta = FileMeta::new();
|
let mut meta = FileMeta::new();
|
||||||
@@ -1705,7 +1705,7 @@ mod tests {
|
|||||||
data_blocks: usize,
|
data_blocks: usize,
|
||||||
parity_blocks: usize,
|
parity_blocks: usize,
|
||||||
) -> MetaCacheEntry {
|
) -> MetaCacheEntry {
|
||||||
let mut metadata = HashMap::new();
|
let mut metadata = AHashMap::new();
|
||||||
metadata.insert("etag".to_string(), etag.to_string());
|
metadata.insert("etag".to_string(), etag.to_string());
|
||||||
|
|
||||||
let mut fi = FileInfo::new("object", data_blocks, parity_blocks);
|
let mut fi = FileInfo::new("object", data_blocks, parity_blocks);
|
||||||
@@ -1730,7 +1730,7 @@ mod tests {
|
|||||||
fn metacache_entry_with_erasure_versions(versions: &[(OffsetDateTime, &str, usize, usize)]) -> MetaCacheEntry {
|
fn metacache_entry_with_erasure_versions(versions: &[(OffsetDateTime, &str, usize, usize)]) -> MetaCacheEntry {
|
||||||
let mut meta = FileMeta::new();
|
let mut meta = FileMeta::new();
|
||||||
for (idx, (mod_time, etag, data_blocks, parity_blocks)) in versions.iter().enumerate() {
|
for (idx, (mod_time, etag, data_blocks, parity_blocks)) in versions.iter().enumerate() {
|
||||||
let mut metadata = HashMap::new();
|
let mut metadata = AHashMap::new();
|
||||||
metadata.insert("etag".to_string(), (*etag).to_string());
|
metadata.insert("etag".to_string(), (*etag).to_string());
|
||||||
|
|
||||||
let mut fi = FileInfo::new("object", *data_blocks, *parity_blocks);
|
let mut fi = FileInfo::new("object", *data_blocks, *parity_blocks);
|
||||||
@@ -1776,7 +1776,7 @@ mod tests {
|
|||||||
/// Build an entry holding a single object version with an explicit version id
|
/// Build an entry holding a single object version with an explicit version id
|
||||||
/// and mod_time, so a set of these can model DISJOINT per-disk version sets.
|
/// and mod_time, so a set of these can model DISJOINT per-disk version sets.
|
||||||
fn metacache_entry_single_version(version_u128: u128, mod_time: OffsetDateTime, etag: &str) -> MetaCacheEntry {
|
fn metacache_entry_single_version(version_u128: u128, mod_time: OffsetDateTime, etag: &str) -> MetaCacheEntry {
|
||||||
let mut metadata = HashMap::new();
|
let mut metadata = AHashMap::new();
|
||||||
metadata.insert("etag".to_string(), etag.to_string());
|
metadata.insert("etag".to_string(), etag.to_string());
|
||||||
|
|
||||||
let mut fi = FileInfo::new("object", 4, 2);
|
let mut fi = FileInfo::new("object", 4, 2);
|
||||||
|
|||||||
Reference in New Issue
Block a user