]> git-server-git.apps.pok.os.sepia.ceph.com Git - s3-tests.git/commitdiff
add minimal put-object for CRC64NVME
authorMatt Benjamin <mbenjamin@redhat.com>
Wed, 26 Feb 2025 02:04:55 +0000 (21:04 -0500)
committerMatt Benjamin <mbenjamin@redhat.com>
Thu, 27 Mar 2025 23:54:00 +0000 (19:54 -0400)
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
s3tests_boto3/functional/test_s3.py

index b9b579891a974a290c053130a184f5ea2173b409..7e762fda0dfa9bb4b3533e13c00773802dbbea25 100644 (file)
@@ -14355,6 +14355,28 @@ def test_object_checksum_sha256():
     assert status == 400
     assert error_code == 'InvalidRequest'
 
+@pytest.mark.checksum
+def test_object_checksum_crc64nvme():
+    bucket = get_new_bucket()
+    client = get_client()
+
+    key = "myobj"
+    size = 1024
+    body = FakeWriteFile(size, 'A')
+    crc64sum = 'Qeh8oXvGiSo='
+    response = client.put_object(Bucket=bucket, Key=key, Body=body, ChecksumAlgorithm='CRC64NVME', ChecksumCRC64NVME=crc64sum)
+    assert crc64sum == response['ChecksumCRC64NVME']
+
+    response = client.head_object(Bucket=bucket, Key=key)
+    assert 'ChecksumCRC64NVME' not in response
+    response = client.head_object(Bucket=bucket, Key=key, ChecksumMode='ENABLED')
+    assert crc64sum == response['ChecksumCRC64NVME']
+
+    e = assert_raises(ClientError, client.put_object, Bucket=bucket, Key=key, Body=body, ChecksumAlgorithm='CRC64NVME', ChecksumCRC64NVME='bad')
+    status, error_code = _get_status_and_error_code(e.response)
+    assert status == 400
+    assert error_code == 'InvalidRequest'
+
 @pytest.mark.checksum
 @pytest.mark.fails_on_dbstore
 def test_multipart_checksum_sha256():