mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-24 05:06:28 +00:00
test(ecstore): make free-version migration fixtures decode-faithful
Decoded tier free versions always carry both the on-disk free-version suffix and the in-memory tier marker, and real decommission targets already contain the bucket volume. Mirror both invariants in the migration regression fixtures so write-path metadata validation and rename publication behave exactly as in production.
This commit is contained in:
@@ -10048,6 +10048,10 @@ mod tests {
|
|||||||
let set_disks = make_local_bucket_test_set_disks().await;
|
let set_disks = make_local_bucket_test_set_disks().await;
|
||||||
let bucket = "free-version-decommission";
|
let bucket = "free-version-decommission";
|
||||||
let object = "object.txt";
|
let object = "object.txt";
|
||||||
|
set_disks
|
||||||
|
.make_bucket(bucket, &MakeBucketOptions::default())
|
||||||
|
.await
|
||||||
|
.expect("target bucket should exist before free-version migration");
|
||||||
let version_id = Uuid::new_v4();
|
let version_id = Uuid::new_v4();
|
||||||
let mut free_version = FileInfo {
|
let mut free_version = FileInfo {
|
||||||
name: object.to_string(),
|
name: object.to_string(),
|
||||||
@@ -10060,6 +10064,14 @@ mod tests {
|
|||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
free_version.set_tier_free_version();
|
free_version.set_tier_free_version();
|
||||||
|
// Decoded free versions always carry the on-disk free-version
|
||||||
|
// suffix alongside the in-memory tier marker; mirror that here so
|
||||||
|
// the record satisfies delete-marker metadata validation.
|
||||||
|
rustfs_utils::http::metadata_compat::insert_str(
|
||||||
|
&mut free_version.metadata,
|
||||||
|
rustfs_utils::http::metadata_compat::SUFFIX_FREE_VERSION,
|
||||||
|
String::new(),
|
||||||
|
);
|
||||||
|
|
||||||
set_disks
|
set_disks
|
||||||
.decommission_tier_free_version(bucket, object, &free_version, &ObjectOptions::default())
|
.decommission_tier_free_version(bucket, object, &free_version, &ObjectOptions::default())
|
||||||
@@ -10099,6 +10111,10 @@ mod tests {
|
|||||||
let set_disks = make_local_bucket_test_set_disks_with_drive_count(4).await;
|
let set_disks = make_local_bucket_test_set_disks_with_drive_count(4).await;
|
||||||
let bucket = "free-version-decommission-resume";
|
let bucket = "free-version-decommission-resume";
|
||||||
let object = "object.txt";
|
let object = "object.txt";
|
||||||
|
set_disks
|
||||||
|
.make_bucket(bucket, &MakeBucketOptions::default())
|
||||||
|
.await
|
||||||
|
.expect("target bucket should exist before free-version migration");
|
||||||
let mut free_version = FileInfo {
|
let mut free_version = FileInfo {
|
||||||
name: object.to_string(),
|
name: object.to_string(),
|
||||||
volume: bucket.to_string(),
|
volume: bucket.to_string(),
|
||||||
@@ -10110,6 +10126,14 @@ mod tests {
|
|||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
free_version.set_tier_free_version();
|
free_version.set_tier_free_version();
|
||||||
|
// Decoded free versions always carry the on-disk free-version
|
||||||
|
// suffix alongside the in-memory tier marker; mirror that here so
|
||||||
|
// the record satisfies delete-marker metadata validation.
|
||||||
|
rustfs_utils::http::metadata_compat::insert_str(
|
||||||
|
&mut free_version.metadata,
|
||||||
|
rustfs_utils::http::metadata_compat::SUFFIX_FREE_VERSION,
|
||||||
|
String::new(),
|
||||||
|
);
|
||||||
let opts = ObjectOptions::default();
|
let opts = ObjectOptions::default();
|
||||||
|
|
||||||
let disks = set_disks.get_disks_internal().await;
|
let disks = set_disks.get_disks_internal().await;
|
||||||
|
|||||||
Reference in New Issue
Block a user