]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/rgw: add test for cross-zonegroup copy obj 62887/head
authorSeena Fallah <seenafallah@gmail.com>
Sat, 19 Apr 2025 20:33:18 +0000 (22:33 +0200)
committerSeena Fallah <seenafallah@gmail.com>
Fri, 12 Sep 2025 20:50:53 +0000 (22:50 +0200)
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
src/test/rgw/rgw_multi/tests.py

index c457fc3ca9c30e0488c4ad2c89923cd72068a864..b9accc8f995170a79667944f92f78edd9d72e8ff 100644 (file)
@@ -5092,8 +5092,6 @@ def test_copy_obj_between_zonegroups(zonegroup):
     source_bucket = source_zone.create_bucket(gen_bucket_name())
 
     objname = 'dummy'
-    k = new_key(source_zone, source_bucket.name, objname)
-    k.set_contents_from_string('foo')
 
     for zg in realm.current_period.zonegroups:
         if zg.name == zonegroup.name:
@@ -5103,16 +5101,24 @@ def test_copy_obj_between_zonegroups(zonegroup):
         dest_bucket = dest_zone.create_bucket(gen_bucket_name())
         realm_meta_checkpoint(realm)
 
-        # copy object
-        dest_zone.s3_client.copy_object(
-            Bucket=dest_bucket.name,
-            CopySource=f'{source_bucket.name}/{objname}',
-            Key=objname
-        )
-
-        # check that object exists in destination bucket
-        k = get_key(dest_zone, dest_bucket, objname)
-        assert_equal(k.get_contents_as_string().decode('utf-8'), 'foo')
+        # try object sizes of 4K and 8MiB
+        # 4K to test no progress case
+        # 8MiB to test progress case
+        obj_sizes = [4096, 8 * 1024 * 1024]
+        for size in obj_sizes:
+            k = new_key(source_zone, source_bucket.name, objname)
+            k.set_contents_from_string('x' * size)
+
+            # copy object
+            dest_zone.s3_client.copy_object(
+                Bucket=dest_bucket.name,
+                CopySource=f'{source_bucket.name}/{objname}',
+                Key=objname
+            )
+
+            # check that object exists in destination bucket
+            k = get_key(dest_zone, dest_bucket, objname)
+            assert_equal(k.get_contents_as_string().decode('utf-8'), 'x' * size)
 
 @allow_bucket_replication
 def test_bucket_replication_alt_user_delete_forbidden():