mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-01 12:36:56 +00:00
s3/test: Add jumbo upload test
It re-uses most of the existing upload sink test, but configures the jumbo sink with at most 3 parts in each intermediate object not to upload 50Gb part to switch to the next one. Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
This commit is contained in:
@@ -97,14 +97,18 @@ SEASTAR_THREAD_TEST_CASE(test_client_put_get_object) {
|
||||
cln->close().get();
|
||||
}
|
||||
|
||||
SEASTAR_THREAD_TEST_CASE(test_client_multipart_upload) {
|
||||
const sstring name(fmt::format("/{}/testlargeobject-{}", tests::getenv_safe("S3_PUBLIC_BUCKET_FOR_TEST"), ::getpid()));
|
||||
void do_test_client_multipart_upload(bool with_copy_upload) {
|
||||
const sstring name(fmt::format("/{}/test{}object-{}", tests::getenv_safe("S3_PUBLIC_BUCKET_FOR_TEST"), with_copy_upload ? "jumbo" : "large", ::getpid()));
|
||||
|
||||
testlog.info("Make client\n");
|
||||
auto cln = s3::client::make(tests::getenv_safe("S3_SERVER_ADDRESS_FOR_TEST"), make_minio_config());
|
||||
|
||||
testlog.info("Upload object\n");
|
||||
auto out = output_stream<char>(cln->make_upload_sink(name));
|
||||
testlog.info("Upload object (with copy = {})\n", with_copy_upload);
|
||||
auto out = output_stream<char>(
|
||||
// Make it 3 parts per piece, so that 128Mb buffer below
|
||||
// would be split into several 15Mb pieces
|
||||
with_copy_upload ? cln->make_upload_jumbo_sink(name, 3) : cln->make_upload_sink(name)
|
||||
);
|
||||
auto close = seastar::deferred_close(out);
|
||||
|
||||
static constexpr unsigned chunk_size = 1024;
|
||||
@@ -147,6 +151,14 @@ SEASTAR_THREAD_TEST_CASE(test_client_multipart_upload) {
|
||||
cln->close().get();
|
||||
}
|
||||
|
||||
SEASTAR_THREAD_TEST_CASE(test_client_multipart_upload) {
|
||||
do_test_client_multipart_upload(false);
|
||||
}
|
||||
|
||||
SEASTAR_THREAD_TEST_CASE(test_client_multipart_copy_upload) {
|
||||
do_test_client_multipart_upload(true);
|
||||
}
|
||||
|
||||
SEASTAR_THREAD_TEST_CASE(test_client_readable_file) {
|
||||
const sstring name(fmt::format("/{}/testroobject-{}", tests::getenv_safe("S3_PUBLIC_BUCKET_FOR_TEST"), ::getpid()));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user